/********************************************************************************************
-- Title : (dBNuri) OLAP 개요
-- Reference : OLAP 테크놀로지(SigmaInsight.조재희.박성진)
00000 교육센터 OLAP 교육과정
외 다수 OLAP 관련 블로그 및 사이트
-- Key word : OLAP 올랩 다차원분석
********************************************************************************************/
--
아래 내용들은 상단에 언급된 레퍼런스를 참조한 것들이고 잘못 이해한 것들이 있을 수 있습니다.
--
틀린 부분은 언제나 Feedback 주십시오..^^
OLAP의 개요
사용자가 다양한 차원(각도/관점/구성)의 정보에 직접 접근하여 대화식으로 분석하고 의사결정에 활용하는 과정(다차원 정보 분석)
-- 다양한 차원 : 매출액을 변수로 질문을 던질 때, 1)제품별 매출액은? 2)지역별 매출액은? 3)기간별
매출액은? 등에서 제품별/지역별/기간별을 다양한 차원으로 정의할 수 있다.
-- 직접 접근 : 기존의 시스템은 사용자가 전산부서에 원하는 정보를 요청해서 결과를 얻게되지만
OLAP은 사용자가 중간 매개자 없이 직접 OLAP 시스템에 접근하여 분석을 수행하게 된다.
-- 대화식 분석 : 기존 시스템에서는 사용자에게 정형화된 보고서나 스크린 형태로 넘겨져서 사용자가
분석했다면, OLAP은 사용자가 원하는 결과를 얻을 때까지 OLAP 시스템과의 다양한 질의/결과의
상호작용을 통해 계속해서 분석을 수행하게 된다.
-- 의사결정 활용 : OLAP은 결국 사용자가 기업의 전반적인 상활을 이해할 수 있게 하고 의사결정을
지원하는데 있다.
-- OLAP Reports.. Fast Analysis of Shared Multidimensional Information.
OLTP vs. OLAP
ㅇ OLTP : On-Line Transaction Processing
ㅇ OLAP : On-Line Analytical Processing
-- OLTP : 온라인 상에서 여러 사용자가 데이터를 갱신하거나 조회하는 등의 작업을 처리하는 방식
을 말한다.
(
DB에서 트랜잭션이 많이 발생하는 시스템을 생각하시면 됩니다
..^^;;)
-- OLAP : 온라인 상에서 사용자가 대량의 데이터를 조회하여 데이터가 가지는 의미를 분석하는
방식의 프로세스를 말한다.
(
예로 로그에서 시간별 판매 정보로 마케팅에 활용할 때.. 미천한 설명 능력 부족요
..ㅡ.ㅜ)
<OLTP vs. OLAP 비교 요약> 출처 : 여러 블로그
구분 | OLTP | OLAP |
데이터의 구조 | 복잡 (운영 시스템 계산에 적합) | 단순(사업 분석에 적합) |
데이터의 갱신 | 순간적/동적 | 주기적/정적 |
응답 시간 | 2, 3 초 ~ 몇 초 이내 | 수 초 ~ 몇 분까지도 가능 |
데이터의 범위 | 과거 30 일 ~ 90 일 | 과거 5 년 ~ 10 년 |
데이터 성격 | 정규/핵심 업무 데이터, mission critical 데이터 |
비정규/read-only 데이터,index 에 의존 |
데이터의 크기 | 수 Giga Byte | 수 Tera Byte |
데이터의 내용 | 현재 데이터 | 기록 보관된, 요약/계산 데이터 |
데이터 특성 | 거래처리(transaction) 중심 | 주제(subject) 중심 |
데이터 액세스 빈도 | 높음 | 보통 혹은 낮음 |
데이터의 사용법 | 고도로 구조화된 연속 처리 | 고도로 비구조화 된 분석 처리 |
쿼리의 성격 | 예언 가능, 주기적 | 예측하기 어렵고, 특수하다 |
OLAP 용어 정의
ㅇ 셀(Cell)과 다차원배열(Multi-Dimensional Array)
ㅇ 차원(Dimension)과 차원 멤버(Dimension Member), 차원 계층 구조(Dimension Hierachy)
ㅇ Measure/Variable
ㅇ Attribute/Property
ㅇ Drill Down과 Roll Up
ㅇ Pivot/Rotate
ㅇ Slice와 Dice
--
OLAP을 설명할 때 기본적으로 사용되는 정육면체(Cube)를 예로 설명하겠습니다..^^;;
<Pic. 1 기본 큐브 예>
-- 셀(Cell )
: 하나의 데이터가 저장되는 공간으로 큐브에서 작은 육면체를 말한다.
: 각 차원(제품/지역/기간, 아래 설명)들이 가진 멤버(항목의 좌표값)들의 조합수 만큼
존재한다.
-- 다차원 배열(Multi-Dimensional Array)
: 데이터의 차원에 의해 정렬된 데이터 셀의 집합을 말한다.
: 이차원 배열은 스프레드시트와 유사하고 삼차원은 정육면체(Cube)로 나타낼 수 있다.
※ 다차원 모델 : OLAP에서 일반적으로 큐브(Cube)로 명명한다.
-- 차원(Dimension)
: 사용자가 분석하려는 항목에 대한 관점을 말한다.
: 이차원에서 x, y축, 삼차원에서 x,y,z축(기간, 지역, 제품)을 의미한다.
-- 차원 멤버(Dimension Member[Element])
: 차원을 구성하는 항목의 좌표값을 말한다.
: 지역 차원의 멤버는 서울, 경기, 대구, 대전, 부산 등을 말한다.
-- 차원 계층 구조(Dimension Hierachy)
: 한 차원의 멤버들간에 존재하는 부모-자식의 계층 구조를 말한다.
: 하나의 차원이 여러 차원 계층 구조를 가지는 경우도 있다.
: 년도-상/하반기-분기-월...
이렇게 예를 들면 될까요?..
OTL
: Consolidation(=Aggregatioin=Rolling up)에 사용된다.
※ 레벨(Level) : 계층구조는 여러 레벨(다단)을 사용하여 상위 계층과 하위 계층을 구분한다.
-- Measure/Variable
: 분석하고자 하는 항목을 의미한다.
: 매출액, 판매수량, 비용등.
: 대부분의 경우 수집되는 수치데이터이다.
: OLAP 제품에 따라 Measure, Variable, Fact, Account, Item, Structure 등으로 상용된다.
-- Attribute/Property
: 하나의 차원에 대해 차원을 구성하는 항목들의 특성을 나타내는 정보를 의미한다.
: 제품 차원에 대해 제품번호, 제품생산일자, 생산담당자 등이 Attribute이다.
-- Drill Down
: Drill Down은 특정한 주제 영역에서 큰(요약된) 범위에서 작은(상세) 범위로 단계적 접근하는
분석 방법을 말한다.
(광역 -> 시도 -> 구 -> 동 -> 번지)
-- Roll Up
: Roll Up은 Drill Down과 반대 방향(작은 범위 -> 큰 범위)의 단계적 접근 분석 방법을 말한다.
(번지 -> 동 -> 구 -> 시도 -> 광역)
※ Drill Across : 다른 큐브에 접근하여 분석하는 방법
Drill Through : DW나 OLAP의 상세 데이터에 접근하는 분석 방법(=Reach Through)
이쯤 되면 정신없어 지지만~~ 참~ 쉽죠잉~
OTL
-- Pivot/Rotating
: 분석 테이터의 축을 바꾸는 것.
: T-SQL문에서 Pivot/Unpivot과 동일한 의미.
-- Slice
: Slice는 한 차원의 멤버나 그 이상의 멤버를 가지고 한 값을 선택했을 때 나타나는 그 부분
집합을 말한다.
: 제품 당당자가 특정 제품에 대해서 선택할 때 나타나는 지역과 기간에 대한 집합
-- Dice
: Slice된 특정 항목에 대해 Rotation이나 Drill down, Roll up 등을 이용하여 대화식으로 화면을
디스플레이 해가며 분석하는 프로세스를 말한다.
<Pic 2. Slice, Dice 예>
OLAP 제품 분류
ㅇ ROLAP : Relational OLAP
ㅇ MOLAP : Multi-Dimensional OLAP
ㅇ HOLAP : Hybrid OLAP
ㅇ DOLAP/Web OLAP/...
-- ROLAP : 관계형 데이터베이스나 확장된 관계형 데이터베이스를 사용해 다차원 모델링되는 데이터
큐브를 테이블 형태로 저장 운용하는 방식을 말한다.
ROLAP은 Table(RDBMS)에 저장된다고 보시면 될 듯 싶습니다..
-- MOLAP : 데이터 큐브를 실제로 다차원 배열(Array)에 기반한 다차원 저장 엔진을 사용하여 저장
운용하는 방식을 말한다.
MOLPA은 Cube(MDBMS)에 저장된다고 보시면 될 듯 싶습니다..
^^;;;;;
-- HOLAP : ROLAP과 HOLAP을 혼용한 방식을 말한다.
-- DOLAP : Desktop OLAP으로 다차원 데이터 저장 및 프로세싱이 모두 클라이언트에서 이뤄진다.
-- Web OLAP : 인트라넷/인터넷 환경에서 지원되는 OLAP을 말한다.
<MOLAP과 ROLAP 비교> 출처 : OBCsoft
MOLAP | ROLAP |
다차원 OLAP(MDB기반의 OLAP), Real Data Cube |
관계형 OLAP(RDB기반의 OLAP), Virtual Data Cube |
다차원 data view를 미리 정의한 후 질의 수행 (예:영업실적을 제품/브랜드 /계절 /가계별로 검색 후 질의 수행) |
강력하고 유연한 질의 기능 확장성 있는 다차원 구조 |
drill-down/pivoting/복잡한 회계연산 구현 가능 | 복잡한 회계연산 구현 불가 |
많은 공간 차지 (기본량의 5~10배 이상), 대용량 처리 불가 |
적은 공간 차지(기본량의 2배 이내), 대용량 처리 가능 |
차원 수와 값이 많아지면, 큐브(cube) 크기가 기하급수적으로 증가 |
차원 수와 관계없이 처리 |
그대로 다차원 분석 가능 | 다차원 분석을 위해서 데이터 모델링을 수행하는 스타 -스키마 (Star Schema), 스노우플레이크 - 스키마(Snowflake Schema) 필요 |
사용자 요구 변경 시 재 구축 | 사용자 요구 변경 시 쉽게 대처 |
재무 Application에 적합 | 끊임없이 데이터가 갱신되는 POS (Point Of Sales) S/W 등의 마케팅 애플리케이션(Application) 에 적합 |
<Pic. 3 OLAP 제품별 특징> 출처 : OLAP Report
다차원 모델의 구성 내역
ㅇ 모델
ㅇ 차원(Dimension)
ㅇ 차원 항목(Member or Element)
ㅇ 셀(Cell)
ㅇ 계층구조(Hierachy)
ㅇ 레벨(Level)
ㅇ 애트리뷰트(Attribute)
-- 다차원 모델 구성시 상기에 언급된 내역들을 정의하고 구현해 나간다.
--
용어에 대한 설명은 상단 "OLAP 용어 정의"로 대신하겠습니다..
^^ㆀ
다차원 모델링
ㅇ 사실테이블(Fact Table) vs. 차원테이블(Dimension Table)
ㅇ Star 스키마 vs. SnowFlake 스키마
모델링 순서)
ㅇ 차원 항목 결정
ㅇ 데이터의 구체성 결정
ㅇ 계층구조와 애트리뷰트 정의
ㅇ 차원수 결정
-- 사실테이블(Fact Table)
: 스키마의 중심에 위치하며 유일하게 정규화 된다.
: 저장되는 데이터는 대부분 운영에서 수집된 수치 데이터와 우선 집계된 데이터들이다.
: 사실테이블의 키는 차원테이블의 키를 참조하는 복합키로 구성된다.
:
지역 차원과 제품 차원이 있을 때, 해당 차원에 해당하는 값들을 사실테이블의 데이터라고
생각하심 되겠슴돠
..ㅡ.ㅡ;;
-- 차원테이블(Dimension Table)
: 사용자 관점을 나타내는 차원에 관한 정보를 저장하고 사용자들이 분석을 시작하는 기준이
되는 데이터들이다.
: 정규화되지 않는다.(SnowFlake에서는 차원테이블을 정규화 한다.)
:
용어 정의에서 Dimension을 사용자가 분석하려는 관점이라고 했듯이, 분석하려는 관점을
테이블로 정의하고 그 항목을 저장한 테이블을 말합니다.
지역, 제품, 기간의 차원이 각각 차원테이블로 만들어 질 수 있겠습니다...
-- Star 스키마
: 사실테이블을 중심으로 여러 차원테이블과 조인한다.
: 차원테이블을 정규화 하지는 않는다.
-- SnowFlake 스키마
: Star 스키마의 변형으로 정규화된 차원테이블을 가진다.
<Pic 4. 스키마 셈플>
다차원 분석
ㅇ Slicing & Dicing
ㅇ Drill Down, Drill Up, Drill Across, Drill Through
ㅇ Sorting, Ranking
ㅇ OLAP Join
-- 위에서 언급된 내용는 다차원 분석에 필요한 질의 방법을 말한다.
-- OLAP Join : 질의 과정에서 다수의 큐브를 논리적으로 조인할 때의 질의를 말한다.
--
나머지는 상단 용어 정의를 참조해 주심쇼
~~~