Computer >> 컴퓨터 >  >> 프로그래밍 >> 프로그래밍

OLAP 큐브 연산으로 쿼리 처리 성능을 높이는 방법

쿼리 관리(Query Management) 프로세스는 쿼리를 체계적으로 관리하고, 가장 효율적인 데이터 소스로 쿼리를 유도하여 처리 속도를 높이는 역할을 담당합니다. 이 프로세스는 일반적으로 쿼리 실행을 스케줄링함으로써 시스템 리소스가 최대한 효과적으로 활용되도록 보장합니다. 또한 어떤 집계(aggregation)를 생성할지 판단하기 위해 실제 쿼리 프로파일을 지속적으로 모니터링합니다.

이 프로세스는 데이터 웨어하우스가 최종 사용자에게 공개되는 동안 항상 작동합니다. 특정한 순차적 단계로 구성된 것이 아니라, 끊임없이 운영되는 일련의 기능들이 상시 가동되는 구조입니다.

OLAP란 무엇인가?

OLAP(온라인 분석 처리)는 분석가, 관리자, 경영진이 원시 데이터(raw data)를 변환하여 만든 데이터를 다양한 관점에서 빠르고 일관성 있게 대화형으로 접근함으로써, 고객이 인식하는 기업의 실제 차원 구조를 반영한 통찰력을 얻을 수 있도록 지원하는 소프트웨어 기술입니다.

OLAP 서버는 데이터 웨어하우스나 데이터 마트에 저장된 다차원 정보를 비즈니스 사용자에게 제공하며, 사용자는 데이터가 어디에 어떻게 저장되어 있는지 걱정할 필요가 없습니다. 다만 OLAP 서버의 물리적 구조와 구현 과정에서는 데이터 저장 방식을 충분히 고려해야 합니다.

데이터 큐브 연산과 대화형 분석 환경

다양한 OLAP 데이터 큐브 연산은 여러 관점의 뷰(view)를 구체화(materialize)하여, 현재 보유한 데이터에 대한 대화형 질의와 분석을 가능하게 합니다. 이를 통해 OLAP은 편리한 대화형 데이터 분석 환경을 제공합니다.

OLAP 도구는 서로 다른 세분화 수준(granularity)의 다차원 데이터를 대화형으로 분석할 수 있는 기능을 제공하며, 효과적인 데이터 일반화와 데이터 마이닝을 용이하게 합니다. 연관성 분석(association), 분류(classification), 예측(prediction), 군집화(clustering)와 같은 데이터 마이닝 함수들을 OLAP 연산과 통합하면, 다양한 추상화 수준에서 대화형 지식 발견을 수행할 수 있습니다.

구체화된 큐보이드를 활용한 쿼리 처리

큐보이드(cuboid)를 구체화하고 OLAP 인덱스 구조를 구축하는 궁극적인 목적은 데이터 큐브에서 쿼리 처리 속도를 높이는 것입니다. 구체화된 뷰(materialized view)가 주어진 상태에서 쿼리 처리는 다음 두 단계로 진행됩니다.

1. 사용 가능한 큐보이드에 수행할 연산 결정

쿼리에 포함된 선택(selection), 프로젝션(projection), 롤업(roll-up, group-by), 드릴다운(drill-down) 연산을 이 단계에서 해당하는 SQL 및/또는 OLAP 연산으로 변환합니다.

2. 연산을 적용할 구체화된 큐보이드 선정

쿼리 해결에 활용 가능한 구체화된 큐보이드를 식별한 후, 큐보이드 간의 '지배(dominance)' 관계에 대한 지식을 바탕으로 후보 집합을 가지치기(pruning)합니다. 이후 남은 구체화된 큐보이드를 사용했을 때의 비용을 계산하고, 그중 비용이 가장 낮은 큐보이드를 최종 선택합니다.