Linguagem M: A linguagem da Power Query no Power BI
A Linguagem M é uma poderosa linguagem que fica por trás da Power Query e que é responsável por todo o processo de transformação realizado no Power BI e no suplemento Power Query do Excel.
Não é necessário aprender esta linguagem a fundo. Mas entender um pouco do contexto e das estruturas dos códigos gerados lhe ajudará a ganhar mais produtividade nas criações.
Teoricamente a parte gráfica do Editor de Consultas lhe dará boa parte das possibilidades para transformar seus dados. O Editor de Consultas é o Power Query dentro do Power BI. É por ali que a rotina de ETL é realizada. ETL significa: Extract, Transform and Load, ou seja, Extrair, Transformar e Carregar.
É isto que o Editor de Consultas faz e por trás de cada ação realizada, é gerado um código em Linguagem M. Para muitos esta linguagem pode parecer incompreensível ou até mesmo diferente. Neste artigo explicaremos um pouco sobre ela e ao final dele você terá conhecimentos básicos necessários para entender sua lógica e estrutura.
Uma vez que você entenda esta sintaxe/estrutura, tudo se tornará mais simples e será possível efetuar algumas ações no código que aumentará sua produtividade. Os códigos da Linguagem M são acessados pelo Editor Avançado dentro do Editor de Consultas, abaixo você verá mais.
O que é Linguagem M
M é um nome informal para a Linguagem de fórmulas do Power Query (Power Query Formula Language). Como o nome formal é muito longo, resumiram em M. Mas porque M? Vem de Data Mashup, numa tradução livre, Mistura de Dados. Alguns também dizem que é para Data Modeling, Modelagem de Dados.
A linguagem M, na verdade, é mais poderosa e compreensiva do que a interface gráfica do Editor de Consultas. Prova disso é que há sempre atualizações na parte gráfica, ela está em evolução, mas tudo que vem melhorando nesta interface já existe há anos na Linguagem M.
E ainda falta muitas atualizações para a interface gráfica adquirir todas as funcionalidades já existentes no código. Provavelmente não conseguirão colocar todas. Daí uma das razões para se aprender mais sobre M e continuar lendo este artigo até o fim. Sabendo mais você não precisa esperar a próxima atualização da Microsoft para desenvolver seu trabalho.
Estrutura (Sintaxe) da Linguagem M
A sintaxe da linguagem M é bem simples. Sempre é composta de dois blocos de programação: LET e IN. Veja abaixo os blocos num exemplo simples.
1 2 3 4 |
let y=9 in y |
LET e IN são palavras reservadas e só podem ser utilizadas no início destes dois blocos. Outra informação extremamente importante na Linguagem M é que ela é sensível à letras maiúscula e minúsculas. Assim é diferente se você colocar y ou Y.
LET: o bloco onde é definido todas as variáveis
IN: os resultados. Tudo que se coloca neste bloco resultam em saídas para sua consulta. Pensando assim este bloco deveria se chamar OUT não IN. Mas é IN, rsrs.
Basicamente, a consulta acima utilizada como exemplo, define uma variável com o nome “y”. É atribuído o valor de 9 a ela, com isto a consulta retornará mostrando 9 como resultado.
Vamos fazer um teste agora e rodar esta consulta e confirmar o que estamos dizendo aqui. De fato todo este artigo é prático, você consegue testar tudo que estou falando abaixo a medida que vai lendo.
Abra o Power BI Desktop, vá em Obter Dados e escolha Consulta Nula. Veja abaixo.
Será aberto o Editor de Consultas. Na faixa de opções Exibição clique em Editor Avançado. Na tela que será aberta digite o código mencionado acima. Feito isso clique em Concluído.
Veja que após o procedimento a consulta retornará o valor 9.
Tanto o let quanto o in devem estar em letras minúsculas, bem como o nome da variável deve ser a mesma nos dois blocos (y).
Quebras das linhas de códigos
As linhas de código no M continuam se você não utilizar o caractere correspondente para fazer a quebra desta linha de código. No exemplo abaixo você vê que mesmo utilizando enter para mudar a linha na tela, esta linha no código não mudou.
Para quebrar a linha de código efetivamente deve-se usa a vírgula (,). Todas as linhas necessitam de uma vírgula para terminar, para a última linha do bloco não é necessário.
Notem que no bloco in, sempre será colocado a última variável, antes era a y agora a z.
Nomes das variáveis
Os nomes das variáveis na Linguagem M podem ser uma única palavra ou mais de uma palavra com espaços entre elas. No caso de ter algum nome que contenha espaço este nome deve ficar entre aspas (“) e também deve contar uma hashtag no início. Veja abaixo como seria.
O nome da variável pode conter também caracteres especiais, conforme exemplo abaixo.
Cada etapa do Power Query
O Power Query é feito por transformações passo a passo. Cada transformação ocorre, geralmente, em um passo. Estas etapas são gravadas e é possível acompanhar e ver cada uma delas no painel que fica no lado direito da tela. É o painel de Etapas Aplicadas.
Veja abaixo o exemplo de cada uma das etapas feitas em Linguagem M foram armazenadas no histórico.
Sempre a última etapa na lista de Etapas Aplicadas é o que consta no bloco IN.
Formatos na Linguagem M
Existem diversas formas diferentes de formatos e declarações na Power Query, no exemplo abaixo demostramos a forma de se declarar a data.
Para ajudar, disponibilizamos abaixo uma tabela contendo todos os formatos e declarações da Linguagem M na Power Query. Sempre que precisar de referências retorne nesta página e consulte esta tabela quantas vezes necessitar.
Trabalhando com Funções em Power Query
A Linguagem M é bastante funcional, é possível fazer quase tudo com ela. Para isto será necessário, em alguns casos, “chamar” funções.
Trabalhar com funções em Power Query é um pouco diferente de se trabalhar com as funções DAX e as fórmulas de excel. As diferenças não são grandes, a principal delas é que as letras maiúsculas e minúsculas afetam a efetividade das mesmas. Por exemplo, escrever tudo maiúsculo pode causar erro e não retornar o resultado esperado.
Veja o exemplo abaixo.
Esta função retorna o ano da variável “Data”. Observem que a função Date.Year tem duas letras maiúsculas, as que iniciam cada trecho, as outras são minúsculas. É assim que ela deve ser escrita, caso contrário pode apresentar erro no resultado.
Como listar as funções do Power Query no Power BI é um artigo aqui do blog que irá te ensinar como saber todas as funções disponíveis.
Comentários no código da Linguagem M
Como qualquer outra linguagem de programação, a M pode ser comentada também, o que pode ser feito de duas formas.
Em uma única linha de comentário, para isso utilize duas barras (//)
Ou em várias linhas entre barras e asteriscos (/* comentário */)
Um exemplo da vida real
Finalmente, após você receber estas noções básicas sobre a Linguagem M, apresentamos um exemplo, de um trabalho feito pela uaiSmart para analytics de Redes Sociais.
Veja que na imagem acima temos praticamente todos os itens que foram citados no artigo:
- Os blocos let e in;
- Nomes das variáveis;
- Observer as hashtags e as aspas nos nomes das variáveis;
- As linhas terminando com vírgula;
- Funções;
- Formatos;
Há outros diversos elementos que não falamos neste artigo, mas com certeza é ou será assunto de outros artigos aqui.
Recomendamos a leitura do artigo “Acrescentar Consultas vs Mesclar Consultas do Power BI” que fala mais sobre a Power Query.
Compartilhe este conteúdo nas suas redes sociais (utilize os botões abaixo) e ajude seus colegas a compreender melhor sobre o assunto.
Tem dúvidas? Nos pergunte! Utilize a sessão de comentários deste artigo logo abaixo.
Até a próxima!