Modelo de objetos tabulares (TOM)Tabular Object Model (TOM)

Se aplica a: SQL Server 2016 y versiones posteriores Analysis Services Azure Analysis Services Power BI Premium

El modelo de objetos tabulares (TOM) es una extensión de la biblioteca de cliente de objetos de administración de análisis (AMO) creada para admitir escenarios de programación para los modelos tabulares creados en el nivel de compatibilidad 1200 y versiones posteriores.The Tabular Object Model (TOM) is an extension of the Analysis Management Object (AMO) client library, created to support programming scenarios for tabular models created at compatibility level 1200 and higher. Al igual que con AMO, TOM proporciona una manera programática de controlar funciones administrativas como la creación de modelos, la importación y la actualización de datos, y la asignación de roles y permisos.As with AMO, TOM provides a programmatic way to handle administrative functions like creating models, importing and refreshing data, and assigning roles and permissions.

TOM expone metadatos tabulares nativos, como objetos de modelo, tablas, columnas y relaciones .TOM exposes native tabular metadata, such as model, tables, columns, and relationships objects. Una vista de alto nivel del árbol del modelo de objetos, que se proporciona a continuación, muestra cómo se relacionan las partes del componente.A high-level view of the object model tree, provided below, illustrates how the component parts are related.

Dado que TOM es una extensión de AMO, todas las clases que representan nuevos objetos tabulares se implementan en un nuevo ensamblado de Microsoft.AnalysisServices.Tabular.dll .Because TOM is an extension of AMO, all classes representing new tabular objects are implemented in a new Microsoft.AnalysisServices.Tabular.dll assembly. Las clases de uso general de AMO se movieron al ensamblado Microsoft. AnalysisServices. Core .General-purpose classes of AMO were moved to Microsoft.AnalysisServices.Core assembly. El código deberá hacer referencia a ambos ensamblados.Your code will need to reference both assemblies. Vea instalar, distribuir y hacer referencia al modelo de objetos tabulares (Microsoft. AnalysisServices. tabular) para obtener más información.See Install, distribute, and reference the Tabular Object Model (Microsoft.AnalysisServices.Tabular) for details.

Actualmente, la API solo está disponible para código administrado en .NET Framework.Currently, the API is available only for managed code over the .NET framework. Para obtener más información acerca de las clases específicas de AMO/TOM, consulte Referencia del espacio de nombres Microsoft. AnalysisServices.To learn more about specific AMO/TOM classes, see Microsoft.AnalysisServices Namespace reference. Para revisar la lista completa de opciones de programación para los modelos tabulares, incluida la compatibilidad con scripts y lenguajes de consulta, vea programación de modelos tabulares para el nivel de compatibilidad 1200.To review the full list of programming options for tabular models, including script and query language support, see Tabular Model Programming for Compatibility Level 1200.

Jerarquía del modelo de objetos tabularesTabular object model hierarchy

Desde una perspectiva lógica, todos los objetos tabulares forman un árbol, cuya raíz es un modelo, desciendendo de la base de datos.From a logical perspective, all tabular objects form a tree, the root of which is a Model, descended from Database. El servidor y la base de datos no se consideran tabulares porque estos objetos también pueden representar una base de datos multidimensional hospedada en un servidor que se ejecuta en modo multidimensional o un modelo tabular en un nivel de compatibilidad inferior que no usa metadatos tabulares para definiciones de objeto.Server and Database are not considered tabular because these objects can also represent a multidimensional database hosted on a server running in Multidimensional mode, or a tabular model at a lower compatibility level that does not use tabular metadata for object definitions.

Con la excepción de AttributeHierarchy, KPI y LinguisticMetadata, cada objeto secundario puede ser un miembro de una colección.With the exception of AttributeHierarchy, KPI, and LinguisticMetadata, each child object can be a member of a collection. Por ejemplo, el objeto de modelo contiene una colección de objetos de tabla (a través de la propiedad tablas ), con cada objeto de tabla que contiene una colección de objetos de columna , etc.For example, the Model object contains a collection of Table objects (via the Tables property), with each Table object containing a collection of Column objects, and so on.

El descendiente de nivel más bajo de cualquier objeto primario de esta jerarquía es un objeto Annotation que se puede usar para extender el esquema opcionalmente siempre que se proporcione el código para controlarlo.The lowest level descendant of any parent object in this hierarchy is an Annotation object that can be used to optionally extend the schema as long as you provide the code to handle it.

diagrama de jerarquía de objetosobject hierarchy diagram

TOM se basa en la infraestructura de AMO, que también admite bases de datos multidimensionales y tabulares en niveles de compatibilidad inferiores a 1200.TOM is built on top of the AMO infrastructure, which also accommodates multidimensional and tabular databases at compatibility levels below 1200. Esto tiene algunas implicaciones prácticas.This has some practical implications. Al administrar objetos no especificados en metadatos tabulares (por ejemplo, un servidor o una base de datos), debe aprovechar las partes de la pila de amo existente que describen dichos objetos.When you manage objects not specified in tabular metadata (such as a Server or Database), you need to leverage parts of the existing AMO stack that describe those objects. Junto con la API heredada se encuentra el concepto de objetos principales y secundarios que proporcionan descripciones detalladas del estado de los objetos detectados desde el servidor, o cuando se guardan en el servidor.Along with the legacy API is the concept of major and minor objects that provide granular descriptions of object state as discovered from the server, or when saved to the server. La clase MajorObject en el espacio de nombres Microsoft. AnalysisServices expone métodos para Actualizar y Actualizar.The MajorObject class under Microsoft.AnalysisServices namespace exposes methods for Refresh and Update. Los objetos secundarios solo se actualizan o guardan a través del objeto principal que los contiene.Minor objects are only refresh or saved via the major object that contains them.

Por el contrario, cuando se administran objetos que forman parte de metadatos tabulares, como modelo o tabla, se aprovecha una pila tabular completamente nueva.In contrast, when you manage objects that are part of tabular metadata, such as Model or Table, you leverage a completely new tabular stack. Dentro de esta pila, las actualizaciones son específicas, lo que significa que cada objeto de metadatos, derivado de la clase MetadataObject en el espacio de nombres Microsoft. AnalysisServices. tabular, se puede guardar individualmente en el servidor.Within this stack, updates are fine-grained, which means every metadata object, derived from the MetadataObject class under the Microsoft.AnalysisServices.Tabular namespace, can be individually saved to the server. Normalmente, se detectaría todo el modelo.Typically, you would discover the entire Model. A continuación, realice cambios en objetos de metadatos individuales, como tabla o columna.You then make changes to individual metadata objects under it, such as Table or Column. A continuación, llame al método Model. SaveChanges () , que comprende los cambios que ha realizado en el nivel específico, enviando comandos al servidor para actualizar solo los objetos que han cambiado.You then call Model.SaveChanges() method which understands changes made by you at fine-grained level, sending commands to the server to update only those objects that changed.

TOM y XMLATOM and XMLA

En la conexión, TOM usa el protocolo XMLA para comunicarse con el servidor y administrar objetos.On the wire, TOM uses the XMLA protocol to communicate with the server and to manage objects. Al administrar objetos no tabulares, TOM usa ASSL, la extensión del lenguaje de scripting de Analysis Services de XMLA.When managing non-tabular objects, TOM uses ASSL, the Analysis Services Scripting Language extension of XMLA. Al administrar objetos tabulares, TOM usa el protocolo tabular MS-SSAS-T, también una extensión de XMLA.When managing tabular objects, TOM uses the MS-SSAS-T tabular protocol, also an extension of XMLA. Para obtener más información, consulte MS-SSAS-T SQL Server Analysis Services documentación del protocolo tabular.To learn more, see MS-SSAS-T SQL Server Analysis Services Tabular protocol documentation.

TOM y JSONTOM and JSON

Los metadatos tabulares, que se estructuran como documentos JSON, tienen una nueva sintaxis de definición de modelo de objetos y comandos a través del tabular Model scripting Language (TMSL).Tabular metadata, which is structured as JSON documents, has a new command and object model definition syntax via the Tabular Model Scripting Language (TMSL). El lenguaje de scripting usa JSON para el cuerpo de solicitudes y respuestas.The scripting language uses JSON for the body of requests and responses.

Aunque tanto TMSL como TOM exponen los mismos objetos, tabla, columna , etc., y las mismas operaciones, crear, eliminar, Actualizar, Tom no utiliza TMSL en la conexión.Although both TMSL and TOM expose the same objects, Table, Column and so forth, and the same operations, Create, Delete, Refresh, TOM does not use TMSL on the wire. TOM usa en su lugar el protocolo tabular MS-SSAS-T, como se indicó anteriormente.TOM uses the MS-SSAS-T tabular protocol instead, as previously noted.

Como usuario, puede elegir entre administrar las bases de datos tabulares a través de la biblioteca TOM desde el programa de C# o el script de PowerShell, o mediante un script de TMSL ejecutado a través de PowerShell, SQL Server Management Studio (SSMS) o un trabajo Agente SQL Server.As a user, you can choose whether to manage tabular databases through the TOM library from your C# program or PowerShell script, or through TMSL script executed through PowerShell, SQL Server Management Studio (SSMS), or a SQL Server Agent Job.

La decisión de usar uno u otro se desconectará a los detalles de sus requisitos.The decision to use one or the other will come down to the specifics of your requirements. La biblioteca TOM proporciona una funcionalidad más completa en comparación con TMSL.The TOM library provides richer functionality compared to TMSL. En concreto, mientras que TMSL solo ofrece operaciones generales en el nivel de base de datos, tabla, partición o rol, TOM permite operaciones con un grano mucho más preciso.Specifically, whereas TMSL only offers coarse-grained operations at the database, table, partition, or role level, TOM allows operations at a much finer grain. Para generar o actualizar modelos mediante programación, necesitará el alcance completo de la API en la biblioteca TOM.To generate or update models programmatically, you will need the full extent of the API in the TOM library.