Skip to main content
03 fevereiro 2021
Follow Us

Power BI lento? Ops! Acho que precisamos de conversar

O artigo de hoje é para quem já usa o Power BI mas está com problemas de lentidão.

  • O seu relatório demora a carregar?
  • O seu modelo é ineficiente e causa insatisfação com o desempenho do relatório?
  • O tamanho do arquivo do modelo é muito grande e sobrecarrega os recursos da sua organização?
  • Os seus gráficos estão mais lentos que o normal?
  • Passado algum tempo, recebe uma mensagem de erro, em que não foi possível carregar um determinado visual?

O seu relatório pode estar visualmente maravilhoso, contando histórias de forma esplêndida. Mas se o seu modelo tiver várias tabelas, relacionamentos complexos, cálculos complexos, vários recursos visuais e dados redundantes, existe um potencial de desempenho de relatório ruim. E a saber: o baixo desempenho de um relatório leva a uma experiência negativa do usuário.

Esses são alguns indícios de que o seu relatório precisa ser revisto, principalmente na questão OTIMIZAÇÃO DE DESEMPENHO. A otimização de desempenho, também conhecida como ajuste de desempenho, envolve fazer alterações no estado atual do modelo de dados para que seja executado com mais eficiência. Essencialmente, quando o seu modelo de dados é otimizado, ele tem um desempenho melhor.

Você pode descobrir que o seu relatório funciona bem em ambientes de teste e desenvolvimento, mas quando implantado para produção para consumo mais amplo, surgem problemas de desempenho. Da perspetiva de um usuário de relatório, o baixo desempenho é caracterizado por páginas de relatório que demoram mais para carregar e visuais demoram mais para atualizar. Esse baixo desempenho resulta numa experiência negativa do usuário.

Como analista de dados, gastará aproximadamente 90% do seu tempo a trabalhar com os seus dados, e nove em cada dez vezes, o desempenho ruim é resultado direto de um modelo de dados ruim, expressões de análise de dados ruins (DAX) ou a combinação dos dois.

Existem um conjunto de fatores que podem estar a levar o seu relatório a “performar” de forma ineficiente. Mas a boa notícia é que o Power BI oferece uma variedade de ferramentas e recursos para analisar e otimizar o desempenho dos seus modelos de dados. Como por exemplo:

Performance Analyser

Podemos iniciar o processo de otimização usando o analisador de desempenho e outras ferramentas para revisar o desempenho de medidas, relacionamentos e visuais e, em seguida, fazer melhorias com base nos resultados dessas análises.

5.0 Otimização do modelo

O analisador de desempenho é um bom ponto de partida para identificarmos os gargalos do nosso relatório, pois conseguimos visualizar quais os tempos (em milissegundos) de processamento de cada elemento visual, inclusivamente, a DAX.

6.0 Otimização do modelo

Os resultados do teste de análise ajudam a entender o comportamento do seu modelo de dados e identificar os elementos que precisa otimizar. Pode comparar a duração de cada elemento no relatório e identificar os elementos que têm uma longa duração. Deve concentrar-se nesses elementos e investigar por que demoram tanto para carregar na página do relatório.

Para analisar as suas consultas com mais detalhes, pode usar o DAX Studio, que é uma ferramenta de código aberto gratuita fornecida por outro serviço.

Se identificar os recursos visuais como o gargalo que leva ao baixo desempenho, deverá encontrar uma maneira de melhorar o desempenho com impacto mínimo na experiência do usuário.

Considere o número de recursos visuais na página do relatório; menos recursos visuais significa melhor desempenho. Pergunte a si mesmo se um visual é realmente necessário e se ele agrega valor ao usuário final. Se a resposta for não, deve remover esse visual. Em vez de usar vários recursos visuais na página, considere outras maneiras de fornecer detalhes adicionais, como páginas de drill-through (também conhecidas por páginas de pormenorização) e dicas de ferramentas (as tooltips) da página de relatório.

Examine o número de campos em cada visual. Quanto mais recursos visuais tiver no relatório, maior será a possibilidade de problemas de desempenho. Além disso, quanto mais recursos visuais, mais o relatório pode parecer lotado e perder a clareza.

O limite superior para recursos visuais é de 100 campos (medidas ou colunas), portanto, um visual com mais de 100 campos demorará para carregar. Pergunte a si mesmo se realmente precisa de todos esses dados num visual. Pode descobrir que é possível reduzir o número de campos que usa atualmente.

Tipo de variáveis

  • Garantir que os tipos de dados corretos sejam usados;

As transformações a seguir são feitas no Power Query Editor (o editor de consulta do Power BI responsável pelo processo de "higienização dos dados", que ingloba extração, transformação e carregamento dos dados, o famoso ETL).

7.0 Otimização do modelo

Utilizar somente o que precisa

  • Princípio da parcimónia: deixar no modelo somente as informações que são imprescindíveis. Na prática, isso implica em excluir colunas e linhas desnecessárias;

Uma dica interessante para ser usada quando temos uma tabela com muitas colunas e desejamos selecionar algumas, e consequentemente, remover as demais, é utilizar a opção 'Choose Columns' no friso Home.

9.0 Otimização do modelo

Dessa forma, é possível marcar as colunas desejadas na caixinha. Ao passo que, as que não são marcadas, são removidas.

8.0 Otimização do modelo

  • Evitar valores repetidos

10.0 Otimização do modelo

Ou, alternativamente, pode clicar com o botão direito do rato na coluna desejada e selecionar a opção 'Remove Duplicates'.

11.0 Otimização do modelo

  • Substituir colunas numéricas por medidas;

Ao invés de trazer campos com cálculos, opte por realizá-los diretamente dentro do Power BI com as funções DAX. Por exemplo, se em seu ficheiro do Excel possui os campos 'preço unitário' e 'quantidade', não é necessário trazer o campo 'faturação'. Conseguimos usar a DAX da seguinte forma para realizar tal cálculo:

Faturação *= SUMX('Factos', 'Factos'[Preço unitário]*'Factos'[Unidades])

  • Reduzir cardinalidades;

Uma das vantagens do Power BI é que não temos de reunir os dados em uma única tabela. Em vez disso, podemos utilizar múltiplas tabelas, de várias origens e definir a relação entre elas. 

O termo cardinalidade é usado para nos referirmos à forma como mapeamos a relação entre uma tabela e outra.

Além disso, em termos de performance, é sempre preferível utilizarmos o modelo Star Schema.

12.0 Otimização do modelo

Geralmente, recomendamos minimizar a utilização de relações bidirecionais. Elas podem ter um impacto negativo no desempenho das consultas do modelo e, possivalmente, proporcionar experiências confusas para os utilizadores do relatório.

Definir relações exatas entre os seus dados permite-lhe criar cálculos complexos em múltiplos elementos dos dados. 

Uso de variáveis

Convém usar variáveis para escrever cálculos menos complexos e mais eficientes. Também é importante revisar as expressões DAX que está a usar no seu conjunto de dados. Algumas delas são demasiadas complexas e exigem maior capacidade de processamento. No entanto, há cada vez mais novas funções e mais aprimoradas.

13.0 Otimização do modelo

Algumas expressões envolvem o uso de muitas funções aninhadas e a reutilização da lógica de expressão. Essas expressões demoram mais para serem processadas e são difíceis de ler e, portanto, de solucionar problemas. Se usar variáveis, poderá economizar tempo de processamento de consulta. Essa mudança é um passo na direção certa para otimizar o desempenho de um modelo de dados.

O uso de variáveis no seu modelo de dados oferece as seguintes vantagens:

  • Desempenho aprimorado - as variáveis podem tornar as medidas mais eficientes porque eliminam a necessidade do Power BI de avaliar a mesma expressão várias vezes. Você pode obter os mesmos resultados numa consulta em cerca de metade do tempo de processamento original.
  • Legibilidade aprimorada - as variáveis têm nomes curtos e auto descritivos e são usadas no lugar de uma expressão ambígua com várias palavras. Pode achar mais fácil ler e entender as fórmulas quando variáveis são usadas.
  • Depuração simplificada - Pode usar variáveis para depurar uma fórmula e testar expressões, o que pode ser útil durante a solução de problemas.
  • Complexidade reduzida - as variáveis não requerem o uso das funções EARLIER ou EARLIEST DAX, que são difíceis de entender. Essas funções foram necessárias antes da introdução das variáveis e foram escritas em expressões complexas que introduziram novos contextos de filtro. Agora pode usar variáveis em vez dessas funções, pode escrever menos fórmulas complexas.

Metadados

Metadados são informações sobre os dados, são dados dos dados. Os metadados do Power BI contêm informações sobre o seu modelo de dados, como o nome, tipo de dados e formato de cada uma das colunas, o esquema do banco de dados, o design do relatório, quando o arquivo foi modificado pela última vez, as taxas de atualização de dados e muito mais.

Ao carregar dados no Power BI Desktop, é uma boa prática analisar os metadados correspondentes para que possa identificar quaisquer inconsistências no conjunto de dados e normalizar os dados antes de começar a criar relatórios. A execução da análise nos seus metadados melhorará o desempenho do modelo de dados porque, ao analisar os seus metadados, identificará colunas desnecessárias, erros em seus dados, tipos de dados incorretos, o volume de dados sendo carregados (grandes conjuntos de dados, incluindo dados transacionais ou históricos, levarão mais para carregar) e muito mais.

Pode usar o Power Query Editor no Power BI Desktop para examinar as colunas, linhas e valores dos dados brutos. Pode então usar as ferramentas disponíveis, como as destacadas na captura da tela a seguir, para fazer as alterações necessárias.

1.0 Otimização do modelo

14.0 Otimização do modelo

As opções do Power Query incluem:

  • Colunas desnecessárias - avalia a necessidade de cada coluna. Se uma ou mais colunas não forem usadas no relatório e, portanto, forem desnecessárias, deve removê-las usando a opção Remover Colunas na guia Página Inicial.
  • Linhas desnecessárias - verifica as primeiras linhas no conjunto de dados para ver se estão vazias ou se contêm dados desnecessários nos seus relatórios; em caso afirmativo, ele remove essas linhas usando a opção Remover Linhas Superiores na guia Início.
  • Tipo de dados - avalia os tipos de dados da coluna para garantir que cada um esteja correto. Se identificar um tipo de dados incorreto, altere-o selecionando a coluna, selecionando Tipo de dados na guiaTransformar e, em seguida, selecionando o tipo de dados correto na lista.
  • Nomes de consulta - examina os nomes de consulta (tabela) no painel Consultas . Assim como fez para nomes de cabeçalho de coluna, deve alterar nomes de consulta incomuns ou inúteis para nomes que são mais óbvios ou nomes com os quais o usuário está mais familiarizado. Pode renomear uma consulta clicando com o botão direito do mouse nessa consulta, selecionando Renomear editando o nome conforme necessário e pressionando Enter.
  • Detalhes da coluna - o Power Query Editor possui as três opções de visualização de dados a seguir que pode usar para analisar os metadados associados às suas colunas. Pode encontrar essas opções na guia Exibir, conforme ilustrado na captura de tela a seguir.
  • Qualidade da coluna - determina qual a percentagem de itens na coluna que são válidos, têm erros ou estão vazios. Se a percentagem válida não for 100, deve investigar o motivo, corrigir os erros e preencher os valores vazios.
  • Distribuição de coluna - identifica quantos itens distintos possui e quantos são exclusivos. Essas informações são úteis quando deseja identificar a cardinalidade de uma coluna. Investigará isso mais tarde neste módulo.
  • Perfil da coluna - mostra mais estatísticas para a coluna e um gráfico que mostra a distribuição dos itens exclusivos.

2.0 Otimização do modelo

Distribuição das colunas e Redução de cardinalidade

Examinar mais de perto a distribuição das colunas e reduzir a cardinalidade dos seus relacionamentos são passos importantíssimos, pois deixa o modelo muito mais otimizado.

 15.0 Otimização do modelo

É uma prática recomendada não importar colunas de dados que não precisa. Para evitar a exclusão de colunas no Power Query Editor, deve tentar lidar com elas na origem ao carregar dados no Power BI Desktop. No entanto, se for impossível remover colunas redundantes da consulta de origem ou se os dados já foram importados no seu estado bruto, sempre pode usar o Power Query Editor para examinar cada coluna. Pergunte a si mesmo se realmente precisa de cada coluna e tente identificar o benefício que cada uma adiciona ao seu modelo de dados. Se achar que uma coluna não agrega valor, deve removê-la de seu modelo de dados. Por exemplo, suponha que tem uma coluna de ID com milhares de linhas exclusivas. Sabe que não usará essa coluna específica num relacionamento, portanto, ela não será usada num relatório.

Ao remover uma coluna desnecessária, reduzirá o tamanho do modelo de dados que, por sua vez, resulta num tamanho de arquivo menor e tempo de atualização mais rápido. Além disso, como o conjunto de dados contém apenas dados relevantes, o desempenho geral do relatório será melhorado.

Já a cardinalidade é um termo usado para descrever a exclusividade dos valores numa coluna. A cardinalidade também é usada no contexto das relações entre duas tabelas, onde descreve a direção da relação.

Identifique os níveis de cardinalidade nas colunas

Anteriormente, quando usava o Power Query Editor para analisar os metadados, a opção Distribuição de coluna no guia Exibir exibia estatísticas sobre quantos itens distintos e exclusivos estavam em cada coluna nos dados.

  • Contagem de valores distintos - O número total de valores diferentes encontrados numa determinada coluna.
  • Contagem de valores únicos - O número total de valores que aparecem apenas uma vez numa determinada coluna.

 4.0 Otimização do modelo

Uma coluna com muitos valores repetidos no seu intervalo (a contagem distinta é baixa) terá um nível baixo de cardinalidade. Por outro lado, uma coluna que possui muitos valores exclusivos no seu intervalo (a contagem exclusiva é alta) terá um alto nível de cardinalidade.

A cardinalidade mais baixa leva a um desempenho mais otimizado, então pode ser necessário reduzir o número de colunas cardinalmente altas no seu conjunto de dados.

Cardinalidade dos relacionamentos

Ao importar várias tabelas, é possível que faça algumas análises usando dados de todas essas tabelas. Os relacionamentos entre essas tabelas são necessários para calcular os resultados com precisão e exibir as informações corretas em seus relatórios. O Power BI Desktop ajuda a tornar mais fácil a criação dessas relações. Na verdade, na maioria dos casos, não precisará fazer nada, o recurso de deteção automática faz isso. No entanto, ocasionalmente pode ser necessário criar relacionamentos ou fazer alterações num relacionamento. Independentemente disso, é importante entender os relacionamentos no Power BI Desktop e como criá-los e editá-los.

Ao criar ou editar um relacionamento, pode configurar opções adicionais. Por padrão, o Power BI Desktop configura automaticamente opções adicionais com base na sua melhor estimativa, que pode ser diferente para cada relacionamento com base nos dados nas colunas.

Os relacionamentos podem ter cardinalidade diferente. A cardinalidade é a direção do relacionamento e cada relacionamento do modelo deve ser definido com um tipo de cardinalidade. As opções de cardinalidade no Power BI são:

  • Muitos para um (*: 1) - Este relacionamento é o tipo padrão mais comum. Isso significa que a coluna numa tabela pode ter mais de uma instância de um valor e a outra tabela relacionada, geralmente conhecida como tabela de pesquisa, tem apenas uma instância de um valor.
  • Um para um (1: 1) - Neste tipo de relacionamento, a coluna numa tabela tem apenas uma instância de um valor específico e a outra tabela relacionada tem apenas uma instância de um valor específico.
  • Um para muitos (1: *) - Neste tipo de relacionamento, a coluna numa tabela tem apenas uma instância de um valor específico e a outra tabela relacionada pode ter mais de uma instância de um valor.
  • Muitos para muitos (:) - Com modelos compostos, pode estabelecer um relacionamento muitos para muitos entre as tabelas, o que remove os requisitos para valores exclusivos nas tabelas. Ele também remove soluções alternativas anteriores, como a introdução de novas tabelas apenas para estabelecer relacionamentos.

Durante o desenvolvimento, criará e editará relacionamentos no seu modelo, então, quando estiver construindo novos relacionamentos no seu modelo, independentemente da cardinalidade que escolheu, sempre se certifique de que ambas as colunas que está a usar para participar de um relacionamento estejam a compartilhar o mesmo tipo de dados. O Seu modelo nunca funcionará se tentar construir um relacionamento entre duas colunas, onde uma coluna tem um tipo de dados de texto e outra coluna tem um tipo de dados inteiro.

Recurso de Data/hora automática

Outro item a considerar ao otimizar o desempenho é a opção Data / hora automática no Power BI Desktop. Por padrão, esse recurso é habilitado globalmente, o que significa que o Power BI Desktop cria automaticamente uma tabela calculada oculta para cada coluna de data, desde que certas condições sejam atendidas. As novas tabelas ocultas são adicionais às tabelas que já possui no seu conjunto de dados.

A opção Data / hora automática permite trabalhar com inteligência de tempo ao filtrar, agrupar e pesquisar períodos de tempo do calendário. Recomendamos que mantenha a opção Data / hora automática ativada apenas quando trabalhar com períodos de tempo do calendário e quando tiver requisitos de modelo simplistas em relação ao tempo.

Se a sua fonte de dados já define uma tabela de dimensão de data, essa tabela deve ser usada para definir o tempo de forma consistente na sua organização e deve desabilitar a opção Data / hora automática global. Desativar esta opção pode diminuir o tamanho do seu modelo de dados e reduzir o tempo de atualização.

Pode habilitar / desabilitar esta opção de data / hora automática globalmente para que ela se aplique a todos os seus arquivos do Power BI Desktop, ou pode habilitar / desabilitar a opção do arquivo atual para que se aplique apenas a um arquivo individual.

Para habilitar / desabilitar esta opção Data / hora automática , vá para Arquivo > Opções e configurações > Opções e selecione a página Global ou Arquivo atual . Em qualquer página, selecione Carregamento de dados e, na seção Inteligência de dados temporais, marque ou desmarque a caixa de seleção conforme necessário.

3.0 Otimização do modelo

DirectQuery

Se calhar, é o caso estudar a possibilidade de usar uma técnica diferente para armazenamento dos dados na sua empresa, através do DirectQuery. É um recurso com algumas peculiaridades, no entanto, poderá obter excelente resultados.

16.0 Otimização do modelo

Uma técnica eficaz para reduzir o tamanho do modelo é definir a propriedade Modo de armazenamento para tabelas maiores de tipo de fato como DirectQuery . Essa abordagem de design pode funcionar bem em conjunto com técnicas usadas para resumir os seus dados. Por exemplo, os dados de vendas resumidos podem ser usados para obter relatórios de "resumo" de alto desempenho. Uma página de drill-through pode ser criada para exibir vendas granulares para um contexto de filtro específico (e estreito), exibindo todos os pedidos de vendas no contexto. A página de drill-through incluiria imagens baseadas numa tabela DirectQuery para recuperar os dados do pedido de venda (detalhes do pedido de venda).

DirectQuery é uma maneira de obter dados no Power BI Desktop. O método DirectQuery envolve a conexão direta aos dados no seu repositório de origem de dentro do Power BI Desktop. É uma alternativa para importar dados para o Power BI Desktop.

Quando usa o método DirectQuery, a experiência geral do usuário depende muito do desempenho da fonte de dados subjacente. Os tempos de resposta de consulta lentos levarão a uma experiência do usuário negativa e, no pior dos cenários, o tempo de espera das consultas pode-se esgotar. Além disso, o número de usuários que estão a abrir os relatórios a qualquer momento afetará a carga que é colocada na fonte de dados. Por exemplo, se o seu relatório tiver 20 recursos visuais e 10 pessoas estiverem usando o relatório, 200 consultas ou mais existirão na fonte de dados porque cada visual emitirá uma ou mais consultas.

É uma prática recomendada importar dados para o Power BI Desktop, mas para a sua organização pode precisar usar o modo de conectividade de dados DirectQuery por um dos seguintes motivos (benefícios do DirectQuery):

  • É adequado nos casos em que os dados mudam com frequência e são necessários relatórios quase em tempo real;
  • Ele pode lidar com grandes dados sem a necessidade de pré-agregação;
  • Ele aplica restrições de soberania de dados para cumprir os requisitos legais;
  • Ele pode ser usado com uma fonte de dados multidimensional que contém medidas como SAP Business Warehouse (BW).

Se a sua organização precisa usar DirectQuery, deve entender claramente o seu comportamento no Power BI Desktop e estar ciente de suas limitações. Estará então numa boa posição para realizar ações para otimizar o modelo DirectQuery o máximo possível.

Uso de agregações

Finalmente, pense na possibilidade de usar agregações. Isso poderá reduzir significativamente o tamanho do modelo de dados. Há casos em que conseguimos reduzir cerca de 50%. Consequentemente, isso ajuda a melhorar o processo de atualização quando ele está demasiado lento.

17.0 Otimização do modelo

Ao agregar dados, está a resumir esses dados e a apresentá-los numa granulação (nível) mais elevada. Por exemplo, pode resumir todos os dados de vendas e agrupá-los por data, cliente, produto e assim sucessivamente. O processo de agregação reduz os tamanhos de tabela no modelo de dados, permitindo-lhe focar-se em dados importantes e melhorar o desempenho da consulta.

A sua organização poderá decidir utilizar agregações nos modelos de dados pelas seguintes razões:

  • Se estiver a lidar com uma grande quantidade de dados (macrodados), as agregações farão com que a consulta tenha um melhor desempenho e irão ajudá-lo a analisar e revelar as informações destes dados grandes. Os dados agregados são colocados em cache, pelo que utilizam uma fração dos recursos necessários para dados detalhados.
  • Se as atualizações forem lentas, as agregações vão ajudar a acelerar o processo de atualização. Um tamanho em cache mais pequeno reduz o tempo de atualização, pelo que os dados chegam aos utilizadores mais rapidamente. Em vez de atualizar milhões de linhas, iria atualizar uma menor quantidade de dados.
  • Se tiver um grande modelo de dados, as agregações podem ajudar a reduzir e manter o tamanho do seu modelo.
  • Se previr o crescimento futuro do seu modelo de dados, poderá utilizar as agregações para preparar proactivamente o futuro do seu modelo de dados ao diminuir a probabilidade de ocorrência de problemas de desempenho e atualização, bem como de consultas em geral.

Em resumo

18.0 Otimização do modelo

O processo de projetar um modelo de dados para desempenho pode ser entediante e frequentemente subestimado. No entanto, se resolver problemas de desempenho durante o desenvolvimento, terá um modelo de dados Power BI robusto que retornará um melhor desempenho de relatórios e uma experiência de usuário mais positiva. É uma forma de pensar no problema, antes mesmo que ele bata à porta.

19.0 Otimização do modelo

Por fim, também poderá manter um desempenho otimizado. Conforme a sua organização cresce, o tamanho dos seus dados aumenta e o seu modelo de dados se torna mais complexo. Ao otimizar o seu modelo de dados antecipadamente, você pode mitigar o impacto negativo que esse crescimento pode ter no desempenho de seu modelo de dados.

Um modelo de dados de tamanho menor usa menos recursos (memória) e atinge atualização de dados, cálculos e processamento dos elementos visuais em relatórios mais rápidos. Portanto, o processo de otimização de desempenho envolve minimizar o tamanho do modelo de dados e fazer o uso mais eficiente dos dados no modelo, que inclui:

  • Uso de Performance Analyzer para examinar o desempenho do elemento do relatório
  • Aplicar data / hora automática no Power BI Desktop
  • Técnicas de redução de dados para modelagem de importação
  • Orientação do modelo DirectQuery no Power BI Desktop
  • Uso de agregações no Power BI Desktop

REFERÊNCIAS

Use Performance Analyzer para examinar o desempenho do elemento de relatório

Técnicas de redução de dados para modelagem de importação

Aplicar data / hora automática no Power BI Desktop

Utilizar agregações no Power BI Desktop


Assine a nossa newsletter e receba o nosso conteúdo diretamente no seu email