Immagina di trasformare i metadata del tuo modello semantico Power BI in una raccolta di file di testo ordinati, leggibili e facilmente gestibili invece di un unico file JSON ingombrante.
Questo è ciò che propone TMDL (Tabular Model Definition Language): un linguaggio testuale che raggruppa logicamente tutte le componenti del modello semantico quali misure, tabelle, relazioni ecc… in moduli separati, perfetti per essere letti da un umano, modificati agilmente anche in contesti collaborativi, per il controllo delle versioni e scripting.
TMDL, annunciato ad aprile del 2023, ha rappresentato una svolta per i modelli semantici in Power BI: trasforma il processo di sviluppo in un’esperienza fluida e moderna, pensata per rispondere efficacemente alle esigenze di sviluppatori esperti e team collaborativi.
Cos’è TMDL e Setup
Il Tabular Model Definition Language (TMDL) è un linguaggio dichiarativo, testuale e leggibile dall’essere umano, pensato per descrivere modelli tabulari con livello di compatibilità 1200 o superiore. La sua sintassi, ispirata a YAML, rende chiara la gerarchia degli oggetti tramite indentazione (spazi), superando la verbosità della struttura JSON.
TMDL riflette quasi completamente il Tabular Object Model (TOM): molte proprietà accessibili tramite TOM possono essere gestite anche con TMDL in maniera più “user-friendly”. Con questo nuovo formato si salva ogni componente del modello (tabelle, misure, perspective -una sorta di “finestra” sul modello semantico che mostra solo un sottoinsieme rilevante di tabelle, colonne e misure- e ruoli e traduzioni) come singolo file all’interno di una struttura a cartelle, rendendolo particolarmente adatto all’integrazione con sistemi di controllo versione come Git.
L’editor TMDL in Power BI Desktop è accessibile tramite la visualizzazione dedicata “TMDL View”, attivabile nelle impostazioni: vai su File > Options and settings > Options > Preview features spunta la voce TMDL View.
Struttura TMDL
L’immagine affianco è la rappresentazione come file TMDL dei metadata di un modello semantico che possono essere ispezionati trascinando e rilasciando la cartella o il singolo elemento (tramite Drag and Drop) nel canvas della TMDL View.
Come verificabile questa struttura è modulare e testuale. La sintassi snella favorisce l’editing diretto da parte dello sviluppatore.
Cartelle e file .tmdl organizzati in:
- Calculation groups: contiene le definizioni dei calculation group nel modello
- Cultures: contiene le impostazioni linguistiche disponibili
- Expressions: contiene definizioni di parametri e variabili
- Measures: contiene le espressioni DAX nel modello
- Perspectives: contiene le visualizzazioni dedicate per diversi scenari
- Relationships: contiene tutte le relazioni tra le tabelle con dettaglio su cardinalità e verso
- Roles: contiene i ruoli con le relative autorizzazioni (RLS)
- Tables: per ciascuna tabella del modello la definizione completa dei suoi campi e delle sue proprietà con:
- modalità di Storage
- codice M di definizione di
- connessione/modifica alla sorgente dati (quando previsto)
- identificatore univoco dell’elemento (lineageTag)
I metadata sono raccolti e organizzati in modo che si possa avere nell’editor o un singolo elemento (misura X) o suoi raggruppamenti logici (ad esempio l’insieme delle misure), oppure l’intero modello semantico, al servizio di scopi quali:
- creazione/ispezione/modifica puntale (del singolo elemento)
- creazione/ispezione/modifica massiccia (bulk)
Questi file testuali sono leggibili e interpretabili da un essere umano quanto da un programma. Questo aspetto è molto importante perché permette di integrare strumenti di AI generativa per affiancare lo sviluppatore in modo produttivo. Quindi LLM quali GitHub Copilot dentro VS Code o Copilot per Power BI potrebbero:
- generare delle descrizioni a decorazione delle misure
- assistere lo sviluppatore nella generazione del codice DAX
Esempio per poter ispezionare/creare/modificare le proprietà dell’intero modello semantico in rappresentazione TMDL, è sufficiente trascinare nel canvas il Semantic Model.
Vantaggi Pincipali
Esperienza di sviluppo avanzata. L’editor TMDL in Power BI Desktop supporta:
- Evidenziazione semantica, aumenta la leggibilità e comprensione del codice tramite colori specifici in base al significato che quella parte di codice evidenziato ricopre.
- Trova e trova-e-sostituisci, utile per ispezionare gli elementi o per modifiche massicce/puntuali.
Supponiamo di aver decorato con delle annotazioni di stato le misure, esempio WIP sta per WorkInProgress, in questo modo potremmo tracciare tutte le misure che non hanno ancora superato la verifica da parte degli Stakeholder.
- Multi-edit, tenendo premuto il tasto ALT e spostando il mouse nel punto desiderato e facendo click è possibile avere più cursori attivi contemporaneamente. In questo modo assegnare un aggregatore di default per molteplici colonne numeriche è questione di un attimo.
Un altro esempio utile è quando si vuole applicare il dynamic format a più misure, un modo comodo per farlo e sfruttare l’editor TMDL per apportare la modifica a più misure contemporaneamente, sveltendo notevolmente lo sviluppo
- Autocompletamento e scorciatoie da tastiera accelerano lo scripting, riducendo anche possibili errori.
Supponiamo di voler nascondere una colonna, potremmo A) utilizzare l’interfaccia grafica (GUI) oppure B) modificare lo script TMDL di quell’elemento. In questo caso cominciando a scrivere “ishi” vediamo l’autocompletamento attivarsi e suggerire la proprietà voluta, premendo SHIFT, verrà inserita correttamente.
Ora, volendo rendere definitiva la modifica possiamo utilizzare una funzione specifica Preview che permette di aggiungere un altro importate vantaggio alla pila: Controllo, visibilità delle modifiche e versionamento.
Infatti, prima di rendere effettive le modifiche possiamo verificarne l’impatto cliccando su Preview, e se soddisfatti possiamo apportarle al modello semantico cliccando su Apply.
- Visualizzare e Modificare inline il codice M senza aprire Power Query. Ad esempio, aggiungere una colonna ad una tabella in import è relativamente facile in TMDL View modificando inline lo script relativo al codice M (Sales Amount).
Limitazioni e Considerazioni sul TMDL
Le modifiche nei modelli tramite l’interfaccia utente non vengono automaticamente aggiornate nei TMDL scripts, il che può portare a conflitti se si esegue nuovamente lo script.
L’editor sebbene utile e avanzato, al momento non fornisce supporto per l’assistenza al codice o il controllo della sintassi per DAX, Power Query, ma unicamente per la sintassi TMDL.
Scopri tutte le nostre soluzioni Power BI
Al tuo fianco dalla consulenza alla formazione a soluzioni di data visualization.
Visualitics Team
Questo articolo è stato scritto e redatto da uno dei nostri consulenti.
Condividi ora sui tuoi canali social o via email: