SQL Server Analysis Services · PDF file 2017-02-16 · SQL Server Analysis Services...

Click here to load reader

  • date post

    11-Mar-2020
  • Category

    Documents

  • view

    11
  • download

    0

Embed Size (px)

Transcript of SQL Server Analysis Services · PDF file 2017-02-16 · SQL Server Analysis Services...

  • SQL Server Analysis Services Tip

    ㈜ 잘레시아

    Copyright ⓒ 2010 Zalesia Co., Ltd.

  • Agenda

    2 Copyright ⓒ 2010 Zalesia Co., Ltd.

    I

    II III

    IV

    V

    VI

    VII

    VIII

    SSAS 파티션 자동화 처리

    SSAS Non-Aggregatable 측정값 처리

  • 3

    SSAS 파티션 자동화 처리

    Copyright ⓒ 2010 Zalesia Co., Ltd.

  • STEP1: Sales 큐브 를 위해 데이터를 미리 준비한다. 3개의 차원(DimDate, DimProduct, and DimCustomer) 과 1개의 팩트 를 사용 할 것이다.

    STEP2: BIDS 를 이용하여 새로운 Analysis Services Project 를 생성한다.

    STEP3: 데이터 원본을 생성하고 3개의 차원 테이블을 이용하여 데이터 원본 뷰 를 생성한다.

    SSAS 파티션 자동화 처리

  • STEP4: 필요한 차원을 추가하여 Sales 큐브 를 생성한다. 차원에 필요한 모든 속성을 설정하고 계층구조가 요 구되어 진다면 그것도 설정한다.

    SSAS 파티션 자동화 처리

  • STEP5: 파티션 탭 을 더블 클릭한다. 밑에 보여지는 그림처럼 default 파티션을 볼 수 있을 것이다.

    default 파티션을 삭제하고 새 파티션.. 을 클릭하여 파티션을 생성한다.

    SSAS 파티션 자동화 처리

  • 파티션 마법사 에서, 원본 정보 지정 화면의 사용 가능한 테이블 을 FactSales 테이블을 선택하고 다음 버튼을 클릭한다. 행을 제한 하는 쿼리 지정을 선택하고 WHERE 조건을 조정하여 파티션의 행 수를 제 한 한다.

    SSAS 파티션 자동화 처리

  • 다음 버튼을 두 번 누르고 파티션 이름 Sales_20100101-20100131 을 넣고 마법사를 종료 한다.

    SSAS 파티션 자동화 처리

  • 큐브 처리를 한다. 성공적으로 처리 되어진 큐브를 SSAS의 새로운 데이터베이스로 볼 수 있다. 그리고 이 파티션의 데이 터를 볼 수 있다.

    SSAS 파티션 자동화 처리

  • STEP6: 수작업으로 하나의 파티션을 만들었다. 이제 데이터 처리를 위한 과정 과 동적으로 파티션 생성 을 적용하기 위한 단계이다. 첫 번째로, 파티션 Sales_20100101-20100131 선택 후 오른쪽 버튼을 클릭하여 파티션 스크립트 생성 -> CREATE -> 파일 을 선택 한다. CreatePartitionSales_20100101-20100131.xmla 로 명명 후 저장한다. 이것은 파티션 생성을 위한 XMLA 스크립트가 될 것이다. 이와 유사한 형태로 파티션 Sales_20100101-20100131 선택 후 오른쪽 버튼을 클릭하여 처리 를 선택한다. 스크립트 -> 파일 동작 스크립트를 선택하여 CreatePartitionSales_20100101-20100131.xmla 로 명명 후 저 장한다.

    STEP7: SSAS 개발을 끝냈다. 이제 SSIS 패키지 에서 동적인 큐브 파티션 생성과 파티션 처리를 구현 해야 한다. 같은 솔루션에 Integration Services Project 프로젝트를 추가 한다.

    STEP8: 연결관리자 에 두 개의 연결을 추가한다 - 데이터베이스를 위한 OLE DB 연결과 SSAS 데이터베이스를 위한 Analysis Services 연결.

    SSAS 파티션 자동화 처리

  • STEP9: 패키지에 다음의 변수를 추가 한다.

    Directory - 패키지 저장을 위한 경로(PATH) FromDateKey - 현재 파티션의 시작일을 저장 (예 - 20101201) ToDateKey - 현재 파티션의 종료일을 저장(예 - 20101231) PartitionName - 현재 파티션의 이름 (예 - SalesPartition_20101201-20101231) IsPartitionExists - 파티션 존재 유무 확인 CreatePartitionXMLA - 현재 파티션의 생성을 위한 XMLA 스크립트 저장 ProcessPartitionXMLA - 현재 파티션의 처리를 위한 XMLA 스크립트 저장

    SSAS 파티션 자동화 처리

  • STEP10: 밑에 보여지는 그림과 같이 SSIS 패키지를 개발해야 한다.

    SSAS 파티션 자동화 처리

  • 첫번째 SQL 실행 태스크 는 현재 파티션을 위한 FromDateKey, ToDateKey, 그리고 PartitionName 값 을 초기화 하는데 사용되어 진다. 다음은 이 태스크에서 사용하는 쿼리 이다.

    SSAS 파티션 자동화 처리

  • 두 번째 패키지는 스크립트 태스크 이다. CreatePartitionSales_20100101-20100131.xmla 와 ProcessPartitionSales_20100101-20100131.xmla 파일의 내용을 읽어 CreatePartitionXMLA 과 ProcessPartitionXMLA 패키지 변수에 저장해야 한다. User::Directory 변수는 ReadOnlyVariable 로 설정 User::CreatePartitionXMLA,User::ProcessPartitionXMLA 변수는 ReadWriteVariables 설정

    스크립트 태스크가 사용되어 지는 두 가지 이유 1. 현재 파티션의 존재 유무를 확인하기 위해 2. 현재 파티션을 위한 XMLA 의 내용을 갱신 하기 위해

    SSAS 파티션 자동화 처리

  • 동적인 파티션 생성을 위한 가장 핵심적인 XMLA 스크립트 현재 파티션을 위해 파티션ID, 파티션 이름 그리고 행 제한 지정 쿼리 를 바꿔 주어야 한다.

    스크립트 태스크에서, User::FromDateKey,User::PartitionName,User::ToDateKey 변수는 ReadOnlyVariables 로 설정 User::CreatePartitionXMLA,User::ProcessPartitionXMLA,User::IsPartitionExists 변수는 ReadWriteVariables 로 설정.

    SSAS 파티션 자동화 처리

  • 시퀀스 컨테이너 안에 두 번째 태스크는 Analysis Services Execute DDL 실행 태스크 이다. 이 태스크 는 새로운 파티션 생성을 위해 사용되어 진다. Analysis Services Execute DDL 실행 태스크 편집기, localhost.Dynamic_Cube_Partition 으로 연결을 설정 하고 SourceType 은 변수, Source 는 User::CreatePartitionXMLA 로 설정 한다 .

    SSAS 파티션 자동화 처리

  • 선행 제약 조건 설정을 잊지 말아야 한다. 이 태스크는 파티션이 존재 하지 않을 때 실행 된다. Open P선행 제약 조건 편집기, 평가 작업은 식 및 제약 조건, 값 은 성공 그리고 식은 @IsPartitionExists == 0 으로 설정 한다.

    SSAS 파티션 자동화 처리

  • 시퀀스 컨테이너 안에 세 번째 태스크 - PartitionLog 테이블 에 새롭게 생성되어진 파티션 정보를 저 장 하기 위해 사용되어 진다. SQL 실행 태스크, ResultSet 은 없음, ConnectionType은 OLE DB, Connection 은 TesLocalHost.CubePartitionData, SQLSourceType은 직접 입력 그리고 SQLStatement 는 다음 과 같이 설정한다:

    매개 변수 매핑 을 클릭한 후 다음과 같이 파라미터를 매핑한다:

    SSAS 파티션 자동화 처리

  • STEP11: 이제 현재 파티션의 처리가 필요하다. 이것은 이전의 시퀀스 컨테이너(파티션이 존재하지 않는다면, 파티션 생성을 하는)에 의존 적이다. 패키지를 실행 할 때마다 현재 파티션 처리가 필요하다. 거의 대 부분의 경우에, 매월 1일에 새로운 파티션은 생성되어 질 것이다. 하지만 증분/변경 되는 데이터를 포 함하고 있으므로 파티션 처리는 패키지 실행 시 마다 되어야 한다. 이 시퀀스 컨테이너는 3개의 태스크를 포함하고 있다.

    SSAS 파티션 자동화 처리

  • 첫 번째 태스크는 차원의 데이터를 처리하기 위한 Analysis Services 처리 태스크 이다. 연결 관리자 는 localhost.Dynamic_Cube_Partition 그리고 개체 목록에 모든 차원을 설정한다. 처리 옵션 은 업데이트 처리 로 설정 한다.

    SSAS 파티션 자동화 처리

  • 두 번째 태스크 도 현재 파티션 처리를 위한 Analysis Services 처리 태스크 이다. 연결 관리자 는 localhost.Dynamic_Cube_Partition 그리고 개체 목록에 Sales_20100101-20100131 파티션을 설정 한 다. 처리 옵션 은 전체 처리 로 설정 한다.

    식 메뉴를 클릭하고 ProcessingCommands를 @[User::ProcessPartitionXMLA] 로 설정 .

    SSAS 파티션 자동화 처리

  • 마지막 으로 SQL 실행 태스크를 이용하여 최근 처리 일자와 처리된 빈도(파티션이 처리되어진 빈도수) 를 로그 테이블에 저장한다. 결과 집함 은 없음, ConnectionType 은 OLE DB, Connection은 TesLocalHost.CubePartitionData, SQLSourceType 직접 입력 그리고 SQLStatement as 는 다음과 같다:

    매개 변수 매핑을 클릭하고, 파라미터를 User::PartitionName 로 설정 한다.

    SSAS 파티션 자동화 처리

  • 23

    SSAS Non-Aggregatable 측정값 처리

    Copyright ⓒ 2010 Zalesia Co., Ltd.

  • SSAS Non-Aggregatable 측정값 처리

    24 Copyright ⓒ 2010 Zalesia Co., Ltd.

    http://cfile27.uf.tistory.com/original/1416764B4EE0601E183DD6

  • SSAS Non-Aggregatable 측정값 처리

    25 Copyright ⓒ 2010 Zalesia Co., Ltd.

  • SSAS Non-Aggregatable 측정값 처리

    26 Copyright ⓒ 2010 Zalesia Co., Ltd.

  • SSAS Non-Aggregatable 측정값 처리

    27 Copyright ⓒ 2010 Zalesia Co., Ltd.

  • SSAS Non-Aggregatable 측정값 처리

    28