SSAS 차원 - (2) 시간 차원

jevida(강성욱) 2013.10.14 10:23 Views : 6072

차원 – (2)시간차원

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

 

이번 시간에는 차원에 대해서 (그 중에 시간 차원)알아 보도록 하겠습니다. 시간 차원은 시간이라는 관점에서 선후 관계를 가지며 일정한 간격으로 생성되고 반복 됩니다. 한 시간은 60분 간격으로, 분기는 3개월 간격으로, 1년은 4분기 간격으로 생성되고 반복 됩니다.

시간 차원은 동시에 불규칙성을 가집니다. (월말이 28일, 30, 31, 윤년) 따라서 전월 동기간 대비 비교 분석을 할 때 대응되지 않는 날짜들이 나타납니다. 또한 주가 월별로 고르게 분포하지 않습니다, 따라서 주별 데이터를 월별로 집계하고자 한다면 별도의 집계 규칙이 필요 합니다.

 

불규칙성 중에서 가장 빈번하게 나타나는 것 중의 하나는 회계 년도와 관련된 것입니다. 즉 달력은 1월 1일이 새해의 출발점이지만 기업체의 경우 7월 1일이 회계연도인 경우도 있습니다.

 

또한 시계열 분석과 관련하여 기간별 속성을 추가로 요구하는 경우가 많습니다.(영업일, 휴일, 기념일 등등) 따라서 OLTP와 달리 시간 차원 테이블을 별도로 만들어 관리할 필요가 있습니다.

 

실습 방법은 차원 마법사를 이용하여 시간 데이터를 담고 있는 차원 테이블로부터 시간 관련 특성들과 매핑 시켜보도록 하겠습니다.

 

지난 시간의 표준차원의 프로젝트를 불러옵니다.

표준차원의 프로젝트가 없다면 [BIDS]를 실행하여 표준차원까지 생성 합니다.

표준차원 관련 링크

http://blog.naver.com/jevida/140162346308

 

 

[솔루션 탐색기]에서 [데이터 원본 뷰]의 Adventure Works DW.dsv를 더블 클릭 또는 마우스 오른쪽을 이용하여 [디자이너 보기]를 선택 합니다.

 

[다이어그램] 창의 빈 곳에서 마우스 오른쪽을 클릭하여 [테이블 추가/제거]를 선택 합니다.

 

[테이블 추가/제거]창에서 DimTime을 포함된 개체에 추가 합니다.

 

[솔루션 탐색기]에서 [차원]에서 [새 차원]을 선택 합니다.

 

차원 마법사에서 [기존 테이블 사용]을 선택 합니다.

 

[원본 정보 지정]에서 주 테이블을 [DimTime]을 선택 합니다.

 

 

[차원 특성 선택]에서 English Month Name, Calendar Quarter, Calendar Year을 선택 합니다.

 

[Time] 이름을 지정하고 마법사를 완료 합니다. 차원 디자이너 특성 창에 있는 Calnedar Year, Calendar Quarter, English Month Name의 Type 속성이 각각 Years, Quarters, Months인 것을 확인 합니다.

 

계층의 이름을 Calendar로 변경하고 각 수준을 Year, Quarter, Month로 이름을 변경 합니다.

 

차원 디자이너에서 [데이터 원본 뷰]에서 DimTime테이블을 확장하여 FiscalYear, FiscalQurater를 오른쪽으로 클릭하여 [열의 새 특성]을 클릭 또는 마우스 드래그를 이용하여 특성으로 끌어다 놓습니다.

 

프로젝트를 배포 합니다. 차원 디자이너의 브라우저 탭을 클릭 합니다. 차원의 각 계층 구조를 살펴 볼 수 있습니다. 계층을 English Month Name을 선택 합니다.

아래 그림에서 보듯이 월 멤버들의 순서가 알파벳 순서로 정렬되어 나타납니다. 이는 월의 올바른 순서가 아니므로 추가적인 작업이 필요 합니다.

 

[차원 구조]탭을 클릭 합니다. English Month Name을 선택하고 속성에서 Order by 속성이 Key, Keycolumn 속성이 EnglishMonthName으로 각각 설정되어 있는 것을 확인할 수 있습니다.

KeyColumn 속성을 클릭합니다.

 

키 열에서 MonthNumberOfYear을 선택합니다.

 

속성에서 NameColumn을 선택 합니다.

 

이름 열 창에서 EnglishMonthName을 선택 합니다.

 

프로젝트를 배포하고 브라우저 탭에서 다시 연결을 클릭 합니다. 월이 정상적으로 나타나는 것을 확인 할 수 있습니다. 시간 멤버는 일정한 간격으로 생성되고 반복 됩니다. 따라서 현재 Month 특성 계층의 멤버들을 보면 1월부터 12월까지 12개의 멤버가 존재하고 매년 반복 됩니다.

따라서 년도별 월 멤버들이 구분되도록 설정할 필요가 있습니다.

 

차원 구조 탭에서 EnglishMonthName 특성을 클릭하여 속성창에서 KeyColumn을 선택 합니다.

현재 멤버 키에서 CalendarYear를 추가 합니다.

 

CalendarYear를 위로 이동 합니다.

 

프로젝트를 배포하고 브라우저탭에서 다시 연결을 클릭 합니다. 년도별로 반복된는 월 멤버가 보이는 것을 확인 할 수 있습니다.

 



강성욱 / 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 33590
Notice Python 무료 강좌 - 기초, 중급, 머신러닝(2023년 6월 업데이트) 코난(김대우) 2021.01.01 16947
1574 SSAS 부모-자식 차원 - 부모자식 차원 생성 jevida(강성욱) 2013.10.14 6046
1573 SSAS 차원 - (3) 롤-플레잉 차원 jevida(강성욱) 2013.10.14 6117
» SSAS 차원 - (2) 시간 차원 jevida(강성욱) 2013.10.14 6072
1571 SSAS 차원 - (1) 표준 차원 jevida(강성욱) 2013.10.14 5776
1570 SSAS - 큐브 조회 jevida(강성욱) 2013.10.07 8020
1569 SSAS - 큐브 만들기 jevida(강성욱) 2013.10.07 9257
1568 SSAS - SSAS 환경 설정 jevida(강성욱) 2013.10.07 9348
1567 SSIS - BIDS 임시 파일 위치 설정 jevida(강성욱) 2013.10.02 8833
1566 SSIS - SSIS패키지 실행 하기. – Job Agent 등록 및 수동 실행 jevida(강성욱) 2013.10.02 15752
1565 SSIS - 패키지 저장 방식의 종류 및 장점. jevida(강성욱) 2013.10.02 8388
1564 SSIS - 성능 카운터 - SSIS를 튜닝 하자 jevida(강성욱) 2013.10.02 9332
1563 SSIS - 배포 및 배포 마법사 jevida(강성욱) 2013.10.02 11169
1562 SSIS - 로깅 - SSIS의 실행 정보를 로깅하자 jevida(강성욱) 2013.10.02 7679
1561 SSIS - 보안 - 보안레벨에 따른 암호화 수준. jevida(강성욱) 2013.10.02 9252
1560 SSIS - 트랜잭션 - 패키지에서 트랜잭션을 제어 하자 jevida(강성욱) 2013.10.02 7586
1559 SSIS -스크립트 작업 및 ActiveX 스크립트 작업 jevida(강성욱) 2013.10.02 9066
1558 SSIS - SQL 실행 작업 jevida(강성욱) 2013.10.02 12156
1557 SSIS - WMI 이벤트 감시자 작업 jevida(강성욱) 2013.09.25 8432
1556 SSIS - WMI 데이터 판독기 작업 jevida(강성욱) 2013.09.25 7662
1555 SSIS - FTP 작업 jevida(강성욱) 2013.09.25 9653





XE Login