Recommanded Free YOUTUBE Lecture: <% selectedImage[1] %>

Contents

Online analytical processing

OLAP(Online analytical processing)은 의사결정 지원 시스템의 대표적인 예로, 사용자가 동일한 데이터를 여러 기준을 이용해서 다양한 방식으로 바라보면서 다차원 데이터 분석을 할 수 있도록 도와준다. OLAP는 광범위한 BI(business intelligence)의 한 부분으로 관계형 데이터베이스, 리포팅 시스템과 데이터 마이닝도 포함한다. 일반적인 OLAP 애플리케이션은 영업, 마케팅, 관리보고, 예산 책정과 예측, 재무보고/검토 및 이와 유사한 영역에서 비지니스를 지원하기 위해서 널리 사용되고 있다.

OLAP라는 용어는 기존의 데이터베이스 용어인 OLTP(Online Transaction Processing)를 수정해서 만들어졌다.

OLAP 툴을 사용하면 다양한 관점에서 (쿼리를 이용)대화식으로 다차원분석을 할 수 있다. OLAP는 roll-up, drill-down, slicing and dicing의 3가지 기본 작업으로 구성된다. 예를 들어 영업 조직은 회사의 전체 영업현황을 파악하기 위해서 데이터를 집계해야 한다. 이를 위해서 각 지점의 영업 사무실은 영업부와 같은 상위 조직에 데이터를 rolled up(말아올린다고 말하는 경우도 있다.)하게 된다. 사용자의 세부 정보를 검토하기 위해서는 drill-down해서 탐색을 한다. 이 과정을 통해서 관리자는 각 지역의 개별 제품의 판매현황을 확인 할 수 있다. slicing는 OLAP 큐브에서 특정 관점을 보는 행동이다. 예를들어 영업사원, 날짜, 고객, 제품별 판매현황들을 확인 할 수 있다. 이러한 특정 관점을 차원이라고 하며, 다양한 관점을 가질 수 있기 때문에 다차원 분석이 가능하다고 하는 것이다.

OLAP용으로 구성된 데이터베이스는 다차원 모델을 사용하므로 빠른 시간에 복잡한 분석이나 임시쿼리가 가능하다.

OLAP는 복잡할 수 있는 BI에서 사용하기 때문에 OLTP 보다 상대적으로 복잡한 쿼리를 특징으로 한다. OLAP는 대부분 읽기에 최적화되는데 반해 OLTP는 읽기,쓰기,업데이트,삭제 모두를 처리해야 한다.

OLAP 시스템 개요

OLAP 시스템의 핵심은 OLAP cube(hypercube 혹은 multidimensional cube)다. 이 차원은 데이터분석을 위해서 조합할 수 있는 여러 요소들로 구성된다. 예를들어 비지니스 영업을 분석하기 위해서는 "지역", "시간", "제품"의 3가지 요소들이 필요할 것이다. 이 요소들을 이용해서 3차원 공간을 만들 수 있다.

 OLAP Cube

붉은 면은 "특정 제품의 지역과 시간에 따른 정보"를 보여준다. 마찬가지 방법으로 특정지역에서의 시간과 제품에 대한 판매 정보를 얻을 수 있을 것이다. 위 예제는 3차원이지만 차원은 얼마든지 확장 할 수 있다.

이러한 다차원 구조는 데이터베이스에서 "데이터 사이의 관계를 표현하는 관계형 모델"로 정의 할 수 있다.

Aggregations

복잡한 쿼리의 경우 OLAP는 동일한 쿼리에 대해서 OLTP에서 필요한 시간의 0.1%이내의 시간에서 결과를 생성 할 수 있다. 물론 이런 성능은 거저 주어지는게 아니다. 이러한 성능의 향상을 얻기 위해서는 "Aggregations"을 사용해야 한다.

집계알고리즘 혹은 집계 함수를 이용해서 OLAP 큐브의 각 차원에 따라서 데이터를 집계해서 별도의 테이블에 저장한다. 사업요구에 따라서 집계가 늘어날 수 있기 때문에, 보통은 미리 정해진 (자주사용하거나 중요한) 집계만 이루어진다. 나머지는 요청시 만들어진다.

OLAP 타입

Multidimensional OLAP (MOLAP)

MOLAP는 결과 값을 다차원 배열로 저장한다. 관계형 데이터베이스가 아닌 목적에 최적화된 스토리지에 저장한다.

일부 MOLAP 도구는 특정한 절차를 통해서 계산된 데이터와 저장소가 필요하다. 일반적으로 MOLAP는 데이터 큐브라고 하는 미리 계산된 데이터 세트를 사용한다. 여기에는 주어진 범위에 질문에 답하기 위한 모든 답을 포함하고 있다. 결과적으로 매우 빠른 쿼리처리가 가능하다. 반면 사전 계산으로 많은 시간이 걸릴 수 있다. 또한 모든 응답을 저장해야 하기 때문에 데이터의 양이 매우 커질 수 있다.

장점
  • 최적화된 스토리지로 인한 빠른 쿼리 성능
  • 관계형데이터베이스에 비해서 데이터 압축효율이 좋다. 작은 크기의 디스크를 사용하도록 개발 할 수 있다.
  • 배열모델은 자연스러운 색인을 제공한다.
  • 집계된 데이터의 사전 구조화로 효과적인 데이터 추출이 가능하다.
단점
  • 처리단계(데이터로드)단계에 많은 시간이 걸릴 수 있다. 전체 데이터를 처리하는 대신에 증분데이터를 처리하는 등의 방법을 사용해야 한다.
관련솔류션들
  • Oracle Database OLAP Option
  • MicroStrategy
  • Microsoft Analysis Services
  • EssBase
  • TM1
  • Jedox
  • icCube

Relationl OLAP (ROLAP)

ROLAP는 사전 계산을 하지 않고 관계형 데이터베이스의 기능을 직접 이용한다. 기본 데이터 및 차원 테이블들은 관계형 테이블에 저장되고, 집계된 정보들은 새로운 테이블에 저장한다. 테이블 구성은 스키마 디자인에 따라서 달라진다. 이 방법론은 관계형 데이터베이스에 저장된 데이터를 조작해서 OLAP의 sclicing와 dicing 기능을 수행하는데, 기본적으로는 SQL 질의에 WHERE 절을 사용하는 것과 같다.

ROLAP는 관계형 데이터베이스를 사용하지만, 원하는 성능을 얻기 위해서 데이터베이스를 신중하게 설계해야 한다. OLTP 용으로 설계된 데이터베이스는 OLAP용으로 제대로 작동하지 않기 때문에, 여전히 (데이터베이스의 여러 기능들을 이용해서)추가적인 데이터 복사본을 만들어야 한다.

장점
  • 범용 데이터베이스 기술을 사용 할 수 있기 때문에 확장성이 좋다.
  • 다양한 데이터로딩툴을 사용 할 수 있고 ETL 코드를 데이터 모델에 맞게 미세 조정할 수 있으므로 MOLAP보다 로드시간이 짧다.
  • 표준 관계형 데이터베이스에 저장되며, 익숙한 SQL을 이용해서 액세스 할 수 있다.
  • 테이블, 컬럼 단위의 보안수준을 설정 할 수 있다.
단점
  • 업계는 ROLAP가 MOLAP 보다 느리다는데 대체적으로 동의한다.
  • 칩계테이블을 만들기 위해서 ETL 코드를 관리해야 한다.
  • 집계테이블 단계를 건너뛸 수도 있는데, 이 경우 쿼리 성능이 저하된다. 집계테이블을 추가해서 부분적으로 해결 할 수 있지만, 다양한 조합에 대한 테이블을 만들어야 하기 때문에 실용적이지 않다.
  • 범용 데이터베이스를 사용하기 때문에 MOLAP 도구에서 사용하는 특수한 기술들을 사용 할 수 없다. 다만 최신 ROLAP 도구는 cube 및 Rollup 연산자, DB2 Cube view, SQL OLAP 확장과 같은 기능들을 가지고 있어서 단점을 완화할 수 있다.
  • ROLAP는 SQL을 사용하기 때문에, SQL 변환히 힘든 데이터에는 적합하지 않을 수 있다. 이러한 데이터의 예로는 예산책정, 할당, 재무보고 등이 있다.

참고