Linguagem M - Artigo

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.

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.

Linguagem M - Figura 1

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.

Linguagem M - Figura 2

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.

Linguagem M - Figura 3

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.

Linguagem M - Figura 4

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.

Linguagem M - Figura 5

O nome da variável pode conter também caracteres especiais, conforme exemplo abaixo.

Linguagem M - Figura 6

 

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.

Linguagem M - Figura 7

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.

Linguagem M - Figura 8

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.

Linguagem M - Figura 9

 

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.

Linguagem M - Figura 10

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 (//)

Linguagem M - Figura 11

Ou em várias linhas entre barras e asteriscos (/* comentário */)

Linguagem M - Figura 12

 

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.

Linguagem M - Figura 13

Veja que na imagem acima temos praticamente todos os itens que foram citados no artigo:

  1. Os blocos let e in;
  2. Nomes das variáveis;
  3. Observer as hashtags e as aspas nos nomes das variáveis;
  4. As linhas terminando com vírgula;
  5. Funções;
  6. 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!

Compartilhe