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

적용 대상: SQL Server Analysis Services Azure Analysis Services 패브릭/Power BI Premium

SQL Server SQL Server Analysis Services 개인 설정 확장은 플러그 인 아키텍처를 구현하는 아이디어의 기초입니다. 플러그 인 아키텍처에서는 동적으로 새 큐브 개체 및 기능을 개발하여 다른 개발자와 손쉽게 공유할 수 있습니다. 따라서 SQL Server Analysis Services 개인 설정 확장은 다음을 수행할 수 있는 기능을 제공합니다.

  • 동적 디자인 및 배포 SQL Server Analysis Services 개인 설정 확장을 디자인하고 배포한 직후 사용자는 다음 사용자 세션이 시작될 때 개체 및 기능에 액세스할 수 있습니다.

  • 인터페이스 독립성 SQL Server Analysis Services 개인 설정 확장을 만드는 데 사용하는 인터페이스에 관계없이 사용자는 모든 인터페이스를 사용하여 개체 및 기능에 액세스할 수 있습니다.

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

  • 신속한 배포 이 확장된 기능을 찾을 위치 또는 방법에 대한 자세한 사양으로 이동하지 않고도 다른 소프트웨어 개발자와 SQL Server Analysis Services 개인 설정 확장을 공유합니다.

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

SQL Server Analysis Services 개인 설정 확장은 기존 관리되는 어셈블리 아키텍처에 대한 간단하고 세련된 수정이며 Microsoft.AnalysisServices.AdomdServer 개체 모델, MDX(다차원 식) 구문 및 스키마 행 집합을 SQL Server Analysis Services 통해 노출됩니다.

논리 아키텍처

SQL Server Analysis Services 개인 설정 확장에 대한 아키텍처는 관리되는 어셈블리 아키텍처 및 다음 네 가지 기본 요소를 기반으로 합니다.

[PlugInAttribute] 사용자 지정 특성
서비스를 시작할 때 SQL Server Analysis Services 필요한 어셈블리를 로드하고 Microsoft.AnalysisServices.AdomdServer.PlugInAttribute 사용자 지정 특성이 있는 클래스를 결정합니다.

참고

.NET Framework 코드를 설명하고 런타임 동작에 영향을 주는 방법으로 사용자 지정 특성을 정의합니다. 자세한 내용은 MSDN에 대한 .NET Framework 개발자 가이드의 "특성 개요" 항목을 참조하세요.

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

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

세션 컨텍스트
개인 설정 확장을 기반으로 하는 개체의 경우 SQL Server Analysis Services 클라이언트 세션 중에 실행 환경을 만들고 이 환경에서 대부분의 개체를 동적으로 빌드합니다. 다른 CLR 어셈블리와 마찬가지로 이 실행 환경도 다른 함수 및 저장 프로시저에 액세스할 수 있습니다. 사용자 세션이 종료되면 SQL Server Analysis Services 동적으로 생성된 개체를 제거하고 실행 환경을 닫습니다.

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

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

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

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

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

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

인프라 기반

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

어셈블리

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

AdomdServer 개체 모델의 변경 내용

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

새 AdomdConnection 클래스

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

속성

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

  • Microsoft.AnalysisServices.AdomdServer.AdomdConnection.ClientCulture는 현재 세션과 연결된 클라이언트 문화권에 대한 읽기 전용 참조입니다.

  • 현재 사용자를 나타내는 ID 인터페이스에 대한 읽기 전용 참조인 Microsoft.AnalysisServices.AdomdServer.AdomdConnection.User.

이벤트

  • Microsoft.AnalysisServices.AdomdServer.AdomdConnection.CubeOpened

  • Microsoft.AnalysisServices.AdomdServer.AdomdConnection.CubeClosing

컨텍스트 클래스의 새 속성

Microsoft.AnalysisServices.AdomdServer.Context 클래스에는 두 가지 새 속성이 있습니다.

  • Microsoft.AnalysisServices.AdomdServer.Context.Server는 새 서버 개체에 대한 읽기 전용 참조입니다.

  • Microsoft.AnalysisServices.AdomdServer.Context.CurrentConnection은 새 Microsoft.AnalysisServices.AdomdServer.AdomdConnection 개체에 대한 읽기 전용 참조입니다.

새 서버 클래스

Microsoft.AnalysisServices.AdomdServer.Server는 클래스 속성과 이벤트를 모두 제공합니다.

속성

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

  • Microsoft.AnalysisServices.AdomdServer.Server.Culture, 서버와 연결된 전역 문화권에 대한 읽기 전용 참조입니다.

이벤트

  • Microsoft.AnalysisServices.AdomdServer.Server.SessionOpened

  • Microsoft.AnalysisServices.AdomdServer.Server.SessionClosing

AdomdCommand 클래스

Microsoft.AnalysisServices.AdomdServer.AdomdCommand 클래스는 이제 다음 MDX 명령을 지원합니다.

MDX 확장 및 향상된 기능

CREATE MEMBER 명령은 캡션 속성, display_folder 속성 및 associated_measure_group 속성으로 향상됩니다.

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

CREATE SET 명령은 캡션 속성, display_folder속성 및STATIC | 동적 키워드(keyword). 정적 은 집합이 생성 시에만 평가됨을 의미합니다. 동적 은 집합이 쿼리에 사용될 때마다 집합이 평가됨을 의미합니다. 키워드(keyword) 생략하면 기본값은 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.