M ou DAX? A pergunta que não quer calar

Qual é a principal diferença entre M e DAX? Essa é uma das perguntas que mais escuto nos treinamentos presenciais de Power BI e Self Service BI no Excel que ministro. E a questão normalmente vem acompanhada de outras perguntas.

Usar o M ou o DAX? Por que tem duas linguagens diferentes pra fazer a mesma coisa? Por que o M é tão diferente do DAX? Se você já passou por esse dilema, não se preocupe, você não está sozinho.

Neste artigo irei apresentar a principal diferença entre as duas linguagens, além de mostrar o porquê e quando utilizar cada uma delas.

DAX e M. As linguagens do Power BI (e do Excel)

A Linguagem M

M é a linguagem por trás do Editor de Consultas, presentes tanto no Power BI como no Excel. Na realidade, M é o nome informal dessa linguagem. O nome formal é Power Query Formula Language, mas própria Microsoft se refere apenas como M.

M é uma linguagem que compõe basicamente uma aplicação Mashup, isto é, capaz de reunir e transformar o conteúdo de uma ou várias fontes de dados.

A linguagem M é composta por uma estrutura passo a passo. Uma linha de código normalmente é uma etapa de transformação, e o resultado desta linha é usado na próxima linha (próximo passo de transformação). A estrutura é escrita em blocos (let e in) e mais alguns outros recursos da linguagem. Por causa dessa estrutura de blocos a linguagem M é muito mais familiar para os programadores, assemelhando-se a outras linguagens de programação.

A Linguagem DAX

DAX é uma abreviação de Data Analysis eXpression Language. Esta linguagem está presente tanto no Power BI, Power Pivot do Excel e no SQL Server Analysis Services Tabular.

DAX é uma linguagem de expressões onde a sua estrutura é construída através de funções que podem ser aninhadas umas as outras, muito similar as fórmulas do Excel. A semelhança é tanta que existem muitas funções em comum entre o Excel e o DAX. Mas não se engane, DAX é muito mais poderoso do que as fórmulas do Excel.

Por causa dessa semelhança, os usuários de Excel sentem-se muito confortáveis com a linguagem. O DAX não possui blocos de programação, mas sim a combinação de usos de funções, filtros e expressões.

Exemplos de Uso

Agora que já vimos o que é cada uma das linguagens, precisamos entender como elas podem ser usadas.

Linguagem M

A linguagem M é utilizada na etapa de transformação dos dados de um projeto de BI. Esta etapa pode envolver situações como criar colunas calculadas, mesclar dados entre duas tabelas, dividir valores separados por delimitador, ou converter dados pivotados em dados normalizados.

Linguagem DAX

Com a linguagem DAX podemos criar diversos cálculos para análises de dados. Por exemplo, calcular a receita acumulada no ano (YTD), ou a média móvel dos últimos 12 meses. No exemplo abaixo são criadas quatro medidas para cálculo da curva ABC.

O Grande Dilema

A grande dúvida entre utilizar a linguagem M ou a linguagem DAX geralmente começa quando precisamos criar uma coluna calculada. Normalmente a mesma coluna calculada pode ser criada tanto em DAX quanto em M.

E é daí que vem a questão que todos perguntam. Usar M ou DAX e qual é melhor?

A minha resposta sempre é “Depende”. As duas linguagens foram concebidas de formas independentes. Apesar de em muitas situações ser possível obter uma solução com ambas, cada uma tem o seu propósito.

Então, qual é melhor utilizar nas situações em que é possível fazer a mesma coisa com ambas? E a resposta de novo é “Depende”.

Se o que você estiver tentando fazer for parte do ETL (etapa de transformação e tratamento dos dados) o melhor é utilizar a linguagem M. Se for um parte de um cálculo de indicador ou análise (modelagem dos dados) o ideal é utilizar a linguagem DAX.

Vejamos quando utilizar cada uma delas de uma forma mais clara.

Uso da Linguagem DAX

DAX é um motor analítico presente tanto no SQL Server Analysis Services Tabular, no Power BI e Power Pivot do Excel. É a melhor linguagem para responder perguntas analíticas que suas respostas serão diferentes com base nos critérios de seleção no relatório (filtros).

Por exemplo, se você quer calcular a média de vendas dos últimos 12 meses. Agora imagina segmentar isso por categoria, depois por vendedor, por produto e assim por diante. É muito difícil calcular isso em M, porque você deve considerar todos os diferentes tipos de possibilidades. No entanto, se você usa um cálculo DAX, o mecanismo analítico do DAX cuida de todas as combinações diferentes selecionadas através dos Contextos de Filtro nos relatórios.

Uso da Linguagem M

M é o mecanismo de Transformação de Dados presentes no Editor de Consultas tanto no Power BI quanto no Excel. Você pode usar M para fazer qualquer preparação e transformação de dados antes de carregar isso em seu modelo.

Imagine por exemplo que você possui três tabelas: Produto, Categoria e SubCategoria. Ao invés de carregar as três tabelas no seu modelo de dados, é possível mesclar todas elas criando uma única tabela contendo as colunas das três tabelas.

Carregar as três tabelas no modelo e usar o DAX para relacioná-las uma com a outra significa consumir memória extra para algo que não é necessário. Com a linguagem M pode simplesmente combinar essas três tabelas entre si e depois utilizar a linguagem DAX para aplicar os cálculos analíticos.

Qual linguagem é importante aprender?

Se você deseja ser um desenvolvedor de B.I. a resposta é ambas!

A linguagem M será o seu idioma de ETL e a linguagem DAX será o seu idioma analítico. Haverá casos que uma das linguagens será utilizada mais do que a outra. No entanto, você precisará de uma boa compreensão de ambas para entender qual é o melhor para qual finalidade, e facilmente poder decidir qual usar no momento certo.

Agora é com Você.

Deixe o seu comentário, e diga-nos se já utiliza ambas as linguagens e qual a sua maior dificuldade em cada uma delas.

Se desejar receber mais artigos como esse no seu e-mail, ou notificações de vídeo-aulas e treinamentos, deixe o seu nome e e-mail na nossa newsletter. Ou acesse nosso site para ver nosso calendários de treinamentos: www.datab.com.br/treinamentos

By |2018-12-31T15:28:52+00:0031 julho 2018|Categories: Eventos|Tags: |0 Comments

Comente!

Informações de Contato

  • Av. Paulista, 171, Andar 4,
    Bela Vista, São Paulo/SP
    CEP 01311-904

  • 11 9 9255 8209
    11 9 8860 5054
  • comercial@datab.com.br
  • De Segunda à Sexta-feira
    Das 9:00 às 18:00

Posts recentes