Solucionado (ver solução)
Solucionado
(ver solução)
14
respostas

Dimensões Irregulares no Power BI

Eu tenho a minha tabela de pai-filho com as colunas de esquerda, direita e Nível. Como eu faço para o Power BI reconhecer essa hierarquia?

14 respostas

Olá, alguém poderia me ajudar?

Oi Daniel,

Não tenho conhecimento técnico em BI, mas achei esses artigos que podem te ajudar:

https://stoneridgesoftware.com/creating-hierarchies-in-power-bi/

https://docs.microsoft.com/pt-br/power-bi/desktop-inline-hierarchy-labels

Pedi para o time de produção enviar sua dúvida para um reply mais técnico, ok?

Desculpe não conseguir ajudar mais,

Abcs

Natan, infelizmente estes links não ajudam, eles só servem para dimensões regulares. Vou aguardar a resposta do time de produção.

Alguma posição do time de produção?

solução!

Daniel

Aqui irei tratar de coisas que não foram discutidas neste curso. Elas farão parte de um curso de Power BI avançado ainda em planejamento.

Mas, para não deixa-lo sem resposta, vai 3 maneira de fazer isto. Duas através dos dados e uma terceira dentro do próprio Power BI.

Seja o seguinte exemplo:

Arquivo FUNCIONARIO:

(TABELA 1 - Ver nos posts a seguir esta tabela)

Traduzindo para tabela teremos:

TABELA: Funcionario.

(TABELA 2 - Ver nos posts a seguir esta tabela)

Hierarquia

(TABELA 3 - Ver nos posts a seguir esta tabela)

No Curso de Power Bi não vimos este processo de trabalhar com hierarquias Pai-Filho.

O dado tem que chegar no Power Bi de forma hierárquica. Logo você deve proceder da seguinte maneira:

A) No Processo de ETL transformar o dado de Pai-Filho em hierárquico, ou seja:

Tabela Transformada dentro do DW.

(TABELA 4 - Ver nos posts a seguir esta tabela)

B) Construir um OLAP usando o Microsoft Analyiss Services. Lá é possível criar uma dimensão PAI-FILHO. No Analysis Service você irá determinar o nome dos níveis e de quantos níveis a transformação de PAI-FILHO para hierarquia terá.

Um exemplo é no vídeo:

C) Podemos efetuar transformações no POWER BI. Não é o mais indicado porque você está transferindo para a ferramenta de relatório a transformação do dado. Para mim o POWER BI deve apenas exibir a informação e não transforma-la.

Mas OK. E se eu quiser fazer isso? Transformar dentro do POWER BI?

a) Carregar a tabela PAI-FILHO para o Power BI b) Ir em Data View c) Crie uma nova coluna (New Column) d) Coloque como fórmula desta nova coluna usando a linguagem DAX (Não vista no nosso treinamento):

Path = PATH(Funcionario[Nome],Funcionario[Nome Chefe]).

Teria então:

(TABELA 5 - Ver nos posts a seguir esta tabela)

Depois ir criando coluna por coluna para cada nível:

Level 1 = PATHITEM(Funcionario[Path],1) Level 2 = PATHITEM(Funcionario[Path],2) Level 3 = PATHITEM(Funcionario[Path],3) Level 4 - PATHITEM(Funcionario[Path],4)

Terá então:

(TABELA 6 - Ver no post a seguir)

Com as colunas Nível 1, 2 3 e 4 você irá trabalhar os seus Dashboards.

Att

Victorino.

TABELA 1

FuncionarioNome Chefe Nome Chefe
1000 João1000João
1001 Pedro1000João
1002 Alberto1000João
1003 Márcia1001Pedro
1004 Júlia1001Pedro
1005 Juliana1003Márcia
1006 Carlos1003Márcia

TABELA 2

1000;João;1000;João
1000;João;1000;João
1003;Márcia;1001;Pedro
1004;Júlia;1001;Pedro
1005;Juliana;1003;Márcia
1006;Carlos;1003;Márcia
 
 

TABELA 3

1000 João
    1001 Pedro
        1003 Márcia
           1005 Juliana
           1006 Carlos
         1004 Júlia
     1002 Alberto
 

TABELA 4

Nivel1Nome N1Nivel 2Nome N2Nivel 3Nome N3Nivel 4Nome Nivel4
1000João1001Pedro1003Márcia1005Juliana
1000João 1001Pedro1003Márcia1006Carlos
1000João 1001Pedro1004Júlia  
1000João 1002Alberto    
1000João       

TABELA 5

FuncionarioNome   Chefe   Nome ChefePath
1000         João1000JoãoJoão
1001         Pedro1000JoãoJoão|Pedro
1002         Alberto1000JoãoJoão|Alberto
1003         Márcia1001PedroJoão|Pedro|Márcia
1004         Júlia1001PedroJoão|Pedro|Júlia
1005         Juliana1003MárciaJoão|Pedro|Márcia|Juliana
1006         Carlos1003MárciaJoão|Pedro|Márcia|Carlos

TABELA 6

FuncionarioNome Chefe Nome ChefePathNivel 1Nivel 2Nivel 3Nivel 4
1000 João1000JoãoJoãoJoão
1001 Pedro1000JoãoJoão|PedroJoãoPedro
1002 Alberto1000JoãoJoão|AlbertoJoãoAlberto
1003 Márcia1001PedroJoão|Pedro|MárciaJoãoPedroMárcia
1004 Júlia1001PedroJoão|Pedro|JúliaJoãoPedroJúlia
1005 Juliana1003MárciaJoão|Pedro|Márcia|JulianaJoãoPedroMárciaJuliana
1006 Carlos1003MárciaJoão|Pedro|Márcia|CarlosJoãoPedroMárciaCarlos

Perfeito, antes de fechar o tópico, poderia me esclarecer só mais uma ultima coisa, "Guy in a cube" e "Guru do Excel" falam muito de utilizar a linguagem M para obter dados do BI, enquanto aqui na Alura e muitos outros profissionais mais clássicos utilizam mais a metodologia do Microsoft Visual Studio (MVS)/SQL. Além das opções de "dimensão de alteração lenta" de histórico e fixo, quais são as vantagens que você Victorino Vila vê em utilizar MVS quando comparado com a linguagem "M", que ao meu ver é uma linguagem simples de se entender, devido à UI simplificada que o Power Query proporciona?

Daniel

Para mim como devemos proceder para a construção de um BI:

  • Modelagem
  • Construção de um Dw
  • ETL para deixar o dado pronto no DW
  • OLAP baseado no DW se necessário
  • Dashbords para visualizar o DW

No que diz respeito ao último tópico ferramentas de Dashboards devem apenas exibir os dados existentes no DW sem nenhuma, ou com pouca transformação. Porque?

Nas empresas o ETL é a regra de negócio e não deve ficar sobre a esfera de quem faz o relatório. Isso porque o usuário pode não consultar o dado apenas através do Power Bi mas podemos ter DWs sendo consumidos por Tableau, QLIK, ODBC direto pelo Excel, na mesma empresa, no mesmo DW, e o número a ser exebido deve ser o mesmo. Se eu uso uma linguagem como DAX ou M para transformar o dado na camada de exibição, o outro usuário, que usa outra ferramenta, ou repete o mesmo no seu relatório ou vai ver coisas diferentes. E então a regra de negócio definida pela empresa para um indicador fica inconsistênte.

Quand me merguntam sobre o que é melhor, linguagem X ou Y, eu sempre respondo que a melhor linguagem é aquela que você domina. Isso porque, de modo mais fácil ou mais difícil, todas oferecem a mesma coisa.

Para mim o certo é: Em que momento do processo de construção do Bi você vai usá-la. Se o M é restrito ao Power BI eu sou contra. Se o SQL está restrito a preparação do dado, fora da camada de exibição, e sim na preparação do dado para o DW sou a favor.

Estes forum citados por você, como o próprio nome diz em um deles, as vezes, querem transformar o Power Bi em um grande planilhão. Num Bi sério o que menos devemos ter são planilhões.

Imagina que você tenha um BI, lindo e pefeito, com milhares de Dashboards sendo construído pelo Power Bi e, dentro dele, centenas de funções de transformações em DAX ou M, associados aos Dashbords lendo de fontes de dados diretamente do operacional. E então seu usuári o diz: Power Bi tá caro. Quero usar agora o Pentharo Dashboard que é free. Ferrou !!! Você vai ter que refazer tudo.

Ai a pergunta: Porque as ferramentas de Dash (E isso não se resumo apenas ao Power BI mas as outras também tem estas funcionalidades) disponibilizam estas ferramentas de transformações dentro delas? Isso chama-se capitalismo. O fabricante que manter você fiel a ferramenta. Por isso ele incentiva a proceder desta maneira, programando dentro do Dash, e dificultando uma futura migração. Ou então pessoas ou grupos de programadores e formadores de opinião incentivam o uso de A ou B para manter sua influencia dentro do cliente ou até mesmo para manter seu emprego com medo do novo ou de um desafio.

Por isso sigo a metodologia. Os instrumentos para implementa-la utilizo aquele que melhor convém, no momento, ou restrito ao que o cliente disponibiliza para minhas consultorias. Apenas seguindo os passos que repito abaixo:

  • Modelagem;
  • Construção de um Dw;
  • ETL para deixar o dado pronto no DW;
  • OLAP baseado no DW se necessário;
  • Dashbords para visualizar o DW;

Um abraço

Victorino.

Victorino, muito obrigado, foi muito esclarecedor. Como a pergunta original era sobre dimensões irregulares, no PBI, marquei ela como resposta oficial, mas esse texto que redigiu é muito esclarecedor. Que tal eu refazer essa pergunta em um novo tópico para ficar mais fácil de outros estudantes da Alura encontrarem esse resposta se estiverem com alguma dúvida parecida?