Modello a oggetti tabulare

Si applica a: SQL Server 2016 e versioni successive Analysis Services Azure Analysis Services Power BI Premium

Il modello a oggetti tabulare (TOM) è un'estensione della libreria client AMO (Analysis Management Object), creata per supportare scenari di programmazione per modelli tabulari creati con il livello di compatibilità 1200 e versioni successive. Come per AMO, TOM offre un modo a livello di codice per gestire le funzioni amministrative, ad esempio la creazione di modelli, l'importazione e l'aggiornamento dei dati e l'assegnazione di ruoli e autorizzazioni.

TOM espone metadati tabulari nativi, ad esempio oggetti modello, tabelle, colonne e relazioni. Una visualizzazione di alto livello dell'albero del modello a oggetti, riportata di seguito, illustra come sono correlate le parti del componente.

Poiché TOM è un'estensione di AMO, tutte le classi che rappresentano nuovi oggetti tabulari vengono implementate in un Microsoft.AnalysisServices.Tabular.dll assembly. Le classi per utilizzo generico di AMO sono state spostate nell'assembly Microsoft.AnalysisServices.Core. Il codice dovrà fare riferimento a entrambi gli assembly. Per informazioni dettagliate, vedere Installare, distribuire e fare riferimento al modello a oggetti tabulare (microsoft.AnalysisServices.Tabular).

Attualmente, l'API è disponibile solo per il codice gestito in .NET Framework. Per altre informazioni sulle classi AMO/TOM specifiche, vedere Informazioni di riferimento sullo spazio dei nomi Microsoft.AnalysisServices. Per esaminare l'elenco completo delle opzioni di programmazione per i modelli tabulari, incluso il supporto del linguaggio di script e query, vedere Programmazione di modelli tabulari per il livello di compatibilità 1200.

Gerarchia del modello a oggetti tabulare

Dal punto di vista logico, tutti gli oggetti tabulari formano un albero, la cui radice è un modello, discendente da Database. Server e Database non sono considerati tabulari perché questi oggetti possono anche rappresentare un database multidimensionale ospitato in un server in esecuzione in modalità multidimensionale o un modello tabulare a un livello di compatibilità inferiore che non usa metadati tabulari per le definizioni di oggetto.

Ad eccezione di AttributeHierarchy, KPI e LinguisticMetadata, ogni oggetto figlio può essere membro di una raccolta. Ad esempio, l'oggetto Model contiene una raccolta di oggetti Table (tramite la proprietà Tables), con ogni oggetto Table contenente una raccolta di oggetti Column e così via.

Il discendente di livello più basso di qualsiasi oggetto padre in questa gerarchia è un oggetto Annotation che può essere usato per estendere facoltativamente lo schema, purché si fornica il codice per gestirlo.

Diagramma della gerarchia di oggetti

TOM si basa sull'infrastruttura AMO, che supporta anche database multidimensionali e tabulari a livelli di compatibilità inferiori a 1200. Ciò ha alcune implicazioni pratiche. Quando si gestiscono oggetti non specificati nei metadati tabulari , ad esempio un server o un database, è necessario sfruttare parti dello stack AMO esistente che descrivono tali oggetti. Insieme all'API legacy è il concetto di oggetti principali e secondari che forniscono descrizioni granulari dello stato degli oggetti individuati dal server o quando vengono salvati nel server. La classe MajorObject nello spazio dei nomi Microsoft.AnalysisServices espone i metodi per Refresh e Update. Gli oggetti secondari vengono aggiornati o salvati solo tramite l'oggetto principale che li contiene.

Al contrario, quando si gestiscono oggetti che fanno parte di metadati tabulari, ad esempio Modello o Tabella, si sfrutta uno stack tabulare completamente nuovo. All'interno di questo stack, gli aggiornamenti sono granulari, ovvero ogni oggetto di metadati, derivato dalla classe MetadataObject nello spazio dei nomi Microsoft.AnalysisServices.Tabular, può essere salvato singolarmente nel server. In genere, si individua l'intero modello. È quindi possibile apportare modifiche ai singoli oggetti di metadati, ad esempio Tabella o Colonna. Chiamare quindi il metodo Model.SaveChanges() che comprende le modifiche apportate dall'utente a livello granulare, inviando comandi al server per aggiornare solo gli oggetti modificati.

TOM e XMLA

In transito TOM usa il protocollo XMLA per comunicare con il server e per gestire gli oggetti. Quando si gestiscono oggetti non tabulari, TOM usa ASSL, l'Analysis Services Scripting Language di XMLA. Quando si gestiscono oggetti tabulari, TOM usa il protocollo tabulare MS-SSAS-T, anche un'estensione di XMLA. Per altre informazioni, vedere ms-SSAS-T SQL Server Analysis Services documentazione del protocollo tabulare.

TOM e JSON

I metadati tabulari, strutturati come documenti JSON, hanno una nuova sintassi di definizione del comando e del modello a oggetti tramite il linguaggio TMSL (Tabular Model Scripting Language). Il linguaggio di scripting usa JSON per il corpo delle richieste e delle risposte.

Anche se TMSL e TOM espongono gli stessi oggetti Table, Column e così via, e le stesse operazioni, Create, Delete, Refresh, TOM non usa TMSL in transito. TOM usa invece il protocollo tabulare MS-SSAS-T, come indicato in precedenza.

Gli utenti possono scegliere se gestire i database tabulari tramite la libreria TOM dal programma C# o dallo script di PowerShell oppure tramite uno script TMSL eseguito tramite PowerShell, SQL Server Management Studio (SSMS) o un processo SQL Server Agent.

La decisione di usare uno o l'altro verrà presa in base alle specifiche dei requisiti. La libreria TOM offre funzionalità più avanzate rispetto a TMSL. In particolare, mentre TMSL offre solo operazioni con granularità grosso modo a livello di database, tabella, partizione o ruolo, TOM consente le operazioni a un livello molto più fine. Per generare o aggiornare i modelli a livello di codice, è necessario l'estensione completa dell'API nella libreria TOM.

Uso di TOM con Power BI

Power BI Premium, Premium per utente e Power BI Embedded di lavoro supportano la connettività open platform tramite l'endpoint XMLA. Con l'endpoint XMLA è possibile usare strumenti personalizzati, script e processi automatizzati per la modellazione dei dati e per eseguire attività amministrative dell'area di lavoro e del set di dati.

Prima di creare un'applicazione .NET usando TOM per usare Power BI set di dati, leggere Connettività del set di dati con l'endpoint XMLA nella documentazione Power BI. Questo articolo descrive come abilitare l'endpoint XMLA per l'accesso in lettura/scrittura, ottenere un URL di connessione all'area di lavoro e altri aspetti importanti per la gestione dei set di dati con app personalizzate, strumenti esterni e script.

Per altre informazioni sull'uso del modello a oggetti tabulare per l'amministrazione e la gestione dei set di dati, vedere Programming Power BI datasets (TOM).

Vedi anche

Livello di compatibilità per i modelli tabulari
Librerie client di Analysis Services
Informazioni di riferimento di XML for Analysis (XMLA)
AMO (Analysis Management Objects)