TOM (Modelo de Objeto Tabular)

Aplica-se a: SQL Server 2016 e posteriores do Analysis Services Azure Analysis Services Fabric/Power BI Premium

O TOM (Modelo de Objeto Tabular) é uma extensão da biblioteca de clientes AMO (Objeto de Gerenciamento de Análise), criada para dar suporte a cenários de programação para modelos tabulares criados no nível de compatibilidade 1200 e superior. Assim como acontece com o AMO, o TOM fornece uma maneira programática de lidar com funções administrativas, como criar modelos, importar e atualizar dados e atribuir funções e permissões.

O TOM expõe metadados tabulares nativos, como modelo, tabelas, colunas e objetos de relações . Uma exibição de alto nível da árvore de modelo de objeto, fornecida abaixo, ilustra como as partes do componente estão relacionadas.

Como TOM é uma extensão de AMO, todas as classes que representam novos objetos tabulares são implementadas em um novo assemblyMicrosoft.AnalysisServices.Tabular.dll . Classes de uso geral do AMO foram movidas para o assembly Microsoft.AnalysisServices.Core . Seu código precisará referenciar ambos os assemblies. Consulte Instalar, distribuir e referenciar o Modelo de Objeto Tabular (Microsoft.AnalysisServices.Tabular) para obter detalhes.

A API está disponível para código .NET gerenciado. Para saber mais sobre classes AMO/TOM específicas, consulte Referência de namespace Microsoft.AnalysisServices. Para examinar a lista completa de opções de programação para modelos tabulares, incluindo suporte a linguagem de script e consulta, consulte Programação de modelo tabular para nível de compatibilidade 1200.

Hierarquia do modelo de objeto tabular

De uma perspectiva lógica, todos os objetos tabulares formam uma árvore, a raiz da qual é um Modelo, decrescente do Banco de Dados. O servidor e o banco de dados não são considerados tabulares porque esses objetos também podem representar um banco de dados multidimensional hospedado em um servidor em execução no modo Multidimensional ou um modelo tabular em um nível de compatibilidade inferior que não usa metadados tabulares para definições de objeto.

Com exceção de AttributeHierarchy, KPI e LinguisticMetadata, cada objeto filho pode ser membro de uma coleção. Por exemplo, o objeto Model contém uma coleção de objetos Table (por meio da propriedade Tables ), com cada objeto Table contendo uma coleção de objetos Column e assim por diante.

O descendente de nível mais baixo de qualquer objeto pai nessa hierarquia é um objeto Annotation que pode ser usado para, opcionalmente, estender o esquema, desde que você forneça o código para lidar com ele.

O TOM é criado com base na infraestrutura amo, que também acomoda bancos de dados multidimensionais e tabulares em níveis de compatibilidade abaixo de 1200. Isso tem algumas implicações práticas. Quando você gerencia objetos não especificados em metadados tabulares (como um Servidor ou Banco de Dados), você precisa aproveitar partes da pilha AMO existente que descrevem esses objetos. Junto com a API herdada está o conceito de objetos principais e secundários que fornecem descrições granulares do estado do objeto, conforme descoberto no servidor ou quando salvos no servidor. A classe MajorObject no namespace Microsoft.AnalysisServices expõe métodos para Atualização e Atualização. Objetos secundários são atualizados ou salvos apenas por meio do objeto principal que os contém.

Por outro lado, ao gerenciar objetos que fazem parte de metadados tabulares, como Modelo ou Tabela, você aproveita uma pilha tabular completamente nova. Dentro dessa pilha, as atualizações são refinadas, o que significa que cada objeto de metadados, derivado da classe MetadataObject no namespace Microsoft.AnalysisServices.Tabular, pode ser salvo individualmente no servidor. Normalmente, você descobriria todo o Modelo. Em seguida, você faz alterações em objetos de metadados individuais sob ele, como Tabela ou Coluna. Em seguida, você chama o método Model.SaveChanges() que entende as alterações feitas por você no nível refinado, enviando comandos para o servidor para atualizar apenas os objetos que foram alterados.

TOM e XMLA

Na transmissão, o TOM usa o protocolo XMLA para se comunicar com o servidor e gerenciar objetos. Ao gerenciar objetos não tabulares, o TOM usa o ASSL, a extensão linguagem de script do Analysis Services de XMLA. Ao gerenciar objetos tabulares, o TOM usa o protocolo tabular MS-SSAS-T, também uma extensão do XMLA. Para saber mais, confira a documentação do protocolo tabular do MS-SSAS-T SQL Server Analysis Services.

TOM e JSON

Os metadados tabulares, que são estruturados como documentos JSON, têm uma nova sintaxe de definição de modelo de comando e objeto por meio da TMSL (Linguagem de Script de Modelo Tabular). A linguagem de script usa JSON para o corpo de solicitações e respostas.

Embora TMSL e TOM exponham os mesmos objetos, Table, Column e assim por diante e as mesmas operações, Create, Delete, Refresh, TOM não usa TMSL no fio. O TOM usa o protocolo tabular MS-SSAS-T, conforme observado anteriormente.

Como usuário, você pode escolher se deseja gerenciar bancos de dados tabulares por meio da biblioteca TOM do programa C# ou do script do PowerShell ou por meio do script TMSL executado por meio do PowerShell, SQL Server Management Studio (SSMS) ou um trabalho SQL Server Agent.

A decisão de usar um ou outro se resume às especificidades de seus requisitos. A biblioteca TOM fornece uma funcionalidade mais avançada em comparação com o TMSL. Especificamente, enquanto a TMSL oferece apenas operações refinadas no banco de dados, tabela, partição ou nível de função, o TOM permite operações em uma granularidade muito mais fina. Para gerar ou atualizar modelos programaticamente, você precisará de toda a extensão da API na biblioteca TOM.

Usando o TOM com o Power BI

os workspaces Power BI Premium, Premium por Usuário e Power BI Embedded dão suporte à conectividade de plataforma aberta por meio do ponto de extremidade XMLA. Com o ponto de extremidade XMLA, ferramentas personalizadas, script e processos automatizados podem ser usados para modelagem de dados e para executar tarefas administrativas de modelo semântico e workspace.

Antes de criar um aplicativo .Net usando TOM para trabalhar com modelos semânticos do Power BI, leia Conectividade de modelo semântico com o ponto de extremidade XMLA na documentação do Power BI. Este artigo descreve como habilitar o ponto de extremidade XMLA para acesso de leitura/gravação, obter uma URL de conexão de workspace e outros aspectos importantes para o gerenciamento de modelo semântico com aplicativos personalizados, ferramentas externas e scripts.

Para saber mais sobre como usar o Modelo de Objeto Tabular para administração e gerenciamento de modelo semântico, consulte Programação de modelos semânticos do Power BI (TOM).

Confira também

Nível de compatibilidade para modelos tabulares
Bibliotecas de clientes do Analysis Services
Referência do XMLA (XML for Analysis)
Objetos de Gerenciamento de Análise (AMO)