Analysis Services 개인 설정 확장 프로그램

SQL ServerAnalysis Services 개인 설정 확장 프로그램은 플러그 인 아키텍처 구현 개념의 토대입니다. 플러그 인 아키텍처에서는 동적으로 새 큐브 개체 및 기능을 개발하여 다른 개발자와 손쉽게 공유할 수 있습니다. 즉, Analysis Services 개인 설정 확장 프로그램에서 제공하는 기능을 통해 다음과 같은 작업이 가능합니다.

  • 동적 디자인 및 배포   Analysis Services 개인 설정 확장 프로그램을 디자인하여 배포한 즉시 사용자는 다음 번 사용자 세션 시작부터 해당 개체와 기능에 액세스할 수 있습니다.

  • 인터페이스 독립성   Analysis Services 개인 설정 확장 프로그램을 만드는 데 사용되는 인터페이스에 관계없이 사용자는 원하는 인터페이스를 사용하여 개체와 기능에 액세스할 수 있습니다.

  • 세션 컨텍스트   Analysis Services 개인 설정 확장 프로그램은 기존 인프라에서 영구적인 개체가 아니며 큐브를 다시 처리하도록 요구하지도 않습니다. 이러한 프로그램은 사용자가 데이터베이스에 연결하는 시점에 사용자에 대해 노출 및 생성되며 해당 사용자 세션 동안 사용 가능한 상태로 유지됩니다.

  • 신속한 배포   해당 확장 기능을 어디에서, 어떻게 찾을지에 대한 세부적인 사양을 연구할 필요 없이 다른 소프트웨어 개발자와 Analysis Services 개인 설정 확장 프로그램을 공유할 수 있습니다.

Analysis Services 개인 설정 확장 프로그램의 용도는 많습니다. 예를 들어 회사의 영업에 여러 통화가 관련된 경우가 있습니다. 큐브에 액세스하는 사람에 해당하는 지역 통화로 통합된 영업을 반환하는 계산 멤버를 만들 수 있습니다. 이 멤버를 개인 설정 확장 프로그램으로 만듭니다. 그런 다음 이 계산 멤버를 사용자 그룹과 공유합니다. 공유하면 이러한 사용자들은 서버에 연결한 즉시 계산 멤버에 액세스할 수 있게 됩니다. 사용자가 사용하는 인터페이스가 계산 멤버를 만들 때 사용된 인터페이스와 다른 경우에도 액세스할 수 있습니다.

Analysis Services 개인 설정 확장 프로그램은 기존 관리 어셈블리 아키텍처를 간단하고 유용하게 수정하는 한 방법이며, Analysis ServicesMicrosoft.AnalysisServices.AdomdServer 개체 모델, MDX(Multidimensional Expression) 구문 및 스키마 행 집합을 통해 노출됩니다.

논리적 아키텍처

Analysis Services 개인 설정 확장 프로그램의 아키텍처는 관리 어셈블리 아키텍처와 다음 네 가지의 기본 요소를 기반으로 합니다.

  • [PlugInAttribute] 사용자 지정 특성
    서비스를 시작할 때 Analysis Services는 필요한 어셈블리를 로드하고 PlugInAttribute 사용자 지정 특성을 가진 클래스를 확인합니다.

    [!참고]

    .NET Framework는 사용자 지정 특성을 정의하여 코드를 설명하고 런타임 동작에 영향을 미칩니다. 자세한 내용은 MSDN의 .NET Framework 개발자 가이드에 있는 "특성 개요(Attributes Overview)" 항목을 참조하십시오.

    PlugInAttribute 사용자 지정 특성이 있는 모든 클래스에 대해 Analysis Services는 클래스의 기본 생성자를 호출합니다. 시작 시에 모든 생성자를 호출하면 새 개체를 만들 수 있는, 모든 사용자 동작으로부터 독립적인 공통된 장소가 제공됩니다.

    클래스 생성자는 개인 설정 확장 프로그램의 제작 및 관리 정보를 위한 작은 캐시를 만드는 것 외에 일반적으로 SessionOpenedSessionClosing 이벤트를 구독합니다. 이러한 이벤트를 구독하지 못할 경우 CLR(공용 언어 런타임) 가비지 수집기에 의해 클래스가 부적절하게 정리 대상으로 표시될 수 있습니다.

  • 세션 컨텍스트
    개인 설정 확장 프로그램을 기반으로 하는 개체에 대해 Analysis Services는 클라이언트 세션 동안 실행 환경을 만들고, 이 환경에서 이러한 개체의 대부분을 동적으로 만듭니다. 다른 CLR 어셈블리와 마찬가지로 이 실행 환경도 다른 함수 및 저장 프로시저에 액세스할 수 있습니다. 사용자 세션이 끝나면 Analysis Services는 동적으로 만들어진 개체를 제거하고 실행 환경을 닫습니다.

  • 이벤트
    개체 만들기는 On-Cube-OpenedCubeOpened 및 On-Cube-ClosingCubeClosing 세션 이벤트에 의해 트리거됩니다.

    클라이언트와 서버 간의 통신은 특정 이벤트를 통해 이루어집니다. 이러한 이벤트를 통해 클라이언트는 클라이언트의 개체 생성으로 이어지는 상황을 인식합니다. 클라이언트의 환경은 세션 이벤트와 큐브 이벤트, 두 개의 이벤트 집합을 사용하여 동적으로 만들어집니다.

    세션 이벤트는 서버 개체와 연관됩니다. 클라이언트가 서버에 로그온하면 Analysis Services는 세션을 만들고 SessionOpened 이벤트를 트리거합니다. 클라이언트가 서버의 세션을 종료하면 Analysis Services는 SessionClosing 이벤트를 트리거합니다.

    큐브 이벤트는 연결 개체와 연관됩니다. 큐브에 연결하면 CubeOpened 이벤트가 트리거됩니다. 큐브를 닫거나 다른 큐브로 변경하여 큐브에 대한 연결을 닫으면 CubeClosing 이벤트가 트리거됩니다.

  • 추적 기능 및 오류 처리
    모든 작업은 SQL Server Profiler를 사용하여 추적 가능합니다. 처리되지 않은 오류는 Windows 이벤트 로그에 보고됩니다.

모든 개체 제작 및 관리는 이 아키텍처와는 관계없으며 전적으로 개체 개발자의 책임입니다.

인프라 기반

Analysis Services 개인 설정 확장 프로그램은 기존 구성 요소를 기반으로 합니다. 다음은 개인 설정 확장 프로그램 기능을 제공하는 향상 및 개선 사항의 요약입니다.

어셈블리

사용자 지정 특성 PlugInAttribute를 사용자 지정 어셈블리에 추가하여 Analysis Services 개인 설정 확장 프로그램 클래스를 식별할 수 있습니다.

AdomdServer 개체 모델의 변경 내용

향상되었거나 모델에 추가된 Microsoft.AnalysisServices.AdomdServer 개체 모델의 개체는 다음과 같습니다.

새 AdomdConnection 클래스

AdomdConnection 클래스는 새로운 클래스이며 속성과 이벤트를 통해 여러 개인 설정 확장 프로그램을 노출합니다.

속성

  • SessionID - 현재 연결의 세션 ID를 나타내는 읽기 전용 문자열 값입니다.

  • ClientCulture - 현재 세션에 연결된 클라이언트 culture에 대한 읽기 전용 참조입니다.

  • User - 현재 사용자를 나타내는 ID 인터페이스의 읽기 전용 참조입니다.

이벤트

컨텍스트 클래스의 새 속성

Context 클래스에는 두 개의 새로운 속성이 있습니다.

새 서버 클래스

Server 클래스는 새로운 클래스이며 클래스 속성과 이벤트를 통해 여러 개인 설정 확장 프로그램을 노출합니다.

속성

  • Name - 서버 이름을 나타내는 읽기 전용 문자열 값입니다.

  • Culture - 서버에 연결된 전역 culture에 대한 읽기 전용 참조입니다.

이벤트

AdomdCommand 클래스

MDX 확장 및 향상된 기능

CREATE MEMBER 명령은 caption 속성, display_folder 속성 및 associated_measure_group 속성을 통해 향상되었습니다.

계산 중 업데이트가 필요하고 이로 인해 우선 순위의 손실이 발생할 때 멤버 다시 만들기를 방지하기 위해 UPDATE MEMBER 명령이 추가되었습니다. 업데이트에서는 계산 멤버의 범위를 변경하거나 계산 멤버를 다른 부모로 이동하거나 다른 solveorder를 정의할 수 없습니다.

CREATE SET 명령은 caption 속성, display_folder 속성 및 새로운 STATIC | DYNAMIC 키워드를 통해 향상되었습니다. Static은 집합이 생성 시에만 계산됨을 의미합니다. Dynamic은 쿼리에서 사용될 때마다 집합이 계산됨을 의미합니다. 키워드가 생략된 경우 기본값은 STATIC입니다.

CREATE KPI 및 DROP KPI 명령이 MDX 구문에 추가되었습니다. KPI는 모든 MDX 스크립트에서 동적으로 만들어질 수 있습니다.

스키마 행 집합 확장

MDSCHEMA_MEMBERS에 scope 열이 추가되었습니다. 범위 값은 MDMEMBER_SCOPE_GLOBAL=1, MDMEMBER_SCOPE_SESSION=2입니다.

MDSCHEMA_SETS에 set_evaluation_context 열이 추가되었습니다. 집합 계산 컨텍스트 값은 MDSET_RESOLUTION_STATIC = 1, MDSET_RESOLUTION_DYNAMIC = 2입니다.

MDSCHEMA_KPIS에 scope 열이 추가되었습니다. 범위 값은 MDKPI_SCOPE_GLOBAL=1, MDKPI_SCOPE_SESSION=2입니다.