Instalar, distribuir e referenciar o modelo de objeto de tabela

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

Este artigo descreve como baixar, referenciar e redistribuir o TOM (Modelo de Objeto Tabular), uma biblioteca C# para criar e gerenciar modelos de tabela e bancos de dados no código gerenciado.

TOM é uma extensão da biblioteca de clientes AMO (Microsoft.AnalysisServices.dll). Para usar TOM, o modelo e o banco de dados devem estar no nível de compatibilidade 1200 ou superior.

AMO-TOM Assemblies

O AMO inclui novos assemblies Core, Tabular e JSON. Ele também inclui o assembly AMO original, Microsoft.AnalysisServices.dll, que faz parte do Analysis Services desde sua primeira versão. Um AMO reestruturado descarrega classes comuns para um assembly e fornece uma divisão lógica entre APIs tabulares e multidimensionais por meio de assemblies adicionais.

A tabela a seguir descreve cada assembly:

Assembly Funcionalidade Classes importantes
Núcleo
Microsoft.AnalysisServices.Core.dll
Comum a bancos de dados tabulares e multidimensionais.

Fornece tratamento de exceções, conexões genéricas com uma instância de servidor e banco de dados e acesso a propriedades e métodos comuns para objetos Server e Database.
Servidor Principal
Banco de Dados Principal
Amoexception
TOM
Microsoft.AnalysisServices.Tabular.dll, versão 13.0.1601.5 ou posterior.
Criar e gerenciar objetos de metadados tabulares. Servidor TOM
Banco de Dados TOM
Modelar
Tabela
Coluna
Relação
AMO
Microsoft.AnalysisServices.dll
Crie e gerencie objetos de metadados multidimensionais, incluindo bancos de dados tabulares 1050-1103. Servidor AMO
Banco de Dados AMO
Cubo
Dimensão
MeasureGroup
Json
Microsoft.AnalysisServices.Tabular.Json.dll
Uma DLL auxiliar que encapsula o NewtonSoftJson.dll (JSON.NET) para controlar atualizações, removendo o risco de introduzir alterações funcionais na serialização JSON em cargas de trabalho do servidor.

Essa DLL existe como uma dependência no TOM e não se destina a ser usada diretamente em seu código.
Nenhum.

Noções básicas sobre dependências de assembly

Para programar contra AMO, sua solução deve incluir referências a DLLs dependentes. AMO e TOM dependem do Core porque ele fornece classes base.

AMO depende de TOM porque algumas classes em classes de referência AMO do TOM. Por exemplo, o objeto de Banco de Dados AMO tem uma propriedade Modelo do tipo Model, implementada na dll TOM.

Dependências DO AMO TOM

Não é possível distribuir Microsoft.AnalysisServices.dll sem Microsoft.AnalysisServices.Tabular.dll, mas você pode referenciar seus respectivos namespaces sem o outro.

Escolhendo qual namespace usar no código

Na hierarquia de objetos, qualquer objeto abaixo de Database é uma construção de metadados tabulares por meio do objeto Model ou uma construção de metadados multidimensionais por meio de um objeto Cube, Dimension ou MeasureGroup. Para operações de alto nível no nível Servidor, Banco de Dados, Função ou Rastreamento, a escolha de qual namespace referenciar dependerá das cargas de trabalho que seu código precisa dar suporte.

  • Use Tabular.Server ou Tabular.Database se sua solução for o nível de compatibilidade 1200 ou superior e o objeto Database com o qual você trabalha deve fornecer acesso a Model, Table, Columns e outros objetos expressos como construções de metadados tabulares.
  • Use AnalysisServices.Server ou AnalysisServices.Database se o código downstream fizer referência a objetos Multidimensionais, como Cubos, DataSources, DataSourceViews e Dimensões.

Você precisará de namespaces para ferramentas e aplicativos que dão suporte a uma combinação de bancos de dados e tipos de modelo.

Fazer referência ao namespace Principal em seu código é desnecessário; as classes em Core são classes base criadas com a finalidade de fornecer propriedades comuns, como Nome e Descrição, para objetos principais.

Baixar e instalar o AMO

  1. Vá para Bibliotecas de clientes.

  2. Selecione e baixe AMO usando o Windows Installer ou pacotes NuGet.

Adicionar referências

  1. Em Gerenciador de Soluções>Adicionar Pesquisa de Referência>.

  2. Vá para C:\Arquivos de Programas\Microsoft SQL Server\140\SDK\Assemblies e selecione:

    • Microsoft.AnalysisServices.Core
    • Microsoft.AnalysisServices.Tabular
    • Microsoft.AnalysisSerivces.Tabular.Json
  3. Clique em OK. Em Gerenciador de Soluções, confirme se os assemblies existem na pasta Referências.

  4. Na página de código, adicione o namespace Microsoft.AnalysisServces.Tabular se bancos de dados e modelos forem tabulares 1200 ou nível de compatibilidade superior.

    using Microsoft.AnalysisServices; 
    using Microsoft.AnalysisServices.Tabular;
    

    Ao incluir namespaces que têm classes em comum para objetos Server, Database, Role e Trace, evite referências ambíguas qualificando qual namespace você deseja usar (por exemplo, Microsoft.AnalysisServices.Tabular.Server cria uma instância de um objeto Server usando o namespace Tabular).

Redistribuir AMO e TOM com seu aplicativo

A redistribuição de AMO e TOM é por meio do pacote de instalação sql_as_amo.msi ou pacotes NuGet. Se você estiver criando um programa de instalação para um aplicativo cliente que chama AMO ou TOM, adicione sql_as_amo.msi ao executável.

O pacote é independente e fornece todos os assemblies necessários para chamar AMO e TOM em seu código. Outros pacotes, como SQL_AS_OLEDB.msi ou SQL_AS_ADOMD.msi, não são especificamente necessários para cenários de programação TOM.