다차원 모델에서 데이터는 여러 차원(dimension)으로 구성되며, 각 차원은 개념 계층(concept hierarchy)으로 표현되는 여러 수준의 추상화 단계를 포함합니다. 이러한 구조 덕분에 사용자는 다양한 관점에서 유연하게 데이터를 바라볼 수 있습니다.
OLAP과 개념 계층의 관계
다양한 OLAP 데이터 큐브 연산은 이러한 다중 뷰를 실제로 구현하여, 사용자가 데이터를 대화형으로 조회하고 분석할 수 있도록 지원합니다. 즉, OLAP은 대화형 데이터 분석을 위한 편리한 환경을 제공한다고 할 수 있습니다.
데이터 웨어하우스에서 데이터를 조회하는 데 사용되는 5가지 기본 OLAP 명령은 다음과 같습니다.
1. 롤업(Roll-up)
롤업은 계층 구조에서 더 높은 일반화 수준으로 정보를 요약하는 연산입니다. 예를 들어, 위치 계층에서 도시(city) 수준에서 국가(country) 수준으로 올라가면 레코드가 집계됩니다. 즉, 도시별로 그룹화하는 대신 결과 큐브는 국가별로 데이터를 그룹화하게 됩니다.
또한 롤업은 차원 축소(dimension reduction) 방식으로도 수행할 수 있습니다. 이 경우 주어진 큐브에서 하나 이상의 차원이 제거됩니다. 예를 들어, 위치(location)와 시간(time)이라는 두 차원만 포함하는 판매 데이터 큐브가 있다고 가정해 보겠습니다. 시간 차원을 제거하면, 위치와 시간별 집계 대신 위치별 총 판매액 집계 결과를 얻을 수 있습니다.
2. 드릴다운(Drill-down)
드릴다운은 롤업의 반대 연산으로, 덜 상세한 정보에서 더 상세한 정보로 이동하며 작동합니다. 드릴다운은 특정 차원의 개념 계층을 한 단계 아래로 내려가거나, 더 많은 차원을 추가함으로써 수행할 수 있습니다.
예를 들어, 시간 계층에서 분기(quarter) 수준에서 더 상세한 월(month) 수준으로 내려가면 드릴다운이 발생합니다. 결과적으로 데이터 큐브는 분기별 요약 대신 월별 총 판매액을 분석하게 됩니다.
3. 슬라이스(Slice)와 다이스(Dice)
슬라이스는 주어진 큐브의 한 차원에 선택(selection) 조건을 적용하여 서브큐브(subcube)를 생성하는 연산입니다.
다이스는 두 개 이상의 차원에 선택 조건을 적용하여 서브큐브를 만드는 연산입니다.
4. 피벗(Pivot)
피벗은 회전(rotate)이라고도 불리며, 뷰에서 데이터 축을 회전시켜 데이터를 다른 각도에서 볼 수 있게 하는 시각화 연산입니다. 이를 통해 동일한 데이터라도 새로운 관점의 보고서 형태로 확인할 수 있습니다.
5. 기타 OLAP 연산
일부 OLAP 시스템은 더 다양한 드릴링 연산을 제공합니다.
- 드릴어크로스(Drill-across): 하나 이상의 팩트 테이블을 넘나들며(across) 쿼리를 수행합니다.
- 드릴스루(Drill-through): 관계형 SQL 서비스를 활용하여 데이터 큐브의 최하위 수준부터 백엔드 관계형 테이블까지 파고듭니다.
그 외에도 OLAP 연산은 목록에서 상위 N개 또는 하위 N개 항목의 순위 매기기, 이동 평균, 성장률, 이자율, 내부 수익률, 감가상각, 환율 변환, 통계 서비스 계산 등 다양한 고급 분석 기능을 포함할 수 있습니다.