Power BI Developer – para que serve o TMDL?

O Power BI Developer Mode encontra-se a alguns meses em preview, sendo que permite a edição dos ficheiros de Power BI através de um editor de texto assim como a integração com GIT permitindo utilizar capacidades de trabalho em paralelo de vários utilizadores.

Aquando do lançamento desta versão de desenvolvimento, foi anunciada o novo formato de definição dos modelos, o TMDL (Tabular Model Definition Language), sendo que no mês de fevereiro foi lançada a preview desta funcionalidade.

Mas o que é o TMDL e para que serve?

O TMDL é uma sintaxe de definição dos modelos para objetos tabulares, ou seja, é a linguagem na qual os modelos do Power BI, assim como outros modelos tabulares são guardados.

Quem tem feito utilização do Power BI Developer Mode verifica que o ficheiro model BIM apresenta um formato atualmente bastante mais simplificado do que anteriormente, isto é possível devido ao TMSL (Tabular Model Scripting Language), que é relativamente legível, mas ainda inclui algumas particularidades que podem dificultar a sua leitura ou escrita.

O TMDL traz uma componente de facilidade adicional uma vez que é baseado em texto e otimizado para a interação e legibilidade.

Seguindo o exemplo do formato PBIP (Power BI Project) o nosso modelo em vez de ser guardado num único ficheiro (formato BIM), está agora dividido por pasta e subpastas, uma por cada atributo do nosso modelo.

Vamos ver o exemplo abaixo:

Tabelas Power BI

Pasta ficheiro PBIP

Estrutura de pasta de dataset

Ficheiros da pasta tables

Como podemos ver por cada uma das tabelas presentes no nosso modelo é gerado um ficheiro correspondente às definições do mesmo, ou seja, onde nos aparece o código M as métricas DAX, as formatações e todas restantes características.

Vamos então um exemplo de como estes ficheiros podem ser editados num qualquer editor de texto.

Na imagem acima podemos verificar que temos no topo a identificação da tabela, e abaixo temos as várias medidas DAX que estão incluídas nesta tabela, vemos também no fim da imagem uma das colunas. Como é evidente a leitura é muito simples e além de notações especificas, mas que são também muito legíveis, não temos a utilização de qualquer carater especial para iniciar uma escrita de nova linha, a alteração de uma característica, ou qualquer, outra forma de codificação.

Neste outro exemplo apresentamos o código M da nossa tabela que podemos verificar agora se apresenta tal como no editor avançado do Power Query.

Se compararmos com o formato TMSL, é evidente a simplificação que este novo formato traz para a edição através de editor de texto:

Verifiquem que nesta última imagem temos a introdução de vários carateres especiais tais como:}, “, /,] entre outros que se não estiverem corretamente colocados vão originar erros.

Devemos ter em atenção que as práticas relativas ao PBIP são as mesmas:

  • Power BI Desktop não reconhece as alterações realizadas no editor de texto obrigando a abrir o PBIP para serem assumidas
  • Alterações de tabelas irão obrigar a um refresh (identificado mal se abre o PBI Desktop)
  • Edição de medidas DAX são reconhecidas sem necessidade de refresh
  • Nos casos em que vários utilizadores estão a trabalhar no mesmo PBIP, os utilizadores não devem trabalhar no mesmo objeto
  • As regras da linguagem M continuam a ser as mesmas (exemplo: case sensitive, identificação de campos de texto com #” “, …)
  • Não existe intellisense para M ou DAX
  • Entre outras

Caso queiram aprender mais sobre esta forma de editar os modelos no Power BI vejam os links abaixo para começarem a vossa viagem no mundo da edição no formato de texto.

https://powerbi.microsoft.com/en-my/blog/announcing-public-preview-of-the-tabular-model-definition-language-tmdl

https://learn.microsoft.com/pt-pt/analysis-services/tmdl/tmdl-overview?view=asallproducts-allversions

https://powerbi.microsoft.com/en-us/blog/deep-dive-into-power-bi-desktop-developer-mode-preview

https://learn.microsoft.com/en-us/analysis-services/tmdl/tmdl-how-to?view=asallproducts-allversions

https://learn.microsoft.com/en-us/analysis-services/tmsl/tabular-model-scripting-language-tmsl-reference?view=asallproducts-allversions

Deixe um comentário