Upload
sungwook-kang
View
973
Download
0
Embed Size (px)
Citation preview
강성욱E-mail : [email protected]
Blog : http://sqlmvp.krDatawaffle : http://datawaffle.com
OLAP 테크놀로지OLAP과 다차원모델
OLAP시스템 아키텍처
사용자 인터페이스(GUI화면)
다차원 프로세싱(다차원 연산 수행, 처리. OLAP엔진)
데이터 저장 및 관리(RDBMS, MDDMBS)
사용자
OLAP 제품 구분
데이터 저장 및 관리 다차원 프로세싱 사용자 인터페이스
다차원 DBMS OLAP Client
OLAP ClientROLAP 엔진관계형 DBMS
DOLAP 클라이언트
OLAP ClientHOLAP 엔진다차원DBMS
관계형DBMS
MOLAP
ROLAP
DOLAP
HOLAP
MOLAP
• MOLAP = Multi dimensional OLAP
• 다차원 데이터베이스에 기반한 OLAP
다차원 DBMS
단점 장점
• 데이터 용량 ↑• 에러 회복 능력 ↓• 하드웨어 활용 능력↓
• 신속한 응답• 다차원 배열(Array) 데이터 구조• 밀집된 형태 배열들로 나누어 저장
MOLAP
밀집차원과 희박차원 설정
매출액
매출수량
1월 2월 3월
냉장고
세탁기
청소기
반포 잠실
MOLAP
장점
• 배열내의 값은 각 항목들의 조합에 대해 정돈되어 있으며 고정된위치를 가지므로 인덱스에 영향을 미치지 않고 갱신될 수 있다.
• 읽기/쓰기에 적합. • 특정 셀 단위까지 권한 제한 가능.
배열의 장/단점
단점
• 셀값 하나만 필요로 하는 경우에도 전체 배열이 메모리에 올라와야 한다.(배열이 너무 크지 않도록 주의)
• 차원에 변화가 생길 경우 데이터베이스가 전체적으로 완전히 재구축 되어야 할 수도 있다
MOLAP 엔진
관계형DBMS
MOLAP클라이언트
MOLAP 서버
RDB 테이블
SAM파일
ROLAP
• ROLAP = Relational OLAP
• 다차원 데이터는 관계형 데이터베이스에 저장된다.
• 스타스키마 모델이 많이 사용 된다.
• ROLAP 제품들은 사용자와 관계형 DBMS사이에 위치하여 사용자를 대신해서 복잡한 SQL을 생성하고 다차원 연산을 수행.
• 메타데이터를 포함한 모든 데이터를 관계형 데이터베이스에 저장하고 활용
• 다차원 프로세싱을 위한 별도의 OLAP연산 엔진을 가지고 있다.
OLAP 제품 구분
데이터 저장 및 관리 다차원 프로세싱 사용자 인터페이스
다차원 DBMS OLAP Client
OLAP ClientROLAP 엔진관계형 DBMS
DOLAP 클라이언트
OLAP ClientHOLAP 엔진다차원DBMS
관계형DBMS
MOLAP
ROLAP
DOLAP
HOLAP
ROLAP 엔진
관계형DBMS
메타데이터
질의 생성기(Query Generation)
수학연산처리,Cross-Tabulation 엔진
다차원 질의
질의 결과
OLAP 엔진 클라이언트
스타스키마와 관계형 DBMS
• N! = 조인 개수와 옵티마이저의 최적 조인 순서.
5! = 5 X 4 X 3 X 2 X 1 = 120
10! = 3,628,800
카티션 프로덕트 : 테이블 간에 연결 고리가 없는 경우 두 테이블이 가진 모든 행의 조합
제품 레코드 20,000, 매장 레코드 : 300, 기간 레코드 3,000
18,000,000,000
스타스키마와 관계형 DBMS
스타스키마와 조인 순서
제품
제품+매출(10,000건)
제품+매출+매장
최종결과
매출(사실)
매장
기간
매장
매장+매출(10건)
매장+매출+제품
최종결과
매출(사실)
제품
기간
DOLAP
• DOLAP = Desktop OLAP
• 다차원 데이터 저장 및 프로세싱이 모두 클라이언트에서 이루어 진다.
• 타 OLAP 제품에 비해 설치 및 관리 용이. 적은 비용으로 구축 가능.
• 아키텍처 상의 문제로 대용량 데이터 처리의 한계
• 각 각의 클라이언트 데이터로 인한 일관성 문제 발생.
HOLAP
• HOLAP = Hybrid OLAP
• 다차원 데이터의 저장공간으로 다차원 데이터베이스와 관계형 데이터베이스 함께 사용.
• 요약, 계산된 데이터는 다차원, 상세 데이터는 관계형에 저장.
• 질의 과정에서 다차원 데이터베이스에 저장된 데이터보다 상세 데이터가필요 할 경우 자동적으로 RDBMS에서 상세 데이터를 가져 온다.
OLAP 모델에 따른 장 단점.
비교항목
ROLAP MOLAP HOLAP
기본구조
관계형 DB 다차원 DB 관계 + 다차원 DB
모델 Start, Snowflake Cube 방식 모두 지원
장점 대용량 데이터 처리빠른 데이터 로딩원시 데이터 조회가능
빠른 다차원 분석복잡한 분석 가능
ROLAP + MOLAP 의장점 취합
단점 회귀분석과 같은 복잡한 분석 어려움. 수행 속도 느림
원시 데이터 보지 못함느린 데이터 로딩대용량 데이터처리 어려움
MOLAP서버와 RDB간의 추가적인 데이터 변환 필요
OLAP 툴 평가 기준
• 현재 실질적인 기준이 되지는 못하고 있다.
• 이상적인 기준이라 모두 충족하는 제품은 존재하지 않는다.,
• 자신의 비즈니스와 요구사항에 맞는 툴을 선택하는 것이 필수 적이다.
웹 OLAP
• 장점.
• 비용절감• 어플리케이션 유지보수 최소화.• 소프트웨어 설치 및 유지보수 비용 절감.• 플랫폼간 호환성.
• 단점.
• 한정된 인터페이스• 보안.
웹 OLAP
웹 인터페이스 방식
웹브라우저
웹서버HTML파일
엔진
OLAP
웹브라우저
웹서버HTML파일
프로그램/스크립트 엔진
OLAP
HTTP, TCP/IP
HTTP, TCP/IP
CGIISAP
ClientServerNetwork
OLAP 표준
• OLAP는 표준이 없이 매우 오랫동안 사용되어 왔다. OLAP에 관한 표준이최근 API수준에서 이루어 지고 있다.
• Md-API : OLAP 카운실이 제안한 표준. 실질적인 영향력 없음
• OLE DB for OLAP : 마이크로소프트에 의해 제안. 실질적인 표준 API. MDX(Multidimensional Expressions)라는 다차원 질의 언어를 함께 제공.
다차원 질의언어
• MDX (Multi Dimensional Expressions) 는 관계형 데이터베이스의SQL(Structure Query Language)에 해당하는 것으로 이해 할 수 있다.
• MDX를 잘 알아야 Analysis Services의 활용을 극대화 할 수 있다.
• 튜플(Tuple) : 큐브 공간내의 다차원 주소를 나타내는 좌표로 이해할 수 있다.
다차원 질의언어
SELECT<축 차원>FROM <큐브>WHERE <슬라이서 차원>
SELECT ([반포], [잠실]) ON COLUMNS,
CROSSJOIN ({[냉장고, 세탁기]}, {[매출액], [매출수량]} On ROWS
FROM [매출분석]
WHERE ([1월])
다차원 질의언어
• <축 차원>은 같은 차원성을 가지는 튜플들의 모임인 잡합으로 기술하며128개 까지 지정이 가능하다.
• 축은 AXIS(0), AXIS(1)등과 같이 기술하며 COLUKN, ROWS 와 같은 별칭사용이 가능.
• 축을 지정하는 순서는 상관없으나 높은 번호의 축을 지정하는 경우 그보다 낮은 번호의 모든 축을 지정해야 한다.
다차원 질의언어
MDX 함수 - 셋함수
MEMBERS, CHILDREN, DESCENDANTSORDER, HIERARCHIZETOPCOUNT, BOTTOMCOUNTTOPPERCENT, BOTTOMPERCENTTOPSUM, BOTTOMSUMFILTER, UNION, DISTINCT, INTERSECT, EXCEPTCROSSJOIN, EXTRACT, GENERATE
다차원 질의언어
MDX 함수 – 항목 함수
PARENT, FIRSTCHILD, LASTCHILDPREVMEMBER, NEXTMEMBERLEAD, LAGCURRENTMEMBERFIRSTSIBLING, LASTSIBLINGANCESTOR, COUSIN
다차원 질의언어
MDX 함수 – 연산함수
SUM, AGGREGATE, COUNTAVG, MEDIAN, MIN, MAX, VARIANCE, STDDEV, RANK
다차원 질의언어
MDX 함수 – 시계열 함수
PERIODSTODATE, YTD, QTD, MTD, WTDLASTPERIODS, PARALLELPERIOD,OPENNINGPERIOD, CLOSINGPERIOD,COVARIANCE, CORRELATIONLINREGSLOPE, LINREGINTERCEPT, LINREGVARIANCELINREGR2, LINREGPOINT
다차원 질의언어
WITH MEMBER
• 다차원 모델에 존재하지 않는 항목을 관계식을 이용하여 직접 생성 한다.
WITH MEMBER[변수].[평균가격] = [매출액]/[수량]SELECT([매출액], [가격]) ONCOLUMNS,(냉장고, 세탁기) ON ROWSFROM…
NULL 처리
• 널 값은 0 과 구분.• 수치 연산에선 0과 동일하게 처리.• 문자 연산시 빈문자열처럼 처리.
• NONEMPTY : 널 값을 가진 튜플 제거
SELETNON EMPTYFROM..
벤치마크
• OLAP 카운실이 개발한 APB(Application Processing Benchmark)있다.
• 벤치마크는 OLAP 시스템의 전체적인 성능만을 비교하기 위한 것이며 각OLAP제품들이 가진 다양한 기능과 특성을 고려하지 않는다.
[참고자료]
• OLAP 테크놀로지