Modello a oggetti tabulare

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

Il modello a oggetti tabulare (TOM) è un'estensione della libreria client AMO (Analysis Management Object), creata per supportare gli scenari di programmazione per i modelli tabulari creati a livello di compatibilità 1200 e versioni successive. Come per AMO, TOM offre un modo programmatico per gestire funzioni amministrative come 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 generale dell'albero del modello a oggetti, fornita 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 nuovo assembly Microsoft.AnalysisServices.Tabular.dll . 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).

L'API è disponibile per il codice .NET gestito. 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 per script e linguaggi di query, vedere Programmazione di modelli tabulari per il livello di compatibilità 1200.

Gerarchia del modello a oggetti tabulari

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 oggetti.

Ad eccezione di AttributeHierarchy, KPI e LinguisticMetadata, ogni oggetto figlio può essere un membro di un insieme. Ad esempio, l'oggetto Model contiene un insieme di oggetti Table (tramite la proprietà Tables ), con ogni oggetto Table contenente un insieme 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é venga fornito il codice per gestirlo.

Diagramma gerarchia

TOM è basato sull'infrastruttura AMO, che supporta anche database multidimensionali e tabulari a livelli di compatibilità inferiori a 1200. Questo 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 dell'oggetto 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 Model o Table, si sfrutta uno stack tabulare completamente nuovo. All'interno di questo stack, gli aggiornamenti sono con granularità fine, 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. Si apportano quindi modifiche ai singoli oggetti di metadati, ad esempio Table o Column. Si chiama quindi il metodo Model.SaveChanges() che riconosce 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'estensione del linguaggio di scripting di Analysis Services di XMLA. Quando si gestiscono oggetti tabulari, TOM usa il protocollo tabulare MS-SSAS-T, anche un'estensione di XMLA. Per altre informazioni, vedere la documentazione di MS-SSAS-T SQL Server Analysis Services protocollo tabulare.

TOM e JSON

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

Sebbene sia TMSL che 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 lo script TMSL eseguito tramite PowerShell, SQL Server Management Studio (SSMS) o un processo SQL Server Agent.

La decisione di usare una o l'altra dipenderà dalle specifiche dei requisiti. La libreria TOM offre funzionalità più avanzate rispetto a TMSL. In particolare, mentre TMSL offre solo operazioni con granularità grossolana a livello di database, tabella, partizione o ruolo, TOM consente operazioni con granularità molto più fine. Per generare o aggiornare modelli a livello di codice, è necessario disporre dell'estensione completa dell'API nella libreria TOM.

Uso di TOM con Power BI

Power BI Premium, Premium per utente e aree di lavoro Power BI Embedded supportano la connettività open platform tramite l'endpoint XMLA. Con l'endpoint XMLA, gli strumenti personalizzati, gli script e i processi automatizzati possono essere usati per la modellazione dei dati e per eseguire attività amministrative dell'area di lavoro e del modello semantico.

Prima di creare un'applicazione .Net usando TOM per usare i modelli semantici di Power BI, leggere Connettività del modello semantico con l'endpoint XMLA nella documentazione di 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 di modelli semantici con app personalizzate, strumenti esterni e script.

Per altre informazioni sull'uso del modello a oggetti tabulare per l'amministrazione e la gestione dei modelli semantici semantici, vedere Programmazione di modelli semantici di Power BI (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)