테이블 형식 개체 모델(TOM)

적용 대상: SQL Server 2016 이상 Analysis Services Azure Analysis Services Fabric/Power BI Premium

TOM(테이블 형식 개체 모델)은 호환성 수준 1200 이상에서 만든 테이블 형식 모델에 대한 프로그래밍 시나리오를 지원하기 위해 만든 AMO(Analysis Management Object) 클라이언트 라이브러리의 확장입니다. AMO와 마찬가지로 TOM은 모델 만들기, 데이터 가져오기 및 새로 고침, 역할 및 권한 할당과 같은 관리 기능을 처리하는 프로그래밍 방식의 방법을 제공합니다.

TOM은 모델, 테이블, 열 및 관계 개체와 같은 네이티브 테이블 형식 메타데이터를 노출합니다. 아래에 제공된 개체 모델 트리의 개략적인 보기는 구성 요소 부분이 어떻게 관련되어 있는지를 보여 줍니다.

TOM은 AMO의 확장이므로 새 테이블 형식 개체를 나타내는 모든 클래스가 새 Microsoft.AnalysisServices.Tabular.dll 어셈블리에서 구현됩니다. AMO의 범용 클래스가 Microsoft.AnalysisServices.Core 어셈블리로 이동되었습니다. 코드는 두 어셈블리를 모두 참조해야 합니다. 자세한 내용은 테이블 형식 개체 모델 설치, 배포 및 참조(Microsoft.AnalysisServices.Tabular) 를 참조하세요.

API는 관리되는 .NET 코드에 사용할 수 있습니다. 특정 AMO/TOM 클래스에 대한 자세한 내용은 Microsoft.AnalysisServices 네임스페이스 참조를 참조하세요. 스크립트 및 쿼리 언어 지원을 포함하여 테이블 형식 모델에 대한 프로그래밍 옵션의 전체 목록을 검토하려면 호환성 수준 1200에 대한 테이블 형식 모델 프로그래밍을 참조하세요.

테이블 형식 개체 모델 계층 구조

논리적 관점에서 모든 테이블 형식 개체는 트리를 형성하며, 루트는 모델이며 데이터베이스에서 내림차순입니다. 이러한 개체는 다차원 모드에서 실행되는 서버에서 호스트되는 다차원 데이터베이스 또는 개체 정의에 테이블 형식 메타데이터를 사용하지 않는 낮은 호환성 수준의 테이블 형식 모델을 나타낼 수도 있기 때문에 서버데이터베이스는 테이블 형식으로 간주되지 않습니다.

AttributeHierarchy, KPILinguisticMetadata를 제외하고 각 자식 개체는 컬렉션의 멤버일 수 있습니다. 예를 들어 Model 개체에는 Tables 속성을 통해 Table 개체의 컬렉션이 포함되며 각 Table 개체에는 Column 개체의 컬렉션이 포함됩니다.

이 계층 구조에서 부모 개체의 가장 낮은 수준 하위 항목은 처리할 코드를 제공하는 한 필요에 따라 스키마를 확장하는 데 사용할 수 있는 Annotation 개체입니다.

개체 계층 구조 다이어그램

TOM은 1200 미만의 호환성 수준에서 다차원 및 테이블 형식 데이터베이스를 수용하는 AMO 인프라를 기반으로 합니다. 이것은 몇 가지 실질적인 의미가 있습니다. 테이블 형식 메타데이터(예: 서버 또는 데이터베이스)에 지정되지 않은 개체를 관리하는 경우 해당 개체를 설명하는 기존 AMO 스택의 일부를 활용해야 합니다. 레거시 API와 함께 서버에서 검색되거나 서버에 저장될 때 개체 상태에 대한 세부적인 설명을 제공하는 주 개체와 부 개체의 개념이 있습니다. Microsoft.AnalysisServices 네임스페이스의 MajorObject 클래스는 새로 고침업데이트에 대한 메서드를 노출합니다. 사소한 개체는 포함된 주 개체를 통해서만 새로 고치거나 저장됩니다.

반면 모델 또는테이블과 같은 테이블 형식 메타데이터의 일부인 개체를 관리하는 경우 완전히 새로운 테이블 형식 스택을 활용합니다. 이 스택 내에서 업데이트는 세분화됩니다. 즉, Microsoft.AnalysisServices.Tabular 네임스페이스의 MetadataObject 클래스에서 파생된 모든 메타데이터 개체를 서버에 개별적으로 저장할 수 있습니다. 일반적으로 전체 모델을 검색합니다. 그런 다음 테이블 또는 과 같은 개별 메타데이터 개체를 변경합니다. 그런 다음 세분화된 수준에서 사용자가 변경한 내용을 이해하는 Model.SaveChanges() 메서드를 호출하여 변경된 개체만 업데이트하도록 명령을 서버에 보냅니다.

TOM 및 XMLA

유선에서 TOM은 XMLA 프로토콜을 사용하여 서버와 통신하고 개체를 관리합니다. 테이블 형식이 아닌 개체를 관리할 때 TOM은 XMLA의 Analysis Services 스크립팅 언어 확장인 ASSL을 사용합니다. 테이블 형식 개체를 관리할 때 TOM은 XMLA의 확장인 MS-SSAS-T 테이블 형식 프로토콜을 사용합니다. 자세한 내용은 MS-SSAS-T SQL Server Analysis Services 테이블 형식 프로토콜 설명서를 참조하세요.

TOM 및 JSON

JSON 문서로 구성된 테이블 형식 메타데이터에는 TMSL(테이블 형식 모델 스크립팅 언어)을 통한 새 명령 및 개체 모델 정의 구문이 있습니다. 스크립팅 언어는 요청 및 응답 본문에 JSON을 사용합니다.

TMSL과 TOM 모두 테이블, 등과 동일한 개체를 노출하지만 만들기, 삭제, 새로 고침, TOM은 와이어에서 TMSL을 사용하지 않습니다. TOM은 앞에서 설명한 대로 MS-SSAS-T 테이블 형식 프로토콜을 대신 사용합니다.

사용자는 C# 프로그램 또는 PowerShell 스크립트에서 TOM 라이브러리를 통해 테이블 형식 데이터베이스를 관리할지 또는 PowerShell, SQL Server Management Studio(SSMS) 또는 SQL Server 에이전트 작업을 통해 실행되는 TMSL 스크립트를 통해 테이블 형식 데이터베이스를 관리할지 선택할 수 있습니다.

하나 또는 다른 하나를 사용하기로 결정하는 것은 요구 사항의 세부 사항으로 내려옵니다. TOM 라이브러리는 TMSL에 비해 더 풍부한 기능을 제공합니다. 특히 TMSL은 데이터베이스, 테이블, 파티션 또는 역할 수준에서 거친 작업만 제공하는 반면 TOM은 훨씬 더 세분화된 작업만 허용합니다. 프로그래밍 방식으로 모델을 생성하거나 업데이트하려면 TOM 라이브러리에서 API의 전체 범위가 필요합니다.

Power BI에서 TOM 사용

Power BI Premium, 사용자별 프리미엄 및 Power BI Embedded 작업 영역은 XMLA 엔드포인트를 통한 오픈 플랫폼 연결을 지원합니다. XMLA 엔드포인트를 사용하면 데이터 모델링에 사용자 지정 도구, 스크립트 및 자동화된 프로세스를 사용하고 작업 영역 및 의미 체계 모델 관리 작업을 수행할 수 있습니다.

TOM을 사용하여 Power BI 의미 체계 모델을 사용하는 .Net 애플리케이션을 만들기 전에 Power BI 설명서에서 XMLA 엔드포인트를 사용한 의미 체계 모델 연결을 읽어야 합니다. 이 문서에서는 XMLA 엔드포인트를 읽기-쓰기 액세스에 사용하도록 설정하고, 작업 영역 연결 URL을 가져오고, 사용자 지정 앱, 외부 도구 및 스크립트를 사용하여 의미 체계 모델 관리를 위한 기타 중요한 측면을 가져오는 방법을 설명합니다.

의미 체계 모델 관리 및 관리에 테이블 형식 개체 모델을 사용하는 방법에 대한 자세한 내용은 TOM(Power BI 의미 체계 모델 프로그래밍)을 참조하세요.

추가 정보

테이블 형식 모델의 호환성 수준
Analysis Services 클라이언트 라이브러리
XMLA(XML for Analysis) 참조
AMO(Analysis Management Objects)