데이터 웨어하우스란 무엇인가?
데이터 웨어하우징(Data Warehousing)은 다양한 소스에서 데이터를 수집하고 관리하여 기업에 의미 있는 비즈니스 인사이트를 제공하는 기술입니다. 데이터 웨어하우스는 경영진의 의사결정을 지원하도록 특별히 설계되었습니다.
쉽게 말해 데이터 웨어하우스는 조직의 운영(operational) 데이터베이스와는 별도로 유지·관리되는 데이터베이스를 의미합니다. 데이터 웨어하우스 시스템은 여러 애플리케이션 시스템을 하나로 통합할 수 있게 해주며, 통합된 과거(historical) 정보를 기반으로 분석을 수행할 수 있는 견고한 플랫폼을 제공합니다.
데이터 웨어하우스 쿼리는 왜 복잡한가?
데이터 웨어하우스의 쿼리는 대규모 데이터 그룹을 요약된 수준에서 집계·계산해야 하기 때문에 매우 복잡합니다. 또한 다차원(multidimensional) 뷰에 기반한 특수한 데이터 구성 방식, 접근 방법, 구현 기법이 요구되는 경우가 많습니다.
운영 데이터베이스와 분리해야 하는 세 가지 이유
1. 두 시스템의 성능 극대화
두 시스템을 분리하는 가장 중요한 이유는 각각의 성능을 극대화하기 위해서입니다. 운영 데이터베이스는 이미 알려진 업무와 작업 부하(workload)를 기준으로 설계·튜닝됩니다. 예를 들어 기본 키(primary key)를 활용한 인덱싱과 해싱, 특정 레코드 검색, 사전에 정의된('canned') 쿼리 최적화 등이 대표적입니다.
반면 데이터 웨어하우스의 쿼리는 훨씬 복잡합니다. 대규모 데이터 집합을 요약 수준에서 계산해야 하며, 다차원 뷰에 기반한 특수한 데이터 구성·접근·구현 방식이 필요합니다. 만약 운영 데이터베이스에서 이런 OLAP 질의를 그대로 처리한다면, 일상적인 운영 업무의 성능이 크게 저하될 수밖에 없습니다.
2. 동시성 처리와 트랜잭션 보호
운영 데이터베이스는 다수의 트랜잭션을 동시에 처리하는 동시성(concurrency) 처리를 지원합니다. 잠금(locking)과 로깅(logging)과 같은 동시성 제어 및 복구 메커니즘은 트랜잭션의 일관성과 안정성을 보장하는 데 필수적입니다.
반면 OLAP 질의는 주로 요약과 집계를 목적으로 데이터에 읽기 전용(read-only)으로 접근하는 경우가 많습니다. 이러한 OLAP 연산에 동시성 제어와 복구 메커니즘까지 적용하면, 동시에 실행 중인 트랜잭션의 처리를 방해하게 되고, 결과적으로 OLTP 시스템의 전체 처리량(throughput)이 크게 감소할 수 있습니다.
3. 구조·내용·용도의 차이
마지막으로, 운영 데이터베이스와 데이터 웨어하우스를 분리해야 하는 근본적인 이유는 두 시스템이 다루는 정보의 구조, 내용, 용도가 서로 다르기 때문입니다.
의사결정 지원에는 과거(historical) 정보가 필요하지만, 운영 데이터베이스는 일반적으로 과거 정보를 따로 유지하지 않습니다. 또한 의사결정 지원은 이기종(heterogeneous) 소스의 데이터를 집계·요약 등의 방식으로 통합하여 고품질의 깨끗하고 일관된 정보를 요구합니다. 반면 운영 데이터베이스에는 트랜잭션과 같은 상세 원시(raw) 데이터만 저장되어 있으며, 분석에 앞서 반드시 통합 과정을 거쳐야 합니다.
앞으로의 전망: OLTP와 OLAP의 경계는 줄어들까?
두 시스템이 제공하는 기능이 완전히 다르고 필요로 하는 데이터의 성격도 다르기 때문에, 현재로서는 별도의 데이터베이스를 유지하는 것이 불가피합니다.
다만 최근에는 일부 운영용 관계형 데이터베이스 관리 시스템(RDBMS) 벤더들이 자사 시스템을 최적화하여 OLAP 질의까지 지원하기 시작했습니다. 이러한 추세가 계속된다면, 앞으로 OLTP 시스템과 OLAP 시스템 사이의 구분은 점차 줄어들 것으로 예상됩니다.