BI 개발 그리고 실용적인 활용방안 A To Z

BI 개발 그리고 실용적인 활용방안
A To Z
㈜위세아이텍
김상수 책임
이 주제를 이해하는데 필요한 지식
•
•
•
•
BI 기본 지식
SSIS(ETL) 경험
SSAS(OLAP) 경험
엑셀 사용
100
개념 및
소개 수준
200
300
중간 수준
400
고급 수준
200에
Level 340
100에
더하여
선수 지식
더하여
능숙한 사용
불필요
기술적 세부
경험,
사항 설명
아키텍처
지식 필요
전문가
수준
강사소개
• [경력]
–
–
–
–
–
(현) 위세아이텍 연구소 근무
H정부기관 성과분석 BI
S생명 보험리스크 관리 BI
D사 구매관리 BI
S통신사 채널고객통합 BI
• [활동 커뮤니티]
1990년부터 CRM, BI, DI 솔루션 및 구축 회사
국내에서 가장 오래되고, 최대 MSSQL 커뮤니티
현직 DBA 30명이 함께하는 오프라인 스터디 모임
목차
•
•
•
•
Intro
DW – SSIS
– SSIS 프레임 워크
– ODS 변경감지
OLAP – SSAS
– 분석 기본
– 분석 고급
– STD 이겨내기
– 리얼 VS 거의 리얼
– 처리큐브 ? 운영큐브 ?
– 캐시 불태우기
– ASSP & 연결된 서버
SQL 2011(Denali) NF
여러분들은 이미 300?
W : DB기본, 데이터분석, ETL(SSIS), Ad-Hoc쿼리 작성, 데이터정합성체크, 배치등록(SQL Agent), 다차원모델링, 큐브작성, 큐
브정합성체크, 레포트개발(SSRS, EXCEL, PowerPivot), MOSS운영, 분석DB운영, 데이터표준화, DB서버관리, OLTP 바쁘면 모델
링투입, 데이터아키텍쳐 검증, 배치모니터링, 등등등…
C : RDB, BI, OLAP, BSC, UDM, DW, DM, ETL, DQ, META, MDM………
T : SSMS, BIDS(SSIS, SSAS, SSRS), RB, SQL Agent, MOSS, EXCEL, PowerPivot ….
이대로는 당할 수는 없다.
최고의 전략, 최고의 준비, 최고의 성공적인 BI 프로젝트를
만드는 게 이번 세션의 목표
데이터를 맞이할 준비
ENT
1024K
64BIT
8G
Temp
Simple
Partition
Compress
Optimizer
Parallel
eNTer테인먼트에 입사
오늘부터
의 BI팀의 일원
eNTer 두 가지 주제영역
OLTP
DM
다차원모델링
인터넷
회원
연예인
회원수, 연령대별,
성별, 지역, 연예인
선호
앨범판매
구매수, 구매금액,
성별, 연령대별
STAR + SNOWFLAKE
Star & Snowflake
• 데이터 량에 따른 집계상세수
준 정의 필요
• 변화감지에 따라 대체키 필요
구간차원
• 특성별 집계
SSIS Framework
SSIS 프레임워크
SSIS 프레임워크?
• 생산성, 유지보수 등을 고려할 때 반드시 필요
• 부모, 자식 패키지를 만드는 것에서부터 시작
• 프레임워크가 가장 절실히 필요할 때는?(랭킹 1~4위)
1위
2위
3위
4위
• 개발환경, 운영환경에 따라 연결문자열, 변수변경
• 특정패키지만 실행해보고 싶을 때
• 전산부서가 통보 없이 테이블 or 컬럼 Drop
• 불한당 개발자를 만날 때
패키지 환경설정
1. XML 환경설정(dtsx.config)
– 개발환경과 운영환경 따로
준비
– 중소형에 적합
2. DB 설정
– XML 환경설정
(Connection String)
– SSIS Configuration Table
– 대형에 적합
자식 패키지 호출
•
•
ODS, DW, DM, SSAS처리 등
을 순차처리 할 수 있음
사용유무, 처리순서 지정
SELECT c.ExecutionOrder,
b.PackagePath
FROM Applications a
,Packages b
,AppPackages c
WHERE a.ApplicationID =
c.ApplicationID
AND b.PackageID = c.PackageID
AND c.UseYN = 'Y'
ORDER BY c.ExecutionOrder
ODS 변경감지
•
•
Meta정보를 저장한 후, 이관 전에 변경감지
변경이 감지되면 전산부서에 통보 및 오류처리
패키지 로깅
•
•
OnError, OnPostExecute, OnPreExecute 이벤트 처리기 매핑
SSRS를 이용하여 레포팅 처리
패키지 템플릿 등록
•
•
•
%ProgramFiles% (x86)\Microsoft Visual Studio
9.0\Common7\IDE\PrivateAssemblies\ProjectItems\DataTransfo
rmationProject\DataTransformationItems 에 템플릿 패키지 복사
Ctrl + Shift + A or 프로젝트 > 새 항목추가
패키지 ID 속성에서 아이디 새로 생성
DEMO [ SSIS ]
SSAS Basic
SSAS 기본
UDM – 자유도 GOOD
• SCD TYPE 0과 같은 성별의 경우 명명된 쿼
리편집을 이용해서 테이블 생성
•
•
명명된 쿼리 편집을 통해서도 테이블추가 가능
재귀참조, 다대다, 차원참조 표현
UDM – 자유도 GOOD
•
•
차원용도를 통해 퇴화차원, 차원참조를 통해 구현가능
다대다 관계에서는 성능상의 이슈가 발생할 수 있음
DEMO [ SSAS ]
SSAS Advanced
SSAS 심화
큐브 연결
• 측정값 그룹의 메져별 선택 가능
•
•
•
인터넷회원의 연예인선호도와 앨범판매를 함께 분석가능
여러 개의 주제영역을 서로 상호보완하며 분석할 수 있음
차원과 측정값이 많을 경우에는 큐브뷰를 이용
드릴쓰루
•
•
VIP등급의 회원들에게 브로마이드제공 미션
해당 튜플의 회원을 RDB에서 쿼리하여, OLTP와 연동
가능 함
Std 이겨내기 - 파티션지원
4개부터는 다음과 같이 에러남
STD에서도 파티셔닝을 지원함
•
•
Std도 3개까지 생성할 수 있음(무시하고 진행하면 됨)
2011년, 2010년, 과거년 또는 월로 집계전략 세움
Std 이겨내기 - 큐브뷰
빈 큐브생성
•
•
•
데이터원본 지정안함
큐브및 측정값 그룹연결
큐브뷰를 대처할 수 있음
해당 큐브의 차원 및 측정값, 차원 권한 조정가능
처리는 해야 하지만 사실상 아무것도 안함
리얼 vs 거의 리얼
300건
MOLAP
130건
430건
Merge
+
Agg
ROLAP
•
•
•
임원을 위한 실시간 판매현황을 구축해야 함
2010년의 과거 데이터는 MOLAP
2011년으로 현재 변경되고 있는 데이터는 ROLAP
처리큐브? 운영큐브?
Process
처리 큐브
운영 큐브
•
•
Query
운영큐브에 처리작업시 조회 지연 문제 발생을 극복
백업, 복구는 파일복사 수준
<Restore
xmlns="http://schemas.microsoft.com/analysisservices/2003/engine">
<File>c:\eNTer_SSAS_처리큐브.abf</File>
<DatabaseName>eNTer_SSAS_운영큐브</DatabaseName>
<AllowOverwrite>true</AllowOverwrite>
<Security>IgnoreSecurity</Security>
</Restore>
캐시 불태우기
프로파일러 MDX쿼리 수집
큐브처리
오래 실행되는 MDX쿼리 사전 실행
MDX쿼리 사전실행 전후의 디스크, 메모리
I/O비교
• 캐시 클리어
<Batch xmlns="http://schemas.microsoft.com/analysisservices/2003/engine">
<ClearCache>
<Object>
<DatabaseID>eNTer_SSAS</DatabaseID>
</Object>
</ClearCache>
</Batch>
ASSP & 연결된 서버
•
•
Analysis Services Stored Procedure
http://asstoredprocedures.codeplex.com
연결된 서버
DEMO [ SSAS ADV ]
SQL 2011 ( Denali )
SQL 2011 ( DENALI )
ColumnStore Index
SELECT region, sum (sales) …
C2
C1
C3
C4
C5
C6
•
•
•
•
VertiPaq 방식의 컬럼압축
테이블에 하나만 존재할 수 있음
DW용에 Star Join시 유리
넌클러스터인덱스
CREATE NONCLUSTERED COLUMNSTORE
INDEX ncci ON myTable(OrderDate,
ProductID, SaleAmount)
ColumnStore Index
•
•
•
Disable Index
INSERT, UPDATE, DELETE
를 지원하지 않음
대용량 팩트 테이블 적용
자주 변경되는 테이블에 적용
하면 안됨
Data Update
1. ALTER INDEX my_index ON MyTable DISABLE
2. Data Update, Insert, Delete
3. ALTER INDEX my_index ON MyTable REBUILD
Rebuild Index
SSIS 개선
Visual Studio 2010
.NET 4 지원
Undo / Redo
프로젝트, 파라메터
관리기능
• TASK 정렬 및 그룹기능
• SPPS 와 통합된 분석기능
•
•
•
•
DEMO [ SQL 2011 ]
Q&A
WWW.SQLER.COM, SQLTAG
WWW.SQLER.COM
CAFÉ.NAVER.COM/SQLMVP
여러분들은 이제 300 입니다.
감사합니다