Power BI DAX Eixo personalizado de data

clique para ampliar

Como criar um eixo de data, separado por semana, de forma que os itens não se agrupem, não se agreguem, pela data?

Meu cenário aqui é redes sociais, eu preciso ver as métricas de posts, por semana e por dia, porém em um mesmo dia vários posts são feitos e eu não posso agrupar todos eles no mesmo dia, preciso, de alguma forma, separar cada post mesmo eles estando no mesmo dia.

Inicialmente eu resolvi isso colocando um id pro post por dia, de forma que seria possível identificar se aquele era o post 1, ou 2, ou 3, ou 4, do dia. E aí vim com essa solução:

clique para ampliar

Nessa solução eu uso 3 campos no eixo, o de semana, a data em si e o identificador do post. Resolve, mas… e se eu quiser usar apenas 2 eixos (como solicitado pelo cliente)?

Pra isso precisei criar 2 colunas calculadas. Que chamei de EIXO e EIXO2.

eixo
eixo 2

Na EIXO, a coluna é do tipo TEXTO e não tem nada de mais nela. Na verdade essa coluna só vai servir pra ordenarmos a EIXO 2.

Na EIXO 2, a coluna é do tipo DATE, com formatação custom para dd.mm, e ela é ordenada por (sort by column) pela EIXO.

eixo 2

Dessa forma, utilizando a EIXO 2, foi possível atender exatamente a necessidade do cliente.

Então, se precisar criar um eixo customizado, não esqueça desses recursos.

Rápida retrospectiva de 2020

Já trabalho com análise de dados e construção de datamarts e reports há 10 anos, mas meu trabalho incluia, além da parte de dados, uma grande quantidade de tempo dedicado para automação, processos e projetos.

Em 2020, pouco antes do começo da pandemia, resolvi que focaria 100% do meu tempo em me especializar somente na parte de dados. Foi o que eu fiz. Comecei estudando, estudei muito. Esse ano foram 5 cursos, e mais um certificado Microsoft.

Cursos

  • Formação Microsoft Power BI, 14h, Raizzer.com, 05/2020
  • Formação BI Academy, 120h, Raizzer.com, 06/2020
  • Curso Express de Power BVI, 13h, Leo Karpinski, 07/2020
  • Analista de Dados Essensial, 21h, Vithor Silva, 07/2020
  • Introducing DAX Video Course, 3h, SQLBi.com, 10/2020

Certificados

Mudei de emprego, agora trabalho 100% do meu tempo com Power BI. Para 2021 o objetivo é me tornar referência em DAX.

Feliz ano novo e boas festas, com saúde para todos!

Bootcamp de Power BI Segunda Edição

Fala aí pessoal, beleza!? Não sumi não, hein, rs! Estou por aqui, trabalhando muito e com preguiça pra caramba de escrever no blog, mas já tenho algumas coisas preparadas, pra 2021 o foco vai ser somente DAX!

Enquanto 2021 não chega, vamos de #bootcampPowerBi segunda edição!

A primeira missão já está entregue e você pode conferir meu post sobre ela aqui: https://www.linkedin.com/feed/update/urn:li:activity:6741564296418910208/.

Tem um monte de curso fazendo bootcampo de Power BI. Esse que eu faço é o do Leonardo Karpinski e é muito legal de fazer, porque te desafia a aprender rápido, tem prazo de entrega curto e tudo mais, é tipo vida real.

Eu não posso dar detalhes do que foi solicitado, nem passar a base de dados, por questão de propriedade intelectual do Leo, mas abaixo o dash que criei em Power BI pra entregar a missão#01. Ainda faltam mais duas missões e depois vem a segunda fase, que será em grupo!

Passei!!! Fui aprovado no Exam DA-100: Analyzing Data with Microsoft Power BI

Fala pessoal!!! Notícia boa, passei no exame! Depois de estudar por vários meses, fiz o DA-100: Analyzing Data with Microsoft Power BI nesse sábado agora, dia 14/11/2020 e passei!

Minha opinião

Sinceramente, achei a prova bastante cansativa, com enunciados bastante longos. Dá pra ver que os enunciados são propositalmente feitos para que diferentes respostas, ou conceitos de respostas, possam ser extraídos da mesma pergunta. Isso acontece também nas perguntas “cenário”, que são aquelas perguntas que depois de responder você não consegue voltar e revisar.

Falando nisso, minha prova foi dividida em 48 questões iniciais, sem conexão uma com a outra. Depois de terminar as 48 você dava um YES lá pra passar pra próxima fase da prova, que consistia de perguntas com cenários, ou seja, vinha um cenário gigante e mais 4 perguntas pra cada cenário. No total eu respondi 3 cenários, com 4 perguntas cada.

Falando a respeito de revisar perguntas, eu não revisei nenhuma pergunta, isso porque eu preferi optar pela estratégia do “se eu acho que é, então é”, e deu certo, consegui 912 pontos em 1000, quase fechei a prova. Portanto, se você já cansou de estudar e domina bem os conceitos e conhece Power BI, confie em você mesmo.

A prova tem 3 horas de duração. Eu terminei faltando ainda 56 min pra terminar, então tem tempo mais que de sobra.

Comportamento durante a prova

Fiz a prova de casa mesmo, tem essa opção. Pra conseguir fazer a prova de casa você tem que seguir uma série de regras, fiquem atentos a isso se quiserem fazer a prova de casa.

Uma das partes mais difíceis da prova é justamente essa. Você está o tempo todo, 100% do tempo, sendo filmado. Sua camera e microfone precisam estar abertos e você não pode beber água, não pode sair da cadeira, nem cobrir sua boca com as mãos, nem falar nada… Isso pra mim foi muito difícil, porque eu toda hora fico coçando nariz, orelha, olho, kkkkkkkk, então precisei me conter bastante.

Pontos importantes que caíram na prova

É muito difícil de lembrar as perguntas, porque são muitas, são longas e também porque contratualmente quem faz a prova não pode falar o que caiu, mas todos os pontos que estudei caíram e tudo que estava na prova eu tinha estudado.

De qualquer forma, eu recomendo estar bastante preparado para questões de:

  • RLS – Row Level Security, todo processo de RLS, desde a criação e utilização do modelo estático e dinâmico, concessão de permissões no PBI Service, etc.
  • Modelagem de Dados, todos os pontos, caiu muita coisa de Modelagem. Pode estudar bem tudo de “Model the Data”
  • Permissões de Workspace, caiu bastante coisa de quem pode fazer oque aonde, nível de acesso, etc
  • Muito data profiling
  • Algumas perguntinhas bem difíceis sobre AI Visuals (key influencers, decomposition tree)

Conclusão

Pessoal, pra todos que estejam interessados em tirar essa certificação, tudo que está aqui no Blog é relevante. Principalmente tudo que está escrito, os links e referências que coloquei aqui https://powerbixpert.com/power-bi-da-100-certification/.

Espero que meus posts possam ajudar vocês. Em todos eles tem as referências que usei e, na dúvida, usem o material oficial da Microsoft.

Ah, e o blog continua, claro, daqui pra frente deve vir bastante coisa de Power BI por aí.

Power BI Data Lineage

Como vocês sabem, eu estou fazendo uns testes pela internet afora pra testar meus conhecimentos em Power BI e vou aproveitar pra escrever um pouco sobre algumas perguntas que me chamaram atenção.

Link para os testes: https://www.learndatainsights.com/power-bi-quiz-da-100/power-bi-quiz-da-100-deploy-deliverables/

A Pergunta

A pergunta foi a seguinte: “Quais dessas ações podem ser realizadas usando a view de Data Lineage do Power BI?”. Resposta na imagem abaixo.

Data Lineage é uma visão no Power BI Service (app.powerbi.com) que mostra o relacionamento entre todos itens de uma Workspace. A imagem abaixo é da minha própria workspace, numa conta FREE (apesar da Microsoft dizer no site deles de que Data Lineage requer PRO).

Pra ativar essa visão é só ir na workspace e mudar ali no lugar de view pra Lineage (view, ali do lado do search, na direita da imagem).

Minhas considerações

A primeira opção fala da notificação dos contatos das pessoas relacionadas nas listas de contato de workspaces com reports que usem algum dataset compartilhado como fonte de dados. Isso quer dizer que, caso seja necessário fazer algum ajuste num datasource, seja ele um dataset compartilhado ou um datasource original (como um SQL, por exemplo) é possível sim notificar todas as pessoas impactadas em todas workspaces que usam esse datasource, conforme ilustra imagem abaixo.

  • Notificar contatos não estará disponível se o dataset no qual você está realizando a análise de impacto estiver localizado em uma workspace clássica.
  • Métricas de uso não são compatíveis com workspaces clássicas ou personal workspaces.

A segunda opção fala de “ver o número e lista de tabelas contidas dentro de um dataset ou dataflow”. Sim, também é possível. Nesse caso basta selecionar o dataset desejado, clicando no nome do dataset, e daí serão exibidas as tabelas e o número delas. Como na imagem abaixo, temos 8 tabelas.

Terceira opção, open report, simples, só clicar no report e clicar em open ou clicar na setinha.

Quarta opção, navegar pra settings de um dataset de qualquer dataset, que também é possível. No Data Lineage os datasets, na verdade quase todos artefatos presentes num Data Lineage, tem esse dropdown menu de opções. Veja na imagem abaixo.

Referências

https://docs.microsoft.com/en-us/power-bi/collaborate-share/service-data-lineage
https://docs.microsoft.com/en-us/power-bi/collaborate-share/service-dataset-impact-analysis

Power BI Query Reference

Como vocês sabem, eu estou fazendo uns testes pela internet afora pra testar meus conhecimentos em Power BI e vou aproveitar pra escrever um pouco sobre algumas perguntas que me chamaram atenção.

Link para os testes: https://www.learndatainsights.com/power-bi-quiz-da-100/power-bi-da100-exam-quiz-prepare-the-data-da-100/

A Pergunta

A pergunta foi a seguinte: “separar uma query em várias usando REFERENCE melhora a performance?”. Resposta na imagem abaixo.

Minhas considerações

Essa pergunta é super simples e básica, mas requer atenção. Quando você fala de REFERENCE ou DUPLICATE de uma query você tem alguns pontos a considerar.

DUPLICATE vai aumentar o tamanho do seu modelo, REFERENCE por outro lado, não. No entanto, REFERENCE não vai deixar seu modelo mais performático, pelo contrário.

O que acontece quando você usa Referencia é o seguinte (segundo a Microsoft, ver link nas referencias): “Quando uma consulta referencia uma segunda consulta, é como se as etapas da segunda consulta fossem combinadas e executadas antes das etapas da primeira consulta“.

Na prática, é o seguinte, imagina que você tem a Query1 e criar 3 outras queries usando a Query1 como Referencia. Seu modelo vai ficar como na imagem abaixo:

Diagram showing the Query Dependencies view, displaying queries described in the previous paragraph.

Quando você der Refresh (imagina um modelo Import) o que vai acontecer é que a Query1 vai rodar 3 vezes… Uma vez ela roda e depois roda a Query2, depois roda ela denovo e na sequencia a Query3, depois roda a Query1 novamente e depois a Query4. A imagem abaixo ilustra esse comportamento.

Diagram showing a modified version of the Query Dependencies view, displaying Query 2, Query 3, and Query 4.

Ponto importante sobre Reference: você não pode usar resultados da query referenciada na query original, ou seja, resultados da Query2 não podem ser usados na Query1, porque isso criaria um problema de “circular reference”.

Referências

https://docs.microsoft.com/en-us/power-bi/guidance/power-query-referenced-queries
https://radacad.com/reference-vs-duplicate-in-power-bi-power-query-back-to-basics

Power BI Edit Queries Parameters

Como vocês sabem, eu estou fazendo uns testes pela internet afora pra testar meus conhecimentos em Power BI e vou aproveitar pra escrever um pouco sobre algumas perguntas que me chamaram atenção.

Link para os testes: https://www.learndatainsights.com/power-bi-quiz-da-100/power-bi-da100-exam-quiz-prepare-the-data-da-100/

A Pergunta

A pergunta foi a seguinte: “quais são alguns dos casos para utilização de parâmetros dentro do Edit Queries?”. Resposta na imagem abaixo.

Minhas considerações

De cara descartamos a primeira opção, porque ela diz que “usados dentro das variáveis do DAX”, e parâmetros do Edit Queries (Power Query) não são usados com DAX, e sim com M.

A segunda opção é um dos casos de uso mais comuns de parâmetros, pra definir uma string de conexão junto ao datasource, explico melhor aqui.

Terceira opção é uma pegadinha, porque existe parâmetros para what-if, mas não são os mesmos parâmetros que fala no enunciado da questão, que diz “edit queries parameters”.

Na quarta opção temos de que Edit Query Parameters, ou parâmetros do Power Query, são utilizados para filtrar dados do datasource e esse é realmente um dos principais usos de parâmetros do Power Query, criar valores, listas, para que possamos filtrar de uma forma mais organizada nossos dados.

Quinta opção, que eu errei em não marcar, diz que podemos substituir valores conforme especificados pelos parâmetros. O conceito geral para esse tipo de parâmetro, segundo a Microsoft, é “A parameter serves as a way to easily store and manage a value that can be reused”, ou seja, uma forma fácil de armazenar algum valor que pode ser reutilizado.

Sobre utilizar parâmetros pra dar “replace values” eu nunca tinha utilizado nem parado pra pensar muito nisso, mas faz todo sentindo. Inclusive, no Power Query, sempre que você tem uma telinha como a da imagem abaixo, perceba que você tem sempre essa opção de selecionar o dropdown, nesse caso “ABC”, e selecionar se quer manter o ABC Text ou se quer usar Parâmetros.

Se a tela acima não estiver aparecendo pra você dessa mesma forma, com esse dropdown, é porque você precisa ativar o checkbox da imagem abaixo.

Referências

https://docs.microsoft.com/en-us/power-query/power-query-query-parameters
https://powerbixpert.com/2020/07/06/power-bi-query-parameters/

Power BI Assume Referential Integrity

Como vocês sabem, eu estou fazendo uns testes pela internet afora pra testar meus conhecimentos em Power BI e vou aproveitar pra escrever um pouco sobre algumas perguntas que me chamaram atenção.

Link para os testes: https://www.udemy.com/course/exam-70-778-microsoft-power-bi-practice-test-2019/

A Pergunta

A pergunta foi a seguinte: “usando Get Data, o que faz a opção de marcar “Assume Referential Integrity”?”.

Minhas considerações

Eu já estudei bastante essa parte de modelagem do Power BI, mas na hora de responder essa pergunta eu fiquei em dúvida entre a última e a terceira opção. Antes de explicar esse ponto da minha dúvida, deixa eu repassar os outros pontos que, pra mim, são mais óbvios.

Screenshot of an Edit Relationship dialog to select Assume referential integrity.
switch, checkbox, caixinha, pra marcar “assume referential integrity”
  • Primeira opção diz que as queries rodam mais eficiente no data source, sim, é verdade, porque você passa de OUTER JOIN pra INNER JOIN, então você garante que tudo que está num lado será encontrado no outro (pensa em duas tabelas se relacionando).
  • Segunda opção diz não é suportado em fontes de dados que nao sejam SQL Server e Azure SQL. Errado. Qualquer base que rode como Direct Query pode usar essa função de Assume Referential Integrity.
  • Quarta opção, sim, só funciona com Direct Query.
  • Quinta opção, já expliquei sobre isso no ponto um.
  • Terceira e Sexta opção, vou comentar mais pra frente.

Sobre o ponto 6, que diz “quando houver problemas com a Referential Integrity nos dados isso irá resultar em query error”. O que na verdade acontece é você até pode habilitar Referential Integrity num relacionamento onde ela não existe, e isso não vai dar nenhum erro. Na verdade o relacionamento vai continuar funcionando, porém os dados exibidos serão afetados, ou seja, haverá inconsistência nos dados apresentados no seu relatório. Por exemplo, considere o relacionamento da imagem abaixo.

Screenshot of Orders table and Depots table.

Só pra ser claro, em casos como o da imagem acima, você não deve habilitar Referential Integrity, mas caso ela esteja habilitada, o que vai acontecer é:

  • Se você tiver um visual mostrando apenas a soma de QTY da tabela ORDERS, o resultado vai ser 40.
  • Agora, se você adicionar nesse visual um campo da tabela DEPOTS, daí esse resultado vai mudar pra 30. Isso porque a linha de 10 que é NULL é removida do relacionamento pela Referential Integrity.

Sobre o ponto 3, que diz “num relacionamento one-to-many (1:N), o lado MANY não pode ter blanks e todos valores no lado ONE tem que ter um valor correspondente no lado MANY”. Isso está certíssimo, na verdade essa é a definição conceitual de Referential Integrity, ou seja, ao ativar/habilitar a Referential Integrity você na verdade está dizendo pro Power BI assim “pode ativar, eu sei que todos meus registros do lado ONE tem valores no lado MANY”.

Referências

https://docs.microsoft.com/en-us/power-bi/connect-data/desktop-assume-referential-integrity

Power BI Analytics Pane

Um blog muito bom e que tem um post muito legal pra quem está se preparando pra Certificação DA-100 é o blog do Dirceu, aqui, https://www.dirceuresende.com/blog/minhas-impressoes-e-material-de-estudo-da-prova-de-certificacao-da-100-analyzing-data-with-microsoft-power-bi-beta/.

Nesse post ele fala de alguns pontos que acredita ser relevante estudar para prova. Esse é um deles.

Analytics Pane Forecasting

O que é analytics pane? Isso aqui:

analytics pane

Nele é possível criar tudo isso aí que você está vendo na imagem. Perceba que no gráfico de barras já tem um monte de linha vertical colorida, são linhas que criei usando o Analytics Pane.

Um ponto em específico é o Forecast dentro do Analytics Pane. Ele só funciona:

  • Para gráficos de linha
  • Quando o gráfico tem um eixo de data

Perceba que na imagem anterior eu estou com o gráfico de linha selecionado, com um campo data no eixo de categoria (eixo x) e utilizando Forecast.

O lugar que achei com a melhor explicação, em texto, pra como usar um forecasting no Power BI foi esse site aqui, recomendo leitura: https://towardsdatascience.com/forecasting-in-power-bi-4cc0b3568443. Mas resumidamente, o que ele fala é:

  • Forecast length; é o tamanho da sua linha de Forecast, pode ser em points, dia, mês, ano, etc.
  • Ignore last; vai ignorar os últimos registros de points ou dias, mês, ano que você informar. Dessa forma o forecast acaba “entrando dentro” do seu gráfico, mais no final eu mostro isso.
  • Confidence interval; é a confiança que você quer no seu forecast, quanto maior, mais preciso, mas não adianta você ter uma base de dados meia boca e colocar 99% que mesmo dando o resultado, não quer dizer que aquele resultado vai acontecer.
  • Seasonality; sazonalidade é o ciclo de repetição dos seus dados. Então se você tem data points suficientes pra um ano e sabe que suas curvas se repetem anualmente, você pode definir aqui os data points que representam um ano no seu modelo de dados.

O grande lance é a questão de Seasonality e o que representam “points”. Basicamente points são os data points do seu visual. Veja a imagem abaixo que fica mais fácil de entender.

Veja que a tabela na esquerda tem 16 linhas, e na direita eu tenho um Line chart com seasonality de 17 points. Com isso, fica aparecendo ali em cima no gráfico um “X”, se eu colocar o mouse ali ele vai me dizer que “high seasonality”, ou seja, eu tenho mais points informados na minha seasonality do que eu tenho no meu modelo de dados, dessa forma fica impossível pro Power BI calcular os 17 points que estou pedindo e ele provavelmente deve estar calculando apenas até o máximo de 16 points que tenho.

Sobre o “ignore last”, o resultado vai ficar assim, com o forecast começando antes do final do gráfico, isso porque falei pra ele ignorar meus 5 últimos pontos.

Essa sombra que fica é como se fosse o desvio possível dos dados, ou seja, de acordo com os dados que tenho e com a configuração do forecast que fiz, minha curva pode ir mais pra cima ou mais pra baixo, de acordo com essa área cinza.

Referências

Power BI Data Points

Como vocês sabem, eu estou fazendo uns testes pela internet afora pra testar meus conhecimentos em Power BI e vou aproveitar pra escrever um pouco sobre algumas perguntas que me chamaram atenção.

Link para os testes: https://www.learndatainsights.com/power-bi-quiz-da-100/power-bi-quiz-da-100-visualize-the-data/

A Pergunta

A pergunta foi a seguinte: “existem alguns casos em que o Power BI não mostre necessariamente todos os data points em um visual?”. A resposta está na imagem abaixo.

Minhas considerações

Eu não sabia a resposta correta, mas tentei usa dedução. É claro que mostrar todos data points nem sempre é possível, então eu sabia que a resposta “no – power bi sempre mostra todos data points” era errada, mas isso ainda me deixava com 3 opções pra escolher.

Na verdade, olhando agora, a resposta é obviamente a quarta, porque não faz sentido nenhum ele mostrar automaticamente todos data points… Com isso em mente só me restaria a resposta certa.

O comportamento padrão do Power BI é tentar otimizar o máximo a performance dos relatórios, portanto, mostrar todos Data Points pode impactar nesse objetivo, uma das estratégias para aumentar performance é justamente reduzindo a quantidade de data points.

Referências

https://docs.microsoft.com/en-us/power-bi/visuals/power-bi-data-points

Power BI Column Quality

Como vocês sabem, eu estou fazendo uns testes pela internet afora pra testar meus conhecimentos em Power BI e vou aproveitar pra escrever um pouco sobre algumas perguntas que me chamaram atenção.

Link para os testes: https://www.learndatainsights.com/power-bi-quiz-da-100/power-bi-da100-exam-quiz-prepare-the-data-da-100/

A Pergunta

A pergunta foi a seguinte: “você quer garantir que não existam registros duplicados na sua dimensão. Como você pode fazer isso?”. A resposta está na imagem abaixo.

Minhas considerações

Essa é uma pergunta é meio que uma pegadinha. A segunda resposta, que eu marquei e está errada diz o seguinte “usar o column quality no query editor pra ver o número de duplicates na coluna”.

Como eu sei que column quality faz parte do conjunto de recursos de data quality do Power BI, já fui logo e marquei. Só que acontece que, esse conjunto de data quality, que eles chamam de Data Profiling, tem 3 recursos: column quality, column distributio e column profile.

O que vai realmente ajudar a identificar se a coluna tem, ou não, registros duplicados é a opção de Column Distribution, como na imagem abaixo.

column distribution

Column quality, que foi uma das opções que eu incorretamente marquei, serve na verdade para exibir a qualidade dos dados da coluna, mostrar sem tem valores em branco ou algum erro nas células daquela coluna.

column quality

Referências

https://docs.microsoft.com/en-us/power-query/data-profiling-tools

Power BI Apps Notification

Como vocês sabem, eu estou fazendo uns testes pela internet afora pra testar meus conhecimentos em Power BI e vou aproveitar pra escrever um pouco sobre algumas perguntas que me chamaram atenção.

Link para os testes: https://www.learndatainsights.com/power-bi-quiz-da-100/power-bi-quiz-da-100-deploy-deliverables/

A Pergunta

A pergunta foi a seguinte: “você quer que todos seus usuários sejam notificados sempre que uma app for publicada ou atualizada. Como fazer isso no Power BI?”. A resposta está na imagem abaixo.

Minhas considerações

Eu já li bastante a respeito de Apps, mas não tinha parado pra pensar nesse ponto de notificação… Com reports é diferente, as pessoas recebem notificações (se você marcar isso) quando compartilhado o report com elas, já com Apps isso não acontece, e essa é a pegadinha… O Power BI tem tantas opções e você imagina que quando uma coisa existe pra Reports, ele também vai servir pra Apps ou Dashboards, e no geral é assim, mas nem sempre, como é o caso dessa questão em específico.

Com Apps o que você pode fazer é dar acesso pra organização inteira e permitir um monte de coisas, como:

  • Permitir que os usuários compartilhem a app e os datasets da app
  • Permitir que façam copias da app
  • Dar permissão de build nos datasets da app
  • Instalar a app automaticamente no Power BI Service dos destinatários

Mas realmente, notificar os usuários por email, essa opção não existe…

App permissions

Referências

https://docs.microsoft.com/en-us/power-bi/collaborate-share/service-create-distribute-apps