390 likes | 594 Vues
통합 차원 모델인 UDM 과 Real Time 분석을 위한 Proactive Caching 활용. 우철웅 수석 (chwoong@inbrein.com) 위드비 (withBI). Overview. 통합차원모델 소개 AS 2005 아키텍처의 변화 AS 2005 의 통합차원모델 Real Time 분석을 위한 Proactive Caching 활용 캐시란 캐싱 작업 시점 관리 저장소 디자인 대기시간과 성능 조율. Analysis Services. ODBO.
E N D
통합 차원 모델인 UDM과 Real Time 분석을 위한 Proactive Caching 활용 우철웅 수석(chwoong@inbrein.com) 위드비 (withBI)
Overview • 통합차원모델 소개 • AS 2005 아키텍처의 변화 • AS 2005의 통합차원모델 • Real Time 분석을 위한 Proactive Caching 활용 • 캐시란 • 캐싱 작업 시점 관리 • 저장소 디자인 • 대기시간과 성능 조율
Analysis Services ODBO SQL Server 2000 Analysis Services SQL Server DW/ DM Teradata Cube OLAP Clients Oracle DB2
Spreadsheets Analysis Services SQL Server Datamart BI Front Ends ODBO XML/A or ODBO UDM Cube Ad-Hoc Reports OLAP Clients Rich Reports Oracle DB2 LOB Cache Dashboards SQL Server 2005 Analysis Services DW Teradata
Analysis Services XML/A ODBO XML/A 2000 To 2005 아키텍처 변화 PTS Management Studio Development Studio MDX Engine MDX Engine DDL Storage Engine AMO MOLAP PTS XML SDK XML Files MDX Engine
Analysis Services ODBO XML/A 2000 To 2005 아키텍처 변화 PTS Analysis Manager MDX Engine Storage Engine DSO MOLAP PTS XML SDK Repository MDX Engine
Analysis Services ODBO XML/A 2000 To 2005 아키텍처 변화 Management Studio Development Studio Driver MDX Engine DDL Storage Engine AMO MOLAP XML Files Analysis Services 2005 Architecture
Demo • 개발 환경 • 데이터 원본 만들기 • 큐브 만들기 • 큐브 처리 : 빌드, 배포, 처리 • 큐브 조회
데이터 원본 뷰의 목적 • 관련된 모든 테이블을 하나의 스키마로 정의 • 물리 계층과 논리 계층의 분리 • 원본 데이터베이스에 권한이 없더라도 논리적인 뷰 생성 가능 • 논리적인 Primary key와 Relationship 설정 • 원본 데이터베이스로부터 큐브 생성 용이
데이터 원본 뷰 커스터마이징 • 원본 테이블로부터 커스터마이징 방법 • 명명된 컬럼 추가 • 명명된 쿼리 추가 • 명명된 쿼리의 장점 • 성능의 영향을 미치지 않음 • 조인과 필터 등의 유연함
AS 2005 차원 • OLAP과 관계형을 결합한 통합 차원 모델 • OLAP: 계층적 통계 분석 가능한 정보 • Reporting: 풍부하고 상세한 정보 • 설계의 주안점 • 데이터 원본으로부터 전체의 모든 것 수용 • 효과적인 계층적 항해 경로 제공 • 대용량 지원을 위한 스케일 & 그에 따른 효과적인 쿼리 수행 • 복잡한 연결 관계 허용 • 별모양 스키마와 눈송이스키마를 넘어
AS 2005의 차원은 특성(Attribute)을 근간으로 함 • AS 2005의 차원은 완벽한 비즈니스 엔티티를 표현함 • Customer, Product, Channel 등 • 특성(Attribute)은 엔티티 내의 모든 속성을 표현 • Name, Description, Size, Price 등 • 계층(Hierarchies)는 특성간의 항해를 단순화하기 위한 방법 • 계층 및 수준은 드릴다운 경로를 정의하기 위해 • PCategory-PSubCategory-Product • 기본적으로 각각의 특성은 자체의 계층 및 수준을 가짐 • 한 레벨(Single Level)
Demo • 데이터 원본 뷰 만들기 • 차원 만들기 • 특성 만들기 • 계층 및 수준 만들기 • 속성 만들기 • Display Folders 추가
차원의 확장된 범위 및 용량 • AS 2005 차원의 넓어진 범위. • RDBMS의 모든 컬럼은 차원의 특성(attribute)이 될 수 있음 • 모든 특성은 AS2K의 가상 차원과 유사 • 레포트에서 가장 낮은 레벨의 상세 정보를 기대함 • invoice number, line number 등 • 한 부모당 64K 멤버에 대한 제약은 없어짐 • 특성 계층엔 모든 멤버가 들어가야 하므로
차원 아키텍처 • 팩트와 동일한 구조로 저장됨 • “dimensions”의 속성과 함께 “fact table”처럼 취급됨 • 대량 차원에 대한 쿼리를 위한 효과적인 저장 지원 Customers ID Phone State Age
Demo • 다양해진 연결 및 조합 • 다대다(Many to many) • 번역(Translations) • 큐브 뷰(Perspectives)
AS 2005 주요 개체 관계 차원(Dimension) 측정값 그룹 팩트 차원 관계 특성(Attribute Hierarchy) 측정값 그룹(Measure Group) Display Folder 특성 관계 측정값 속성(Attribute) 계층(User Hierarchy) 큐브 뷰(Perspective)
캐시란? • 시스템 성능 개선 또는 유지 보수의 투명성을 필요로 하는 주요자원에 대한 데이터 복사 • 예 : IE 웹 페이지, IIS, 디스크 캐시, CPU 메모리 캐시 • 캐시의 사용의 간결함 • 웹 개발자가 웹 페이지 캐시에 대해 고민하지 않음 • 캐시 기능 지원을 위한 기술적인 고민 • 일치(Coherency)–원 데이터 소스와 일관성 유지 • 낮은 대기(Low Latency)–원 소스의 변경분에 대해 가능한 작은량을 한번에 최소 주기로 반영 . • Real time = 0 latency
AS의 Proactive Caching • 복합적 요건 해결 • OLAP 쿼리 성능 • Real Time 데이터 수용 (필요에 따라) • 운영 자동화 • 관계형 데이터베이스와 자동 동기화 • 명시적인 “cube processing”배제
성능(쿼리 응답 시간) 대기시간 성능과 대기시간과의 Trade-Off 시간
Update SQL Query MDX XML/A or ODBO UDM Update Notification New Version Cache Proactive Caching 과정 Analysis Services
SQL Query MDX XML/A or ODBO UDM New Version Cache Proactive Caching 과정 Analysis Services
Proactive Caching 도전 과제 • 효율 • 빈번한 갱신으로 인한 시스템적 부하를 어떻게 해결할 것인가? • 캐시를 어떻게 빠르게 반영시킬 수 있을까? • 성능: • 잠복과 성능간의 조화를 어떻게 이룰 것인가? • 알림(Notifications) • RDBMS에서 무엇이 변경되었는지 Analysis Services가 어떻게 인지할 수 있을까?
캐싱 작업 시점 관리 • 종종 일정 시간 동안 동시 다발적으로 데이터 원본 갱신이 이루어 진다면? • 각각의 모든 갱신 데이터에 대해 AS는 재캐싱을 어떻게 피할 수 있을까? • 서버 전체의 과도한 자원 사용 • 해결안 : 대기 간격(Silence Interval)옵션 • Notification에 의한 변경 알림을 받으면, AS는 이후 설정한 대기 시간 동안 변경으로 인한 알림이 없는지 대기
Demo • 대기 간격(Silent Interval) 적용
대기시간과 성능 조율 • 실제 Real Time을 원하는 것인가? • 성능 향상을 위해 사용자가 원하는 대기시간을 어느 정도 인가? • 사용자가 원하는 최대 대기시간의 보장은? • 오래된 캐시 삭제 대기 시간(Maximum Latency)으로 실효성 없는 캐시를 제어
Update SQL Query MDX XML/A or ODBO UDM Update Notification New Version Cache Proactive Caching 과정 Analysis Services Latency Silence Interval
SQL Query MDX XML/A or ODBO UDM New Version Cache Proactive Caching 과정 Analysis Services
일률적인 성능 유지 • 성능이 일류적이지 않은 시스템에 대해 불만이 높을 수 있음 • 일률적으로 늦은 시스템이 빠르다가 종종 늦은 시스템 보다 적합할 수 있음 • 일률적인 성능보장을 위해 자동 MOLAP 사용 고려 • 자동 MOLAP = ROLAP 전환 없음 • 오래된 캐시 삭제(Maximum Latency) = -1
통합차원모델로부터 자료 조회 OLAP Caching Application System Operational Data Store Staging Tables Star Schema UDM Structure Reporting Tool
Demo • 저장소 디자인 • 캐시 옵션 설정
연속적인 원시 자료 갱신 • OLTP 시스템 또는 소량의 짧은 갱신 주기를 갖는 DW인 경우는 계속적으로 캐시를 갱신하려 함 • 문제 : 모든 것은 받아들여 캐시할 시간이 없음 • 많은 시작 실패 또는 대기 간격을 넘기지 못함 • 해결안 • Real Time ROLAP 사용 포기 • 대기 대체 간격(Silence Override)과 함께 자동 MOLAP 사용 • 예약된 MOLAP 사용
데이터 변경 감지 • 문제 • 데이터의 변경에 대해 어떻게 인지할 수 있을까? • 해결안 • 추적 이벤트 엔트리 사용 • Service를 호출하는 알림 응용프로그램 설정 • SQL 쿼리를 이용한 데이터 원본 폴링
알림(Notifications) : 추적 이벤트 • SQL Server만 지원 • admin 권한 필요 • Event 전달에 대해 보장하지 못함 • AS 개체를 위해 추적 테이블을 명시할 수 있음 • 알림 설정 방법 • 클라이언트 시작 : XMLA 명령 NotifyTableChange를 사용 • 추적 테이블 지정 : 추적할 기본 테이블을 지정 • 예약된 폴링 : 일련의 쿼리를 실행하여 변경 내용을 식별
Scaling Up • 대용량 데이터에 대해 어떻게 핸들링 할 것인가? • 모든 변경에 대한 전체 캐시의 재생성은 상당한 비용 발생 • 해결안 • 파티션 사용 • 캐시에 대한 증분 업데이트 설정
통합차원모델 및 AS 2005 요약 • 다양한 분석을 지원하기 위한 AS 2005 아키텍처의 재구성 • 집중화된 서버 아키텍처 • 수백개의 계층과 함께 대용량 차원을 지원하기 위한 새로운 차원 아키텍처 • Star Schema에서의 집계 데이터 수준을 넘는 • Old & New • 제거 : 가상 차원, 가상 큐브 • 도입 : UDM, 큐브 뷰(perspectives), KPIs, 번역(translations)
AS Proactive Caching 요약 • 복합적 요건 해결 • OLAP 쿼리 성능 • Real Time 데이터 수용 (필요에 따라) • 운영 자동화 • 관계형 데이터베이스와 자동 동기화 • 명시적인 “cube processing”배제 • 캐싱 정책 수립과 설정으로 짧은 대기시간과 높은 성능을 유지할 수 있음
Q & A 감사합니다.