본문 바로가기

MariaDB

수십억건 데이터 처리를 위한 MariaDB Analytics (SkySQL)

빅데이터 처리를 위한 MariaDB  SkySQL 의 Analytics (컬럼스토어엔진 & 대량병렬처리) 

 

"건수가 너무 많아요"
"한달치를 돌리려면 적어도 수천만건에서 수억건의 테이블 데이터를 읽어서 처리를 하여야 해요"

"업무팀에서 요청이 있어서 오후 2시 미팅전까지는 통계 레포트를 받아야 해요" 
"일반적인 MariaDB 에서는 너무 오래 걸려서 제 때에 업무를 처리할 수가 없어요"

 

MariaDB Transactions and Analytics 

이 때 대부분의 개발자나 DBA 분들이 MariaDB 의 Transactions 만을 떠올리는데요. 이제는 데이터웨어하우스 그리고 데이터마트 용도인 MariaDB 의 Analytics 를 검토해 보실 때 입니다. Analytics 는 수십억건의 로우와 같은 빅데이터를 손쉽게 처리할 수 있게 하여 줍니다.

 

Analytics 어떻게 빠른가 ? 

이를 위해 내부적으로 컬럼스토어 엔진을 장착하고 있고 MPP(Massively Parallel Processing) 즉, 대량의 병렬처리를 합니다. 이를 통해 초대용량의 테이블에서도 필요한 데이터나 통계, 레포트를 짧은 시간에 산출할 수 있습니다. 분산 아키텍처와 병렬 처리가 이를 가능케 합니다.

 

손쉽게 테스트 하고 사용해 보세요

SkySQL 에 접속하면 다음과 같이 필요한 서비스가 나타납니다. 

Transactions 는 가장 많이 사용하는 OLTP 성격의 서비스이며,  Analytics 는 대량의 데이터를 분석하고자 할 때 선택하여 사용할 수 있는 서비스 입니다. 많은 기업들이 이제는 데이터를 저장하고 분석하고 비즈니스에 활용하고자 합니다. 

오늘 당장의 서비스 개발과 운영을 넘어서서, 오랜 서비스 운영기간동안 발생한 데이터를 잘 저장하고 쌓아서 좀 더 가치있고 의미있는 데이터를 발굴하고 비즈니스에 활용하고자 하는 니즈가 많습니다. 이 때 Analytics 를 선택하여 손쉽게 사용해 보시기를 권합니다. 

 

In SkySQL cloud. 현재 프로모션이 진행되고 있으며 사용자에게 $500 크레딧이 자동으로 주어집니다. 

mariadb.com/products/skysql/get-started/

ref. https://mariadb.com/products/skysql/get-started/  마리아디비 SkySQL 바로 시작하기

수십억건의 데이터 처리를 위해

위의 서비스 소개글처럼 수십억건의 데이터에 대한 조회쿼리를 던져보실 수 있습니다.  간단하게는 수천만건의 데이터 수억건의 데이터를 넣고 조회 쿼리를 테스트 해 보시기를 권장 드립니다.  Analytics 는 Columnar 구조를 가지고 있습니다. 시장의 수많은 데이터웨어하우스 제품들이 기본적으로 채택하는 구조 입니다. OLTP 에서는 한 테이블에 수많은 Row 를 가지고 있다면, 한 건의 데이터만을 빠르게 읽어서 가져오는데 유리한 구조를 가지고 있습니다. 한 테이블에 50개 컬럼이 존재한다면 내가 필요한 5개의 컬럼 정보를 가져오려고 하더라도 Row 한 덩어리 전체를 읽고서 처리하게 되어 있습니다. Analytics 에 비해서는 소량의 데이터를 짧은 시간에 처리하기에 최적화된 구조를 가지고 있다고 보시면 됩니다. 

 

기업이 필요로 하는 긴 기간별 레포트 산출

Analytics 는 일간, 주간, 월간, 년간의 데이터를 보고 싶을 때 적합합니다. 그리고 Columnar 의 특성상 저장하고 읽을 때 필요한 컬럼만을 읽을 수 있습니다. 50개 컬럼으로 구성된 테이블에서 조회 쿼리에 사용되는 컬럼이 5개라면 Row 의 한 덩어리 50개 컬럼 전체가 아닌 5개 컬럼만큼만을 읽어들여 처리할 수 있습니다. 이외에도 컬럼별로 압축률을 높여 읽기 절대량을 줄이는 방법들이 함께 사용됩니다. 많은 량의 데이터를 처리하여야 하는 경우, 데이터베이스의 성능은 디스크 자체의 I/O 성능 그리고 얼마나 적게 읽어 들여서 원하는 결과를 만들어 낼 것인가에서 승부가 나기 때문입니다. 

 

데이터웨어하우스 데이터마트와 같이 한 테이블에 컬럼이 많은 경우로 설계된 경우, 테이블이 무겁고 I/O 가 큰 경우가 많아 레포트를 하나 산출하려고 해도 부담스러운 경우가 많습니다. 200개 컬럼이 있다고 한다면 DDL 은 다음과 같이 생기게 될 것입니다.

Create Table: CREATE TABLE `analytics` (

  `col1` varchar(20) NOT NULL,

  `col2` varchar(40),

  `col3` varchar(40),

    ....

  `col200` varchar(40),

    PRIMARY KEY (`col1`)

) ENGINE=Columnstore

 

건수가 많아질 수록 뚜렷한 차별성과 효과를 보여줍니다.

수십만건 수백만건을 넘어서서 수천만건 수억건으로 갈 수록 Analytics 가 어떤 점에서 탁월한 성능을 보여주는 지 알 수 있습니다. 특히나 중요한 메인테이블의 컬럼수가 매우 많고 필요한 데이터/레포트를 산출하려고 할 때 columnstore 의 columnar 형태의 저장방식의 극적인 효과를 느낄 수 있습니다. 

 

- MariaDB SkySQL  Analytics -