MDX 의 이해와 활용 권오주 올랩포럼 시삽 Microsoft Global MVP www.olapforum.com.

Slides:



Advertisements
Similar presentations
2011년 월별 영업일수 정리 2011년 월별 Calendar (단위: 일)
Advertisements

PARK SUNGJIN Oracle 설치 PARK SUNGJIN
국립원예특작과학원 기술지원과 채소기술지원실
16 분석함수 분석 함수의 개념 분석 함수의 종류 계층적 질의문.
MS-Access의 개요 1강 MOS Access 2003 CORE 학습내용 액세스 응용 프로그램은 유용한 데이터를
3 2 년 1 나만의 하나뿐인 달력~♥ sujin.
Excel 일차 강사 : 박영민.
제 7 장 문장 구조화 제어문 지정문 조건문 반복문 GOTO 문 비결정적문.
제 09 장 데이터베이스와 MySQL 학기 인터넷비즈니스과 강 환수 교수.
Horowitz, Sahni and Anderson-Freed Computer Science Press
8장 서브 쿼리.
질의처리 최적화 충북대학교 정보통신공학부 복경수
Report Builder 소개 SQL Server 2005 Reporting Services에서의 최종 사용자 비정형 리포팅
MySQL 및 Workbench 설치 데이터 베이스.
데이터베이스 및 설계 금오공과대학교 컴퓨터공학부 이 이섭.
목 차 Ⅰ 회사소개 Ⅱ CIP 소개 Ⅲ TPM 추진현황 Ⅳ 활동 성과 및 향후 계획.
EARNED VALUE MANAGEMENT
Excel OLAP Reporting / OWC를 이용한
목차 백업과 복원.
요약 정보 만들기.
SSAS 변화된 구조와 사용자 분석 화면 구현 우철웅 기술이사 BI 사업부 인브레인.
웹 로그 데이터를 이용한 다차원 질의 분석 데이터베이스 연구실 석사 3학기 김 백 선.
5장 Mysql 데이터베이스 한빛미디어(주).
4장. 웹로직 서버상에서의 JDBC와 JTA의 운용
6장 그룹 함수.
07 그룹 함수 그룹 함수의 개념 그룹 함수의 종류 데이터 그룹 생성 HAVING 절.
Analysis Services DB 설계 가이드
Pilot Decision Support Suite를 사용한 매출액 분석
3.2 SQL Server 설치 및 수행(계속) 시스템 데이터베이스 master
데이터 재정리하기 피벗 테이블과 피벗 차트 목표값 찾기와 시나리오 관리자
FTP 프로그램 채계화 박재은 박수민.
MicroStrategy6 컴퓨터학과 석사 2학기 진수경.
컴퓨터응용과학부 Java Enterprize(DB) 제 15 주
                              데이터베이스 프로그래밍 (소프트웨어 개발 트랙)                               퍼스널 오라클 9i 인스톨.
18강. 데이터 베이스 - II JDBC 살펴보기 Statement객체 살펴보기 Lecturer Kim Myoung-Ho
5장 Mysql 데이터베이스 한빛미디어(주).
You YoungSEok Oracle 설치 You YoungSEok
C#.
환경 설정 예제 데이터베이스 생성 - 그림 3.34의 SQL Server 관리 스튜디오 창의 왼쪽 영역의 데이터베
Sql & DB
목 차 들어가기 ………… 2 작동원리 ………… 4 구문설명 ………… 6 FUNCTIONS …………11 예제 ………… 2
JDBC Lecture 004 By MINIO.
세일즈분석/분석CRM을 위한 데이터마이닝 활용방안
2장. 데이터베이스 관리 시스템 데이터베이스 관리 시스템의 등장 배경 데이터베이스 관리 시스템의 정의

CHAP 5. 레이아웃.
Smart Workplace 개발자 가이드
Database 중고차 매매 DB 비즈니스IT 윤동섭.
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
ITQ 정보기술자격 국가공인 Excel 2007 Ⅱ 함수- 11회차 강사 : 박영민.
11장. GROUP BY와 HAVING 열의 그룹화 2개 이상의 열에 대한 그룹화
소프트웨어시스템 실습 다차원 데이터 구성 및 OLAP
문성우 SQL 실습 Part Ⅰ 문성우.
최근의 취업률 / 실업률 추이 취업률 실업률 취업자 증가수 JUL % 10 % 100만 명 50 % 5 %
Premier Certification PR Certification Renewal
SQL Server 2000 세미나 View, SP &Trigger
Excel 일차 강사 : 박영민.
자료 : 한국면세점협회 B $ 15.6B $ 14.9B $ 14.17B $ (1.6조 원) 자료 : 한국면세점협회
오라클 11g 보안.
세션에 대해 알아보고 HttpSession 에 대해 이해한다 세션 관리에 사용되는 요소들을 살펴본다
멀티미디어시스템 제 4 장. 멀티미디어 데이터베이스 정보환경 IT응용시스템공학과 김 형 진 교수.
멀티미디어시스템 제 5 장. 멀티미디어 데이터베이스 개념 IT응용시스템공학과 김 형 진 교수.
Dec Nov Oct Sep Aug Jul Jun May Apr Mar Feb Jan 자료 : 리얼메터
Ransomware (28 %) 금융정보 탈취 (17 %) Downloader (10 %) Dropper (9 %)
Dec Nov Oct Sep Aug Jul Jun May Apr Mar Feb Jan 자료 : 리얼메터
쿼리 활용하기 1 담당교수 : 박흠 실용컴퓨터 데이터베이스 기초 Access 담당교수 박흠.
 6장. SQL 쿼리.
                              데이터베이스 설계 및 실습 #6 - SQL 실습 한국외국어대학교 DaPS 연구실                              
임시테이블과 테이블변수 SQLWorld Study Group - 최명환 -.
산타페 ㈜ 2008 영업 제안서 손미순 해외 영업 부회장 2008년 3월 24일 로고.
Presentation transcript:

MDX 의 이해와 활용 권오주 올랩포럼 시삽 Microsoft Global MVP

소개 내용  MDX 의 의의  MDX 기본 이해  MDX 기본 활용  MDX 고급 활용

MDX 의 의의

MDX 의 이해  MDX = Multi Dimensional eXpressions  OLAP 데이터베이스를 모델링하고 쿼리하는 구문 다차원 오브젝트 이해 큐브, 차원, 수준, 구성원, 셀, … 다차원 공간 탐색 및 이동  OLAP Services 고급 구현 필수 복잡한 비즈니스 로직 구현 다양한 부가적 기능  OLE DB for OLAP 스펙의 부분  Provider (Analysis Services, TM1, SAS, WhiteLight, SAP, …)

OLE DB for OLAP 지원  지원 선언 업체 리스트 ( 기준 ) Acuity Group, Andyne Computing Limited, Application Consulting Group, Inc. (ACG), Applix TM1 Software, Arbor Software, arcplan, Inc., AVOCA Systems Limited, BAAN, Brio Technology, Business Objects, Cognos, Comshare, Gentia Software, Hyperion Software, Information Advantage Inc., International Software Group, InterNetivity, Intersolv, Inc., IQ Software, Knosys, Microsoft, MIS AG, NCR,Panorama Software Systems Ltd., Pilot Software, Sagent Technology, Inc., SAS Institute, Seagate Software, Silvon Software, Simba Technologies, Speedware Corporation, WhiteLight Systems, X- Tension,...

MDX 쿼리가 가능한 데이터베이스  Analysis Services, TM1, SAS, SAP, Whitelight, Silvon, Harmony, NCR, Seagate, Essbase,...  제한된 범위 내에서 업체별로 MDX 를 확장해 기능 강화 (Superset, Subset)

Analysis Services MDX 활용  동작  계산된 구성원  계산된 셀  명명된 집합  사용자 롤업 수식  사용자 지정 구성원 수식  차원 보안의 사용자 지정 규칙  셀 보안의 사용자 지정 규칙  동적인 속성 설정

MDX 의 활용 유형  MDX Statement 브라우징용 쿼리 언어 (SQL 쿼리와 유사 ) 완전한 구문 (SELECT…FROM) 클라이언트 Apps 용 도구 완전한 보고서 형태 값들 반환 (Data Set)  MDX Expression 다차원 수식 ( 스프레드시트 수식과 유사 ) 비즈니스 모델링 계산된 구성원, 기본 구성원, 차원 / 큐브 속성 생성 및 설정 등에 활용 하나의 단일 값 반환

MDX 기본 이해

MDX 쿼리 SELECT ON COLUMNS, ON ROWS, … FROM Cube WHERE SELECT ON COLUMNS, ON ROWS, … FROM Cube WHERE  128 개의 축 ( 하나의 축에 차원 중첩 가능 )  쿼리 실행 축 생성 셀의 데이터 값 획득  예 ) 97, 98 년 CA 의 판매수량, 판매액 SELECT { [Measures].[Unit Sales], [Measures].[Store Sales] } ON COLUMNS, { [Time].[1997], [Time].[1998] } ON ROWS FROM Sales WHERE ( [Store].[USA].[CA] )

MDX 쿼리 실행 GroceriesClothing Appliances SalesCostUnits

MDX 구조  구성원 (Member) [ 홍두깨 ], [1991].[Q1].[1 월 ]  튜플 (Tuple) ( [ 홍두깨 ], [ 서울 ] ), ( [ 컴퓨터 ], [1991] )  집합 (Set) { [ 홍두깨 ], [ 홍길동 ] } {( [ 컴퓨터 ],[ 서울 ] ), ( [ 프린터 ],[ 경기 ] )} [1991].Children TopCount( [ 영업부 ].Members, 10, [ 판매액 ] )

다차원 공간  구성원 (Member)  수준 (Level)  차원 (Dimension)  큐브 (Cube)/ 파티션 (Partition)  셀 셀 주소 (Cell Address) 상대 주소 (Relative Address) 현재 셀 (Current Cell)

셀 주소 Non-Cons Food Drink SalesCostUnits (Products.Food, Measures.Units,Time. 98) (Products.Food, Measures.Sales,Time. 97) (Products.[Non-Cons], Measures.Cost,Time.95) 96 95

98 Food Units ? ? (Products.Food, Measures.Units, Time.98.PrevMember) (Products.Food, Measures.Units, Time.98.NextMember) 상대 주소

98 Food Units ? (Products.Food, Measures.Units, Time.98.PrevMember) ? (Products.Food, Measures.Units, Time.98.NextMember) ? (Products.Food, Measures.Units.PrevMember, Time.98.Lag(3)) (Products.Food, Measures.Units.PrevMember, Time.98.Lead(-3)) 또는 상대 주소

현재 셀 Non-Cons. Food Drink Current Cell : ( Product.CurrentMmeber, Time.CurrentMember, Measures.CurrentMember ) Sales Cost Units Growth

Non-Cons Food Drink SalesCostUnits WITH MEMBER Measures.Growth AS ‘(Time.CurrentMember,Measures.Sales) - (Time.CurrentMember.PrevMember,Measures.Sales)’ SELECT Time.Year.Members ON ROWS, AddCalculatedMembers(Measures.Members) ON COLUMNS FROM Sales GrowthTime.95Empty 15 Time.CurrentMember Time.CurrentMember.PrevMember 판매액의 전기 대비 성장률 ?

Time.96 Time Non-Cons Food Drink SalesCostUnits Growth WITH MEMBER Measures.Growth AS ‘(Time.CurrentMember,Measures.Sales) - (Time.CurrentMember.PrevMember,Measures.Sales)’ SELECT Time.Year.Members ON ROWS, AddCalculatedMembers(Measures.Members) ON COLUMNS FROM Sales Time.CurrentMember Time.CurrentMember.PrevMember

Time.97 Time Non-Cons Food Drink SalesCostUnits Growth WITH MEMBER Measures.Growth AS ‘(Time.CurrentMember,Measures.Sales) - (Time.CurrentMember.PrevMember,Measures.Sales)’ SELECT Time.Year.Members ON ROWS, AddCalculatedMembers(Measures.Members) ON COLUMNS FROM Sales Time.CurrentMember Time.CurrentMember.PrevMember

Time.98 Time WITH MEMBER Measures.Growth AS ‘(Time.CurrentMember,Measures.Sales) - (Time.CurrentMember.PrevMember,Measures.Sales)’ SELECT Time.Year.Members ON ROWS, AddCalculatedMembers(Measures.Members) ON COLUMNS FROM Sales Time.CurrentMember Time.CurrentMember.PrevMember Non-Cons Food Drink SalesCostUnits Growth

Time.99 Time WITH MEMBER Measures.Growth AS ‘(Time.CurrentMember,Measures.Sales) - (Time.CurrentMember.PrevMember,Measures.Sales)’ SELECT Time.Year.Members ON ROWS, AddCalculatedMembers(Measures.Members) ON COLUMNS FROM Sales Time.CurrentMember Time.CurrentMember.PrevMember Non-Cons Food Drink SalesCostUnits Growth

MDX 기본활용

기간 분석 요구 사항 …  판매액의 전기 대비 성장률 ?  판매액의 전년 대비 성장률 ?  판매액의 기간 누적 ?  재고량 기간별 재고량 ? 기간별 평균 재고량 ? 최근의 평균 재고량 ? 기간 중 최대 / 최소 재고량

판매액의 전기 대비 성장률 ? YearQuarterMonthSalesResult Q1120 Jan30 Feb40 Mar50 Q2200 Apr65 May45 Jun90 Q3185 Jul55 Aug60 Sep70 Q4285 Oct80 Nov100 Dec

Time.CurrentMember, Measures.CurrentMember Time.CurrentMember,Measures.Sales Time.CurrentMember.PrevMember, Measures.Sales YearQuarterMonthSalesResult Q2200 Apr65 May45 Jun

판매액의 전년 대비 성장률 ? YearQuarterMonthSalesResult Q1120 Jan30 Feb40 Mar50 : : : : : : Q4285 Oct80 Nov100 Dec Q1170 Jan50 Feb55 Mar65 Q4275 Oct90 Nov100 Dec

(Measures.Sales,Time.CurrentMember) - (Measures.Sales,ParallelPeriod(Year,1,Time.CurrentMember)) YearQuarterMonthSalesResult Q1120 Jan30 Feb40 Mar50 : : : : : : Q4285 Oct80 Nov100 Dec Q1170 Jan50 Feb55 Mar65 Q4275 Oct90 Nov100 Dec85 20

판매액의 기간 누적 ? YearQuarterMonthSalesYTD Q Jan3030 Feb4070 Mar50120 Q Apr65185 May45230 Jun90320 Q Jul55375 Aug60435 Sep70505 Q Oct80585 Nov Dec105790

Sum(YTD(Time.CurrentMember),Sales) Time.Mar,Measures.Sales Time.Feb,Measures.Sales Time.Jan,Measures.Sales + + (Time.CurrentMember,Measures.Sales) + (Measures.YTD,Time.CurrentMember.Prevmember) YearQuarterMonthSalesYTD Q Jan3030 Feb4070 Mar50120

재고량 분석 요구사항...  일정 시간 시점의 재고량 (Snapshot)  비즈니스 분석요구사항 각 기간의 시작과 종결시점의 재고량 각 기간의 평균수량과 재고가치 한 기간에서 최저와 최고일 때의 재고량 전체 재고가치에 대한 각 아이템의 상대적 기여도  문제점 : 재고량 측정값은 시간에 대해 누적되지 않는 값

재고량 ……. 문제점 : 재고량은 누적되는 값이 아니다.. … YearQuarterMonthInventory Q1120 Jan30 Feb40 Mar50 Q2200 Apr65 May45 Jun90 Q3185 Jul55 Aug60 Sep70 Q4285 Oct80 Nov100 Dec105

마감 재고 해당기간의 마지막 월의 수량 다음 중 마지막 월의 수량 (Descendants([Time].CurrentMember, [Month]) (Measures.Quantity, Tail(Descendants([Time].CurrentMember, [Month]),1).Item(0)) (Measures.Quantity, ClosingPeriod([Month]))

(Inventory, ClosingPeriod(Month)) ClosingPeriod(Month)) YearQuarterMonthInventoryResult Q1120 Jan3030 Feb4040 Mar5050 Q2200 Apr6565 May4545 Jun9090 Q3185 Jul5555 Aug6060 Sep7070 Q4285 Oct8080 Nov Dec105105

Avg( Descendants([Time].CurrentMember,[Month]), Quantity) 기간의 모든 월별 수량의 합계를 월수로 나눈다 Sum ( 기간의 월들, Quantity) / Count( 기간의 월들 ) Sum (Descendants([Time].CurrentMember,[Month]), Quantity) / Count(Descendants([Time].CurrentMember,[Month])) 기간에 대한 평균

Avg( Descendants([Time].CurrentMember,[Month]), Inventory) YearQuarterMonthInventoryAvg Q1120 Jan3030 Feb4040 Mar5050 Q2200 Apr6565 May4545 Jun9090 Q3185 Jul5555 Aug6060 Sep7070 Q4285 Oct8080 Nov Dec105105

최근의 평균 재고량 IIF(Time.CurrentMember.Level.Name = “Month”, AVG(LastPeriods(5, Time.CurrentMember), AVG(LastPeriods(5, Time.CurrentMember), Inventory), Inventory), NULL) NULL) Measures.[Avg Inv Of Last5 Mon]

기간 중 최대 재고량 Measures.[Maximum Inventory] MAX( Descendants(Time.CurrentMember,Time.Month), Descendants(Time.CurrentMember,Time.Month), Measures.[Value] Measures.[Value] )

기간 중 최소 재고량 Measures.[Minimum Inventory MIN( Descendants(Time.CurrentMember,Time.Month), Descendants(Time.CurrentMember,Time.Month), Measures.[Value] Measures.[Value] )

가장 최근의 값  재귀적 참조 이용 WITH MEMBER Measures.[Last Sales] AS 'IIF(IsEmpty((Measures.[Store Sales], Time.CurrentMember)), 'IIF(IsEmpty((Measures.[Store Sales], Time.CurrentMember)), (Measures. [Last Sales], Time.PrevMember), (Measures. [Last Sales], Time.PrevMember), (Measures.[Store Sales], Time.CurrentMember) (Measures.[Store Sales], Time.CurrentMember) )' )' SELECT {[Store Sales], [Last Sales]} ON COLUMNS, {Time.Members} ON ROWS {Time.Members} ON ROWS FROM Sales Store Sale Last Sales Jan Feb Mar Apr :: 200

기여도 분석요구 사항...  순위 소속별 순위 전체 순위  기여도 점유율 배부

제품의 소속 그룹내 판매액 순위 제품의 그룹별로 각 제품의 판매액 순위 Rank( 현재제품, 판매액으로 정렬된 현재제품이 속한 그룹의 제품들 ) Rank(Product.CurrentMember, Order( 해당 그룹의 제품들, [Store Sales])) Rank(Product.CurrentMember, Order(Product.CurrentMember.Siblins, [Store Sales], DESC) )

제품에 속한 레벨내 판매액 순위 제품의 레벨내에서 각 제품의 판매액 순위 Rank( 현재제품, 판매액으로 정렬된 현재제품이 속한 레벨의 제품들 ) Rank(Product.CurrentMember, Order( 해당 레벨의 제품들, [Store Sales])) Rank(Product.CurrentMember, Order(Product.CurrentMember.Level.Members, [Store Sales], BDESC) )

점유율 현재 제품 또는 그룹이 전체에서 차지하는 판매 기여도 현재 제품 또는 그룹의 판매 금액 / 전체 제품의 판매금액 [Store Sales] / ( 전체 제품, [Store Sales]) [Store Sales] / (Product.[All Products], [Store Sales])

판매실적 기준 예산 배분 SalesCost Allot Budget All Products Drink Drink Alcoholic Alcoholic Beverages Beverages Dairy Dairy Food Food Baked Baked Canned Canned Eggs Eggs700350

([All Products], [Allot Budget]) * ([Store Sales] / ([All Products], [Store Sales])) 제품 전체 예산 * 현재 제품 또는 그룹이 전체에서 차지하는 판매 기여도 ([All Products], [Allot Budget]) * 현재 제품 또는 그룹이 전체에서 차지하는 판매 기여도

MDX 고급활용

Current Cell Context  Default Member All Member 최상위 레벨의 첫번째 Member 별도 지정된 Member (MDX 활용 가능 )  CurrentMember FROM WHERE Closest Context 축과의 교차점 서브 집합

반복 처리  반복처리 관련 주요 함수 Generate CurrentMember Current Item  상점별 판매금액 기준 Top 5 제품들  판매이익 Top5 고객 중에 판매금액이 Top5 인 고객  SCD Type II 에서의 사원별 판매금액 실적

Generate()  Set Generate(Set1, Set2[, ALL]) Set1 을 구성하는 각 튜플에 대하여 Set2 복제 결합  문자열 Generate(Set, String Expression[, Delimiter]) Set 을 구성하는 각 튜플에 대하여 문자열 생성 결합

Current  집합내의 튜플들에 대한 반복 처리에서 현재 튜플 반환  Set.Current  Set ↔ Tuple ↔ Member Set.Item(n) → 집합내에서 n + 1 번째 튜플 반환 Tupe.Item(n) → 튜플내에서 n + 1 번째 구성원 반환 Ex) Set.Item(0).Item(0) → 집합내의 첫번째 튜플의 첫번째 구성원

상점별 판매금액 기준 Top 5 제품들 상점 반복 처리 ( 현재 처리 중인 상점에 대한 판매금액 Top5 제품들 ) Generate(Store.[Store Name].Members, 현재 처리 중인 상점에 대한 판매금액 Top5 제품들 ) Generate(Store.[Store Name].Members, TopCount( 제품들, 5, [Store Sales]) Generate(Store.[Store Name].Members, TopCount([Product].[Product Name].Members, 5, [Store Sales])

판매이익 Top5 고객 중 판매금액 Top5 고객 ProfitTop5: TopCount([Customers].[Name].Members, 5, Profit) SalesTop5: TopCount([Customers].[Name].Members, 5, [Unit Sales]) Generate(ProfitTop5, 현재 처리 중인 고객이 판매금액 Top5 에 속하는가 ?) Generate(ProfitTop5, Filter(SalesTop5, ProfitTop5.Current IS SalesTop5.Current)

SCD Type II 에서의 사원별 판매금액 실적 판매 실적 조직 전체 70 A 부서 50 김기훈 20 홍길동 30 B 부서 20 정일수 20 판매 실적 조직 전체 70 A 부서 50 김기훈 20 홍길동 30 B 부서 20 정일수 20 홍길동 30 변경전 변경후

SUM({[A 부서 ].[ 홍길동 ], [B 부서 ].[ 홍길동 ]}, [Sales]) SUM(Filter([ 조직 ].[ 사원 ].Members, [ 조직 ].CurrentMember.Name = “ 홍길동 ”), [Sales]) SUM(Filter([ 조직 ].[ 사원 ].Members, [ 조직 ].CurrentMember.Properties(“ 사원 ID”) = “100”), [Sales]) SUM(Generate({[ 조직 ].CurrentMember} AS Set1, Filter([ 조직 ].[ 사원 ].Members, Set1.Current.Item(0).Properties(“ 사원 ID”) = [ 조직 ].CurrentMember.Properties(“ 사원 ID”) ) ), [Sales])

동적 축 처리  동일한 로직을 가지는 분석 대상 전체에서 차지하는 현재 기준의 점유율 소속 그룹에서 차지하는 현재 기준의 점유율 현재 기준은 사원, 고객, 제품,... 등 다양 → 기준별로 계산된 구성원 정의 ?  Rows 축에 상관없이 동일한 로직을 가지는 계산된 구성원 Rows 축에 위치하는 차원 정보를 동적으로 얻을 수 있는가 ? 얻을 수 있다면, 하나의 계산된 구성원으로 대체 가능

동적 축 처리  Axis(n) 쿼리 결과로부터 Axis(n) 의 집합 참조 멤버 쿼리가 발생해야 AXIS 컨텍스트가 결정 예 ) Axis(0).Item(0).Item(0).Dimension. CurrentMember  StrToSet( "Axis(0)" ) 문자열 식으로부터 집합 생성 큐브 내에 AXIS() 존속 가능 예 ) StrToSet(“Axis(0)”).Item(0).Item(0).Dimension. CurrentMember

계산된 구성원으로 이루어진 차원  수식 정의를 위한 특별한 차원 설계 Measure 하나당 여러 개의 수식 정의 요구 → Measures 차원에 Measure 별로 복수개의 계산된 구성원 정의 ?  별도의 차원으로 분리 계산된 구성원 사용자 지정 구성원 수식  Measures 를 비롯한 모든 차원과 교차  부모 - 자식 차원은 최고의 유연성 제공

팩트 테이블 설계  팩트 테이블용 뷰 활용 SELECT Time_ID, Product_ID, Customer_ID, Store_ID, 1 AS Calc_ID, ← Sales_Amt Time_ID, Product_ID, Customer_ID, Store_ID, 1 AS Calc_ID, ← Sales_Amt FROM Sales_Fact

차원 테이블 설계  Dummy 테이블 팩트 테이블과 조인되는 하나의 데이터만 관리 계산된 구성원 정의 및 변경을 큐브 편집기에서 관리  별도의 일반 테이블 팩트 테이블과 조인되는 하나의 데이터 + 계산된 구성원 계산된 구성원 정의 및 변경을 테이블에서 관리

Thank you !