SSAS - 계산 작업

jevida(강성욱) 2013.10.29 09:02 Views : 6498

계산 작업

 

안녕하세요 강성욱 입니다.(www.sqltag.org, www.sqler.com. http://jevida.blog.me)

이번 시간은 계산 작업에 대해서 알아 보도록 하겠습니다.

 

집합 함수 설정만을 통해서 원하는 측정값을 구하지 못하는 경우도 있습니다. 예를 들어 고객 1인당 평균 구매 금액은 집계 과정을 통해 값을 구할 수 없습니다. 단가나 성장률 등과 같이 비율을 구하는 측정값은 비가산(Non-additive) 측정값으로 집계 후에 계산을 해야 합니다.

SSAS에서는 계산 멤버나 MDX 스크립트 등을 통해서 집계 과정을 통해 어려운 값을 효과적으로 처리 할 수 있습니다.

 

(이번 시간에는 MDX에 대해서는 다루지 않습니다. 예제를 위한 코드만 언급합니다.)

 

큐브에 계산을 추가하여 원하는 결과를 얻고자 하는 경우 집계 전에 계산을 반영할 것인가 집계 후에 반영할 것인가를 고려해야 합니다.

데이터 원본 뷰에 명명된 계산(Named Calculation)을 추가한 후 큐브에 측정값으로 추가 할 수있습니다. 이는 집계 전에 계산을 반영하는 것으로 파생 측정값 (Derived Measure)이라 합니다. 즉 큐브에 적재되기 전에 계산된 값을 이용합니다. 만약 팩트 테이블에서 계산하여 큐브에 적재하는 경우 잘못된 결과를 얻을 수 있습니다.

 

예를 들어 큐브에 판매 수량과 판매 금액 측정값이 있다면 SUM 집계를 한 후에 판매 금액을 판매 수량으로 나누어 판매 단가를 구할 수 있습니다. 이 경우 리프 수준에서는 판매 단가, 상위 수준에서는 평균 단가로서의 의미를 가집니다. 이와 같이 집계를 한 후에 계산을 반영하고자 할 때 계산 멤버(Calculate Member)를 정의하여 반영 할 수 있습니다. 계산 멤버의 값은 파생 측정값과 달리 큐브에 저장되지 않고 조회시점에 실시간으로 계산 됩니다.

 

솔루션 탐색기에서 [Adventure Works.cube]를 더블 클릭 또는 [디저이너 보기]를 선택 합니다.

 

 

[계산]탭을 클릭합니다. [스크립트 구성 도우미]에서 마우스 오른쪽을 클릭하여 [새 계산 멤버]를 선택 합니다.

 

 

이름에 [Internet Sales Per Customer]를 입력합니다.

부모계층은 [Measures]를 선택 합니다.

식에는 다음과 같은 MDX 쿼리를 입력 합니다. (이때 오타 주의). 측정값 이름은 [큐브구조]탭에서 [측정값]에서 확인 할 수 있습니다.

(필자는 Distinct -> Dsitinct 로 Measure를 만들었네요 ㅠㅠ.)

[Measures].[Internet Sales Amount] / [Measures].[Customer Dsitinct Count]

 

 

프로젝트를 처리 합니다. 브라우저 탭을 클릭하여 다시 연결을 선택 합니다.

 

분석하고자 하는 차원별로 인터넷 판매 금액, 고객 수, 고객 1인당 평균 인터넷 판매액을 확인 할 수 있습니다.

 

1인당 평균 판매액을 확인하였는데 상태가 한 눈에 들어오지 않습니다. 이럴 때 값의 크기에 따라 전경색 및 배경색, 글꼴, 크기 등을 지정하면 쉽게 데이터를 파악 할 수 있습니다.

 

[계산]탭으로 이동 합니다. [Internet Sales Per Customer]를 더블 클릭 합니다.

[색 식]을 확장합니다.

 

 

 

전경색에 다음과 같은 스크립트를 입력 합니다.

CASE

WHEN [MEASURES].[INTERNET SALES PER CUSTOMER] > 2000

OR [MEASURES].[INTERNET SALES PER CUSTOMER] <= 1000

THEN 16777215/*WHITE*/

ELSE 0 /*BLACK*/

END

 

배경색에 다음과 같은 스크립트를 입력 합니다.

CASE

WHEN [MEASURES].[INTERNET SALES PER CUSTOMER] > 2000

THEN 32768/*GREEN*/

WHEN [MEASURES].[INTERNET SALES PER CUSTOMER] > 2000

THEN 65535/*YELLOW*/

ELSE 255 /*RED*/

END

 

 

프로젝트를 처리 하고 브라우저 탭을 클릭합니다. 다시 연결을 선택합니다.

그림에서 보듯이 [Internet Sales Per Customer]의 금액 크기에 따라서 배경색과 전경색이 다르게 처리 됩니다. 이와 같이 조건부 서식을 적용함으로써 사용자가 데이터를 보다 쉽게 파악할 수 있습니다. 


강성욱 / jevida@naver.com
Microsoft SQL Server MVP
Blog : http://sqlmvp.kr
Facebook : http://facebook.com/sqlmvp



No. Subject Author Date Views
Notice SQL강좌: 챗GPT와 함께 배우는 SQL Server 무료 강좌 목차와 소개 (2023년 9월 업데이트) 코난(김대우) 2023.08.18 23660
Notice Python 무료 강좌 - 기초, 중급, 머신러닝(2023년 6월 업데이트) 코난(김대우) 2021.01.01 12430
1594 Tempdb 경합(동시성 강화) jevida(강성욱) 2013.11.18 7593
1593 SSAS Backup 자동화 하기 jevida(강성욱) 2013.11.18 8201
1592 SSAS - MDX 스크립트 jevida(강성욱) 2013.11.18 7295
1591 SSAS - MDX 쿼리 jevida(강성욱) 2013.11.18 8197
1590 SSAS - MDX 활용 jevida(강성욱) 2013.11.12 7216
1589 SSAS - 집계 최적화 jevida(강성욱) 2013.11.12 7434
1588 SSAS - 사용자 계층 설계 jevida(강성욱) 2013.11.12 6627
1587 SSAS - 집계 설계 이해 - (3)집계 마법사에 특성 추가 jevida(강성욱) 2013.11.06 6989
1586 SSAS - 집계 설계 이해 - (2)파티션 수 변경 jevida(강성욱) 2013.11.06 6769
1585 SSAS - 집계 설계 이해 - (1)집계 디자인 마법사 jevida(강성욱) 2013.11.06 7191
1584 SSAS - 계정차원 - (2)단항 연산자 jevida(강성욱) 2013.11.01 6243
1583 SSAS - 계정차원 - (1) 계정 인텔리전스 jevida(강성욱) 2013.11.01 6241
1582 SSAS - 차원관계 - (1)참조 관계 유형 jevida(강성욱) 2013.10.29 6554
» SSAS - 계산 작업 jevida(강성욱) 2013.10.29 6498
1580 SSAS - 고유 카운트 측정값 jevida(강성욱) 2013.10.29 5863
1579 SSAS - 반가산 측정값 집계 jevida(강성욱) 2013.10.25 12386
1578 SSAS - 측정값 그룹의 세분성 jevida(강성욱) 2013.10.25 11034
1577 SSAS - 차원용도 jevida(강성욱) 2013.10.25 5939
1576 SSAS - 측정값 그룹 jevida(강성욱) 2013.10.21 5900
1575 SSAS 넌-리프 수준의 멤버 jevida(강성욱) 2013.10.21 6209





XE Login