OLAP 정의와 목적
- 최종 사용자가 다차원 정보에 직접 접근하여 대화식으로 정보를 분석하여 의사결정에 활용하는 과정
- 일반적으로 운영 데이터는 수집과 갱신에 초점을 맞추어 설계되어 최종 사용자(비즈니스유저)가 직접 사용하기는 불편
- 반면, OLAP 환경에서는 사용자가 쉽게 이해할 수 있고 조작하기 쉬운 형태로 존재
- DW는 어떻게 데이터를 구축할 것인가에 초점, OLAP은 DW를 어떻게 활용할 것인가에 초점
- DW는 OLAP을 위한 주요 데이터 원천
- OLTP는 트랜잭션 단위로 처리하는 것에 중점이라면, OLAP은 최적화된 조회에 목적
- CUBE
- 선계산 값을 미리 산출하여 저장하는 연산
- 차원 테이블들과 팩트 테이블을 활용하여 분석을 위해 집계된 데이터 구조
- 다차원 데이터셋 (임의의 수의 차원을 가질 수 있다)
- 차원은 하이라키 구조로 구성될 수 있다
- OLAP 제품 분류
- MOLAP (Multidimensional)
- 결과값을 다차원 배열로 저장, 저장과 프로세싱에 MDB(Multidimensional DB)가 사용
- MDB는 DW에서 관련 데이터들을 주기적으로 가져와서 갱신 필요
- 최종 사용자로부터의 분석 및 질의 요구는 모두 MOLAP 서버에서 처리
- 흔히 떠오르는 인메모리 방식의 BI Tool들에 해당??
- 장점: 검색속도가 빠르고 ROLAP대비 사용이 쉽다(?)
- 단점: 차원을 미리 정의내리고, 데이터큐브를 먼저 생성 후(?) 데이터를 MDB에 적재? (미리 생성 된 차원에 한해서만 사용자가 확인 가능)
- ROLAP (Relational)
- 결과값을 DB에 저장하므로 저장에 용이(summary 테이블?)
- 인메모리 방식 아닌, 그때그때 DW로 쿼리 날리는 BI Tool 인건가 (이런게 있나? Longview? MSTR도 ROLAP 형식의 보고서가 가능하다고 함..)
- DB에서 조회되므로 쿼리 성능 중요
- 리포팅 시마다 추가적인 연산 필요
- 최종 사용자의 질의 요구를 SQL문으로 변환하여 DW로 전달
- DW로 부터의 처리 결과를 가공하여 최종 사용자에게 전달
- 쉽게 말하면, 워드닷컴,IDS 방식?
- 결과값을 DB에 저장하므로 저장에 용이(summary 테이블?)
- DOLAP (Desktop)
- 결과값을 선계산 하는 방식이 아닌, 최종 사용자의 요청에 따라 직접 DW에 접근하여 집계 처리
- 서버 개념 없이 최종 사용자가 직접 DW에 접근
- DW추출 후 사용자의 PC에 저장하는 형태
- 저장과 프로세싱이 모두 클라이언트에서 이루어짐, 필요한 데이터가 모두 클라이언트로 이동하게 되어 대용량 데이터 처리에는 한계
- HOLAP (Hybrid)
- MOLAP + ROLAP의 장점
- 결과값의 저장을 MOLAP / ROLAP 선택 가능
- MOLAP (Multidimensional)
- 선계산된 값(결과값)들을 어떻게 저장하느냐에 따라 구분
OLAP의 기본 분석 유형
- 드릴업 (롤업)
- 작은 단위에서 큰 단위로 이동하는 연산(차원 낮추기)
- 드릴다운
- 큰 단위에서 작은 단위로 세분화 (차원 높이기)
- 드릴스루
- 드릴다운 방식으로 조회 하다가, 특정 데이터에 대한 상세 데이터를 조회하는 방식, 다차원 데이터 보다는 관계형 데이터에 대한 접근을 의미 (raw데이터?)
- 슬라이스
- 큐브의 한 조각을 연산, 큐브의 한 단면 보기 (1개 차원 선택)
- 다이스
- 슬라이스와 비슷, 하위 큐브 만들기 위해 2개 이상의 차원 선택
- 피벗
- 데이터 축을 회전하여 제공
'학습장 > Data Engineering' 카테고리의 다른 글
[DW] Mart Modeling (1) | 2022.11.28 |
---|---|
[DW] Dimensional Modeling (2) | 2022.11.24 |
[DB] index 등 기본개념 정리 (3) | 2022.11.08 |
spark 실행구조 (0) | 2022.10.31 |
[spark] RDD란? (2) | 2022.10.24 |
댓글