OLAP이란 무엇입니까?
OLAP은 Online Analytical Processing의 약어입니다. 기술 관점과 비즈니스 관점, 두 가지 관점에서 살펴볼 수 있는 포괄적인 용어입니다. 가장 상위 수준에서는 이 단어들을 거꾸로 읽어 보면 됩니다:
Processing — 어떤 소스 데이터가 처리되고…
Analytical — …분석 보고서와 인사이트를 만들어 내고…
Online — …이를 실시간으로 수행합니다.
비즈니스 관점에서 본 OLAP
최근 몇 년 사이 비즈니스 담당자들은 데이터의 가치를 인식하기 시작했습니다. 데이터를 활용하지 않고 의사결정을 내리는 기업은 경쟁에서 뒤처지는 경우가 더 많습니다. 성공적인 기업의 데이터 기반 접근 방식은 비즈니스 의사결정에 조금이라도 도움이 될 수 있는 모든 데이터를 수집하도록 만들며, 동시에 이 데이터를 적시에 분석할 수 있는 메커니즘을 필요로 하게 합니다. 바로 이 지점에서 OLAP 데이터베이스 관리 시스템(DBMS)이 활용됩니다.
비즈니스 관점에서 OLAP은 기업이 운영 활동을 지속적으로 계획·분석·보고하도록 함으로써 효율성을 극대화하고 비용을 절감하며, 궁극적으로 시장 점유율을 확보할 수 있게 합니다. 이는 사내 시스템으로 구축할 수도 있고, 웹/모바일 분석 서비스, CRM 서비스 등과 같은 SaaS 공급자에게 아웃소싱할 수도 있습니다. OLAP은 많은 비즈니스 인텔리전스(BI, business intelligence) 애플리케이션의 기반 기술입니다.
ClickHouse는 이러한 SaaS 솔루션에서 도메인별 데이터를 분석하기 위한 백엔드로 매우 자주 사용되는 OLAP 데이터베이스 관리 시스템입니다. 다만 여전히 일부 기업은 서드파티 공급자와 데이터를 공유하는 데 주저하기 때문에, 사내 데이터 웨어하우스 시나리오 역시 충분히 현실적인 선택지입니다.
기술적 관점에서 본 OLAP
모든 데이터베이스 관리 시스템은 두 그룹으로 분류할 수 있습니다. 하나는 OLAP (Online Analytical Processing)이고, 다른 하나는 OLTP (Online Transactional Processing)입니다. 전자는 대량의 과거 데이터를 기반으로 하지만 빈도는 낮은 보고서 작성을 중심으로 하며, 후자는 일반적으로 끊임없이 이어지는 트랜잭션 흐름을 처리하면서 현재 데이터 상태를 지속적으로 변경합니다.
실제 환경에서 OLAP과 OLTP는 이분법적 범주라기보다 스펙트럼에 가깝게 여겨집니다. 대부분의 실 시스템은 보통 둘 중 하나에 초점을 맞추지만, 반대 유형의 워크로드도 필요할 경우 이를 위한 일부 솔루션이나 우회 방법을 제공합니다. 이러한 상황 때문에 기업은 종종 서로 통합된 여러 저장 시스템을 운영하게 됩니다. 이는 아주 큰 문제는 아닐 수 있지만, 시스템이 많아질수록 유지 관리 비용이 증가하므로, 최근에는 두 종류의 워크로드를 단일 데이터베이스 관리 시스템에서 모두 잘 처리하는 HTAP (Hybrid Transactional/Analytical Processing) 방향으로 추세가 옮겨가고 있습니다.
DBMS가 처음에는 순수 OLAP 또는 순수 OLTP로 시작했더라도, 경쟁에서 뒤처지지 않기 위해 HTAP 방향으로 나아갈 수밖에 없습니다. ClickHouse도 예외가 아닙니다. 처음에는 가능한 한 빠른 OLAP 시스템으로 설계되었고, 아직 완전한 트랜잭션 지원은 제공하지 않습니다. 하지만 일관된 읽기/쓰기와 데이터 업데이트/삭제를 위한 뮤테이션과 같은 기능이 추가되었습니다.
OLAP 시스템과 OLTP 시스템 사이에는 여전히 근본적인 트레이드오프가 존재합니다.
- 분석용 보고서를 효율적으로 생성하려면 컬럼을 개별적으로 읽을 수 있어야 하므로, 대부분의 OLAP 데이터베이스는 열 지향 구조를 사용합니다.
- 반면 컬럼을 개별적으로 저장하면, 행 단위 연산(예: 추가 또는 제자리 수정)의 비용이 컬럼 수에 비례해 증가합니다(시스템이 어떤 이벤트의 모든 세부 정보를 만일을 대비해 수집하려고 하면 컬럼 수가 매우 커질 수 있습니다). 따라서 대부분의 OLTP 시스템은 데이터를 행 단위로 배치해 저장합니다.