다음을 통해 공유


Analysis Services 개인 설정 확장

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

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

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

  • 세션 컨텍스트 Analysis Services 개인 설정 확장은 기존 인프라의 영구 개체가 아니며 큐브를 다시 처리할 필요가 없습니다. 사용자가 데이터베이스에 연결할 때 사용자에 대해 노출되고 생성되며 해당 사용자 세션 동안 계속 사용할 수 있습니다.

  • 신속한 배포 Analysis Services 개인 설정 확장을 다른 소프트웨어 개발자와 공유합니다. 이 확장된 기능을 찾는 위치 또는 방법에 대한 자세한 사양을 참조하세요.

Analysis Services 개인 설정 확장에는 많은 용도가 있습니다. 예를 들어 회사에는 서로 다른 통화가 포함된 판매액이 있습니다. 큐브에 액세스하는 사용자의 현지 통화로 통합된 매출을 반환하는 계산 멤버를 만듭니다. 이 멤버를 개인 설정 확장으로 만듭니다. 그런 다음 이 계산 멤버를 사용자 그룹에 공유합니다. 공유된 사용자는 서버에 연결하는 즉시 계산 멤버에 즉시 액세스할 수 있습니다. 계산 멤버를 만드는 데 사용된 인터페이스와 동일한 인터페이스를 사용하지 않더라도 액세스할 수 있습니다.

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

논리 아키텍처

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

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

비고

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

Microsoft.AnalysisServices.AdomdServer.PlugInAttribute 사용자 지정 특성을 사용하는 모든 클래스의 경우 Analysis Services는 기본 생성자를 호출합니다. 시작 시 모든 생성자를 호출하면 새 개체를 빌드할 수 있는 공통 위치가 제공되며 사용자 활동과는 무관합니다.

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

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

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

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

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

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

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

모든 개체 작성 및 관리는 이 아키텍처와 독립적이며 개체 개발자의 유일한 책임입니다.

인프라 기반

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

어셈블리

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

AdomdServer 개체 모델의 변경 내용

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

새 AdomdConnection 클래스

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

속성

이벤트

컨텍스트 클래스의 새 속성

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

새 서버 클래스

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

속성

이벤트

AdomdCommand 클래스

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

MDX 확장 및 향상된 기능

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

업데이트 멤버 명령은 계산 해결 시 우선 순위가 손실되는 업데이트가 필요할 때 멤버가 다시 생성되지 않도록 하기 위해 추가됩니다. 업데이트는 계산 멤버의 범위를 변경하거나 계산 멤버를 다른 부모로 이동하거나 다른 solveorder멤버를 정의할 수 없습니다.

CREATE SET 명령은 속성, display_folder 속성 및 새 STATIC | DYNAMIC 키워드를 사용하여 caption 향상됩니다. 정적 은 집합이 생성 시에만 평가됨을 의미합니다. 동적 은 집합이 쿼리에 사용될 때마다 집합이 평가됨을 의미합니다. 기본값은 STATIC 키워드를 생략하는 경우입니다.

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

스키마 행 집합 확장

MDSCHEMA_MEMBERS 범위 열이 추가됩니다. 범위 값은 다음과 같습니다. MDMEMBER_SCOPE_GLOBAL=1, MDMEMBER_SCOPE_SESSION=2.

MDSCHEMA_SETS set_evaluation_context 열이 추가됩니다. 평가 컨텍스트 값 설정은 다음과 같습니다. MDSET_RESOLUTION_STATIC = 1, MDSET_RESOLUTION_DYNAMIC = 2입니다.

MDSCHEMA_KPIS 범위 열이 추가됩니다. 범위 값은 다음과 같습니다. MDKPI_SCOPE_GLOBAL=1, MDKPI_SCOPE_SESSION=2.