Técnicas de redução de dados para Importar modelação

Este artigo destina-se a modeladores de dados do Power BI Desktop que desenvolvem modelos de Importação. Ele descreve diferentes técnicas para ajudar a reduzir os dados carregados em modelos de importação.

Os modelos de importação são carregados com dados compactados e otimizados e, em seguida, armazenados em disco pelo mecanismo de armazenamento VertiPaq. Quando os dados de origem são carregados na memória, é possível ver uma compressão de 10x e, portanto, é razoável esperar que 10 GB de dados de origem possam ser compactados para cerca de 1 GB de tamanho. Além disso, quando persiste no disco, uma redução extra de 20% pode ser alcançada.

Apesar das eficiências alcançadas pelo mecanismo de armazenamento VertiPaq, é importante que você se esforce para minimizar os dados que devem ser carregados em seus modelos. É especialmente verdadeiro para modelos grandes, ou modelos que você prevê que crescerão para se tornarem grandes ao longo do tempo. Quatro razões imperiosas incluem:

  • Tamanhos de modelo maiores podem não ser suportados pela sua capacidade. A capacidade compartilhada pode hospedar modelos de até 1 GB de tamanho, enquanto as capacidades Premium podem hospedar modelos maiores, dependendo do SKU. Para obter mais informações, leia o artigo Suporte do Power BI Premium para modelos semânticos grandes. (Os modelos semânticos eram anteriormente conhecidos como conjuntos de dados.)
  • Tamanhos de modelo menores reduzem a contenção por recursos de capacidade, em particular memória. Ele permite que mais modelos sejam carregados simultaneamente por longos períodos de tempo, resultando em menores taxas de despejo.
  • Modelos menores alcançam uma atualização de dados mais rápida, resultando em relatórios de latência mais baixos, maior taxa de transferência de atualização do modelo semântico e menos pressão sobre o sistema de origem e os recursos de capacidade.
  • Contagens menores de linhas de tabela podem resultar em avaliações de cálculo mais rápidas, o que pode oferecer um melhor desempenho geral da consulta.

Existem oito técnicas diferentes de redução de dados abordadas neste artigo. Estas técnicas incluem:

Remover colunas desnecessárias

As colunas da tabela modelo servem duas finalidades principais:

  • Relatórios, para obter designs de relatório que filtrem, agrupem e resuma dados de modelo apropriados
  • Estrutura do modelo, suportando relações de modelo, cálculos de modelo, funções de segurança e até mesmo formatação de cor de dados

As colunas que não servem a esses propósitos provavelmente podem ser removidas. A remoção de colunas é conhecida como filtragem vertical.

Recomendamos que você projete modelos com exatamente o número certo de colunas com base nos requisitos de relatório conhecidos. Seus requisitos podem mudar com o tempo, mas lembre-se de que é mais fácil adicionar colunas mais tarde do que removê-las mais tarde. A remoção de colunas pode quebrar relatórios ou a estrutura do modelo.

Remover linhas desnecessárias

As tabelas modelo devem ser carregadas com o menor número possível de linhas. Isso pode ser conseguido carregando conjuntos de linhas filtrados em tabelas modelo por dois motivos diferentes: para filtrar por entidade ou por tempo. A remoção de linhas é conhecida como filtragem horizontal.

A filtragem por entidade envolve o carregamento de um subconjunto de dados de origem no modelo. Por exemplo, em vez de carregar fatos de vendas para todas as regiões de vendas, carregue apenas fatos para uma única região. Essa abordagem de design resultará em muitos modelos menores e também pode eliminar a necessidade de definir segurança em nível de linha (mas exigirá a concessão de permissões específicas de modelo semântico no serviço do Power BI e a criação de relatórios "duplicados" que se conectam a cada modelo semântico). Pode tirar partido da utilização de parâmetros do Power Query e de ficheiros de Modelo do Power BI para simplificar a gestão e a publicação. Para obter mais informações, leia a entrada de blog Aprofundamento em Parâmetros de Consulta e Modelos do Power BI

A filtragem por tempo envolve limitar a quantidade de histórico de dados carregados em tabelas de tipo de fato (e limitar as linhas de data carregadas nas tabelas de data do modelo). Sugerimos que você não carregue automaticamente todo o histórico disponível, a menos que seja um requisito de relatório conhecido. É útil compreender que os filtros do Power Query baseados no tempo podem ser parametrizados e até definidos para utilizar períodos de tempo relativos (relativos à data de atualização, por exemplo, os últimos cinco anos). Além disso, tenha em mente que as alterações retrospetivas nos filtros de tempo não quebrarão os relatórios; isso apenas resultará em menos (ou mais) histórico de dados disponíveis nos relatórios.

Agrupar por e resumir

Talvez a técnica mais eficaz para reduzir o tamanho de um modelo seja carregar dados pré-resumidos. Esta técnica pode ser usada para aumentar o grão de tabelas de fatos. Há um compromisso distinto, no entanto, resultando na perda de detalhes.

Por exemplo, uma tabela de fatos de vendas de origem armazena uma linha por linha de pedido. Uma redução significativa de dados pode ser alcançada resumindo todas as métricas de vendas, agrupando por data, cliente e produto. Considere-se, então, que uma redução de dados ainda mais significativa poderia ser alcançada agrupando por data a nível mensal. Poderia alcançar uma possível redução de 99% no tamanho do modelo, mas a geração de relatórios no nível do dia — ou no nível do pedido individual — não é mais possível. Decidir resumir dados de tipo de fato sempre envolve compensações. A compensação pode ser atenuada por um design de modelo misto, e essa opção é descrita na técnica Alternar para o modo misto.

Otimizar tipos de dados de coluna

O mecanismo de armazenamento VertiPaq usa estruturas de dados separadas para cada coluna. Por design, essas estruturas de dados alcançam as mais altas otimizações para dados de colunas numéricas, que usam codificação de valor. Texto e outros dados não numéricos, no entanto, usam codificação de hash. Ele requer que o mecanismo de armazenamento atribua um identificador numérico a cada valor de texto exclusivo contido na coluna. É o identificador numérico, então, que é armazenado na estrutura de dados, exigindo uma pesquisa de hash durante o armazenamento e a consulta.

Em alguns casos específicos, você pode converter dados de texto de origem em valores numéricos. Por exemplo, um número de ordem de venda pode ser consistentemente precedido por um valor de texto (por exemplo, "SO123456"). O prefixo pode ser removido e o valor do número da ordem convertido em número inteiro. Para tabelas grandes, isso pode resultar em redução significativa de dados, especialmente quando a coluna contém valores de cardinalidade exclusivos ou altos.

Neste exemplo, recomendamos que você defina a coluna Default Summarization property como "Do Not Summarize". Ajuda a minimizar o resumo inadequado dos valores do número de ordem.

Preferência por colunas personalizadas

O mecanismo de armazenamento VertiPaq armazena colunas calculadas do modelo (definidas no DAX) como as colunas normais originadas pelo Power Query. No entanto, as estruturas de dados são armazenadas de forma ligeiramente diferente e, normalmente, conseguem uma compressão menos eficiente. Além disso, são criadas assim que todas as tabelas do Power Query são carregadas, o que pode resultar em tempos de atualização de dados alargados. É, portanto, menos eficiente adicionar colunas de tabela como colunas calculadas do que colunas computadas do Power Query (definidas em M).

A preferência deve ser a criação de colunas personalizadas no Power Query. Quando a origem é um banco de dados, você pode obter maior eficiência de carga de duas maneiras. O cálculo pode ser definido na instrução SQL (usando a linguagem de consulta nativa do provedor) ou pode ser materializado como uma coluna na fonte de dados.

No entanto, em alguns casos, as colunas calculadas pelo modelo podem ser a melhor escolha. Pode ser o caso quando a fórmula envolve a avaliação de medidas ou requer funcionalidade de modelagem específica suportada apenas em funções DAX. Para obter informações sobre um desses exemplos, consulte o artigo Noções básicas sobre funções para hierarquias pai-filho no DAX .

Desativar a carga de consulta do Power Query

As consultas do Power Query destinadas a suportar a integração de dados com outras consultas não devem ser carregadas no modelo. Para evitar carregar a consulta no modelo, certifique-se de desativar a carga de consulta nessas instâncias.

Screenshot of Power Query showing

Desativar data/hora automática

O Power BI Desktop inclui uma opção chamada Data/hora automática. Quando habilitado, ele cria uma tabela automática de data/hora oculta para colunas de data para dar suporte aos autores de relatórios ao configurar filtros, agrupamentos e ações de detalhamento para períodos de tempo do calendário. As tabelas ocultas são, na verdade, tabelas calculadas que aumentarão o tamanho do modelo. Para obter orientação sobre como usar essa opção, consulte o artigo Orientação automática de data/hora no Power BI Desktop .

Mudar para o modo Misto

No Power BI Desktop, um design de modo Misto produz um modelo Composto. Essencialmente, ele permite que você determine o modo de armazenamento para cada tabela. Portanto, cada tabela pode ter sua propriedade Modo de Armazenamento definida como Import ou DirectQuery (Dual é outra opção).

Uma técnica eficaz para reduzir o tamanho do modelo consiste em definir a propriedade Modo de Armazenamento para tabelas de tipo de factos maiores para DirectQuery. Considere que essa abordagem de design poderia funcionar bem em conjunto com o Grupo e resumir a técnica introduzida anteriormente. Por exemplo, dados de vendas resumidos podem ser usados para obter relatórios "resumidos" de alto desempenho. Uma página de detalhamento pode exibir vendas granulares para contexto de filtro específico (e estreito), exibindo todas as ordens de venda no contexto. Neste exemplo, a página de detalhamento incluiria elementos visuais baseados em uma tabela DirectQuery para recuperar os dados da ordem do cliente.

Há, no entanto, muitas implicações de segurança e desempenho relacionadas aos modelos compostos. Para obter mais informações, leia o artigo Usar modelos compostos no Power BI Desktop .

Para obter mais informações sobre o design do modelo de importação do Power BI, consulte os seguintes artigos: