Offcanvas

How To / 개발자 / 데이터센터 / 빅데이터 | 애널리틱스 / 스토리지 / 애플리케이션

분석을 위해 등장한 데이터베이스··· OLAP 따라잡기

2022.02.15 Martin Heller  |  InfoWorld
OLAP(Online analytical processing ; 온라인 분석 처리) 데이터베이스는 분석 질의를 처리할 목적으로 구축된 데이터베이스이다. 

분석 쿼리를 OLTP(online transaction-processing ; 온라인 트랜잭션 처리) 데이터베이스 상에서 실행하면 다음과 같은 이유로 회신 시간이 오래 걸린다.

첫째, OLTP 데이터베이스는 대개 제3정규형(3NF)이다. 복잡한 JOIN 연산을 여러 테이블에 수행해야 하므로 분석 질의에 컴퓨팅 자원이 많이 든다. 둘째, 읽기 작업이 많은 분석 질의는 인덱스가 더 많아야 유리한데 OLTP 데이터베이스는 쓰기 속도를 최적화하기 위해 인덱스가 적은 편이다. 셋째, 소규모 트랜잭션으로 계속 바쁜 OLTP 데이터베이스에서 긴 분석 질의를 실행하면 (주로 인덱스에 대한) 경쟁이 야기되어 트랜잭션 속도와 질의 속도 모두 저하된다.

이러한 문제를 해결하기 위해 OLAP 데이터베이스는 최적화된 별도의 분석 질의용 데이터베이스로 등장했다. 데이터베이스를 분석용으로 최적화하는 방법은 다음과 같다.

OLAP에 대한 설명
OLAP 데이터베이스는 데이터 웨어하우스 또는 데이터 마트에서 나온 대량의 데이터를 다차원적으로 분석할 때 속도를 높일 목적으로 설계됐다. 분석 속도를 높이는 방법으로는 OLAP 큐브라는 다차원 형식으로 관계형 데이터를 추출해 넣는 방법, 분석할 데이터를 메모리 내에 불러들이거나 열 순서로 저장하는 방법, 여러 CPU를 병렬로 활용한(고도 병렬 처리(MPP)) 분석 수행 방법 등이 있다.

ETL 및 ELT
OLAP를 구현하려면 데이터를 트랜잭션 데이터베이스에서 꺼내 분석 데이터베이스로 넣는 프로세스를 정립해야 한다. 예전에는 이를 위해 밤마다 데이터 추출, 변환 및 로드(ETL) 작업이 일괄적으로 수행되곤 했다. 

하드웨어와 소프트웨어가 개선되면서 ETL 일괄 작업 대신 연속 데이터 스트림이 사용되는 경우가 많아졌고 변환(T) 단계가 로드(L) 이후의 프로세스 말미로 미뤄지는 경우(ELT)도 생겼다. ELT는 분석 데이터베이스에 대해 실행되는 머신 러닝을 위한 특징 공학을 지원하기 위해 더욱 일반화되고 있다.

열 저장
트랜잭션 데이터베이스는 테이블 행들을 함께 저장한다. 행들 전체를 지속적으로 접속하는 경우에 합리적인 방식이다. 반면, OLAP 데이터베이스는 테이블 열들을 함께 저장한다. 필드 값을 집계하는 경우에 합리적인 방식이다. 또한, OLAP 데이터베이스는 속도를 위해 활성 열을 메모리 내에 두려고 할 때가 많다. 열 저장의 또 다른 장점은 데이터가 비슷한 열은 압축이 잘 된다는 점이다.

OLAP 큐브란?
OLAP 큐브 또는 하이퍼큐브는 많은 SQL JOIN 및 UNIONS 없이 분석이 빨리 수행되도록 데이터를 계층 차원으로 정리하는 방식이다. OLAP 큐브는 비즈니스 인텔리전스(BI) 시스템에 일대 혁신을 일으켰다. 

OLAP 큐브가 나오기 전에는 비즈니스 애널리스트들이 하루 일을 다 마치고 질의를 제출한 뒤 다음날 회신이 와 있기를 기대하며 퇴근하곤 했다. OLAP 큐브가 나온 후에는 데이터 엔지니어들이 작업을 실행하여 밤새 큐브를 만들어 놓으면 다음날 아침 애널리스트들이 대화형 질의를 실행할 수 있게 되었다.

OLAP 큐브는 ‘슬라이스(slice) 및 다이스(dice)’ 연산 5종을 지원한다. 슬라이스란 단일 값으로 설정된 일차원의 저차원 큐브를 추출하는 것을 의미한다(예: MONTH=6). 다이스란 단일 값들로 설정된 다차원의 하위 큐브를 추출하는 것을 의미한다(예: STORE=95 그리고 MONTH=6). 드릴 다운(drill down) 및 드릴 업(drill up)을 통해 애널리스트는 요약 보기(위(up))에서 상세값(아래(down))으로 움직일 수 있다.

롤업(Roll-up)은 한 차원을 따라 데이터를 요약하거나 집계한다. 피봇(Pivot)은 데이터에 대한 다른 관점을 보기 위해 큐브를 회전시킨다. OLAP 큐브 피봇은 스프레드시트에서의 피봇에 비해 훨씬 더 효율적이다. SQL의 변종인 MDX 쿼리 언어가 OLAP 큐브 질의에 사용된다.

OLAP 큐브는 최근 들어 압축 열 저장(메모리 내 선호)과 MPP를 사용하는 데이터 웨어하우스로 대부분 대체됐다.

MOLAP란?
MOLAP(Multi-dimensional online analytical processing ; 다차원 온라인 분석 처리)는 다차원 OLAP 큐브를 사용하는 전형적인 OLPA 형식이다. MOLAP는 아주 빠른 분석으로 이어지는 반면, OLAP 큐브 사전 처리에는 시간이 매우 많이 소비된다. MOLAP는 팩트(데이터 필드)가 숫자이고 집계 가능할 때 가장 효율적이다.

ROLAP란?
ROLAP(Relational OLAP ; 관계형 OLAP)는 관계형 데이터베이스와 직접 연동되며 OLAP 큐브를 만들 필요가 없다. 일반적으로 ROLAP용 분석 데이터베이스는 OLTP 데이터베이스와는 분리되어 있다. ETL 또는 ELT 프로세스를 통해 OLTP 데이터베이스의 데이터 웨어하우스 또는 데이터 마트가 주기적으로 업데이트되고 그 일환으로 집계 테이블이 생성된다. 효율성을 위해 ETL 또는 ELT 프로세스는 데이터 웨어하우스를 처음부터 다시 생성하기 보다는 증분 데이터로 작업하는 경우가 보통이다.

애널리스트들은 MDX 질의 대신 SQL로 ROLAP 데이터베이스를 심문하는데 보다 새로운 분석 연산자에 크게 의존할 때가 많다. GROUP BY 절은 지정된 열을 기준으로 집계값을 분류한다. ROLLUP 연산자는 GROUP BY를 여러 열로 확장하여 소계와 총계를 계산한다. CUBE 연산자는 지정된 열의 모든 순열에 대해 소계와 총계를 계산한다.

HOLAP란?
ROLAP와 MOLAP를 결합한 HOLAP(Hybrid online analytical processing ; 하이브리드 온라인 분석 처리)는 데이터를 MOLAP 저장소와 ROLAP 저장소에 나눠서 저장할 수 있다. 일반적으로 큐브는 물론 관계형 데이터베이스의 집계 데이터를 위한 캐시가 있다. 마이크로소프트 애널리시스 서비스(Microsoft Analysis Services)와 SAP BI 액셀러레이터(SAP BI Accelerator)가 HOLAP를 구현한다.

이처럼 전용 분석 데이터베이스를 활용하면 비즈니스 인텔리전스를 위한 질의 속도를 높일 수 있다. OLAP 큐브가 수십 년간 이 분야를 지배했지만 이제는 회사들이 압축된 열 저장 및 MPP로 관계형 데이터를 사용하는 데이터 웨어하우스를 관리하는 경우가 일반화됐다. ciokr@idg.co.kr
CIO Korea 뉴스레터 및 IT 트랜드 보고서 무료 구독하기
추천 테크라이브러리

회사명:한국IDG 제호: CIO Korea 주소 : 서울시 중구 세종대로 23, 4층 우)04512
등록번호 : 서울 아01641 등록발행일자 : 2011년 05월 27일

발행인 : 박형미 편집인 : 천신응 청소년보호책임자 : 한정규
사업자 등록번호 : 214-87-22467 Tel : 02-558-6950

Copyright © 2024 International Data Group. All rights reserved.