Modèle d’objet tabulaire (TOM)

S’applique à : SQL Server 2016 et versions ultérieures Analysis Services Azure Analysis Services Fabric/Power BI Premium

Le modèle d’objet tabulaire (TOM) est une extension de la bibliothèque cliente AMO (Analysis Management Object), créée pour prendre en charge les scénarios de programmation pour les modèles tabulaires créés au niveau de compatibilité 1200 et supérieur. Comme avec AMO, TOM fournit un moyen programmatique de gérer des fonctions d’administration telles que la création de modèles, l’importation et l’actualisation des données, ainsi que l’attribution de rôles et d’autorisations.

TOM expose les métadonnées tabulaires natives, telles que le modèle, les tables, lescolonnes et les objets de relations . Une vue générale de l’arborescence du modèle objet, fournie ci-dessous, illustre la façon dont les composants sont liés.

Étant donné que TOM est une extension d’AMO, toutes les classes représentant de nouveaux objets tabulaires sont implémentées dans un nouvel assembly Microsoft.AnalysisServices.Tabular.dll . Les classes à usage général d’AMO ont été déplacées vers l’assembly Microsoft.AnalysisServices.Core . Votre code doit référencer les deux assemblys. Pour plus d’informations, consultez Installer, distribuer et référencer le modèle objet tabulaire (Microsoft.AnalysisServices.Tabular).

L’API est disponible pour le code .NET managé. Pour en savoir plus sur des classes AMO/TOM spécifiques, consultez Informations de référence sur l’espace de noms Microsoft.AnalysisServices. Pour consulter la liste complète des options de programmation pour les modèles tabulaires, y compris la prise en charge du script et du langage de requête, consultez Programmation de modèles tabulaires pour le niveau de compatibilité 1200.

Hiérarchie du modèle objet tabulaire

D’un point de vue logique, tous les objets tabulaires forment une arborescence, dont la racine est un modèle, descendant de Database. Le serveur et la base de données ne sont pas considérés comme tabulaires, car ces objets peuvent également représenter une base de données multidimensionnelle hébergée sur un serveur s’exécutant en mode multidimensionnel, ou un modèle tabulaire à un niveau de compatibilité inférieur qui n’utilise pas de métadonnées tabulaires pour les définitions d’objets.

À l’exception de AttributeHierarchy, KPI et LinguisticMetadata, chaque objet enfant peut être membre d’une collection. Par exemple, l’objet Model contient une collection d’objets Table (via la propriété Tables ), chaque objet Table contenant une collection d’objets Column , etc.

Le descendant de niveau le plus bas d’un objet parent dans cette hiérarchie est un objet Annotation qui peut éventuellement être utilisé pour étendre le schéma tant que vous fournissez le code pour le gérer.

diagramme de hiérarchie d’objets

TOM repose sur l’infrastructure AMO, qui prend également en charge les bases de données multidimensionnelles et tabulaires à des niveaux de compatibilité inférieurs à 1 200. Cela a des implications pratiques. Lorsque vous gérez des objets non spécifiés dans les métadonnées tabulaires (comme un serveur ou une base de données), vous devez tirer parti des parties de la pile AMO existante qui décrivent ces objets. En plus de l’API héritée, il existe le concept d’objets majeurs et secondaires qui fournissent des descriptions précises de l’état de l’objet tel qu’il a été découvert à partir du serveur, ou lors de son enregistrement sur le serveur. La classe MajorObject sous l’espace de noms Microsoft.AnalysisServices expose des méthodes pour Refresh et Update. Les objets secondaires sont actualisés ou enregistrés uniquement via l’objet principal qui les contient.

En revanche, lorsque vous gérez des objets qui font partie de métadonnées tabulaires, telles que Model ou Table, vous tirez parti d’une pile tabulaire entièrement nouvelle. Dans cette pile, les mises à jour sont affinées, ce qui signifie que chaque objet de métadonnées, dérivé de la classe MetadataObject sous l’espace de noms Microsoft.AnalysisServices.Tabular, peut être enregistré individuellement sur le serveur. En règle générale, vous devez découvrir l’intégralité du modèle. Vous apportez ensuite des modifications à des objets de métadonnées individuels sous celui-ci, tels que Table ou Colonne. Vous appelez ensuite la méthode Model.SaveChanges() qui comprend les modifications apportées par vous au niveau affiné, en envoyant des commandes au serveur pour mettre à jour uniquement les objets qui ont changé.

TOM et XMLA

Sur le réseau, TOM utilise le protocole XMLA pour communiquer avec le serveur et gérer les objets. Lors de la gestion d’objets non tabulaires, TOM utilise ASSL, l’extension Analysis Services Scripting Language de XMLA. Lors de la gestion d’objets tabulaires, TOM utilise le protocole tabulaire MS-SSAS-T, qui est également une extension de XMLA. Pour plus d’informations, consultez la documentation sur le protocole tabulaire MS-SSAS-T SQL Server Analysis Services.

TOM et JSON

Les métadonnées tabulaires, qui sont structurées sous forme de documents JSON, ont une nouvelle syntaxe de commande et de définition de modèle objet via le langage TMSL (Tabular Model Scripting Language). Le langage de script utilise JSON pour le corps des requêtes et des réponses.

Bien que TMSL et TOM exposent les mêmes objets, Table, Column et ainsi de suite, et les mêmes opérations, Create, Delete, Refresh, TOM n’utilise pas TMSL sur le réseau. TOM utilise le protocole tabulaire MS-SSAS-T à la place, comme indiqué précédemment.

En tant qu’utilisateur, vous pouvez choisir de gérer des bases de données tabulaires via la bibliothèque TOM à partir de votre programme C# ou de votre script PowerShell, ou via un script TMSL exécuté via PowerShell, SQL Server Management Studio (SSMS) ou un travail SQL Server Agent.

La décision d’utiliser l’un ou l’autre se résume aux spécificités de vos besoins. La bibliothèque TOM offre des fonctionnalités plus riches par rapport à TMSL. Plus précisément, alors que TMSL offre uniquement des opérations grossières au niveau de la base de données, de la table, de la partition ou du rôle, TOM autorise les opérations à un grain beaucoup plus fin. Pour générer ou mettre à jour des modèles par programme, vous aurez besoin de l’étendue complète de l’API dans la bibliothèque TOM.

Utilisation de TOM avec Power BI

les espaces de travail Power BI Premium, Premium par utilisateur et Power BI Embedded prennent en charge la connectivité de plateforme ouverte via le point de terminaison XMLA. Avec le point de terminaison XMLA, des outils personnalisés, des scripts et des processus automatisés peuvent être utilisés pour la modélisation des données et pour effectuer des tâches administratives d’espace de travail et de modèle sémantique.

Avant de créer une application .Net à l’aide de TOM pour utiliser des modèles sémantiques Power BI, veillez à lire Connectivité du modèle sémantique avec le point de terminaison XMLA dans la documentation Power BI. Cet article explique comment activer le point de terminaison XMLA pour l’accès en lecture-écriture, obtenir une URL de connexion d’espace de travail et d’autres aspects importants pour la gestion sémantique des modèles avec des applications personnalisées, des outils externes et des scripts.

Pour en savoir plus sur l’utilisation du modèle objet tabulaire pour l’administration et la gestion des modèles sémantiques, consultez Programmation de modèles sémantiques Power BI (TOM).

Voir aussi

Niveau de compatibilité pour les modèles tabulaires
Bibliothèques de client Analysis Services
Informations de référence sur XMLA (XML for Analysis)
Objets AMO (Analysis Management Objects)