Reduzir a cardinalidade
Cardinalidade é um termo usado para descrever a exclusividade dos valores de uma coluna. O termo cardinalidade também é usado no contexto das relações entre duas tabelas, em que descreve a direção da relação.
Identificar níveis de cardinalidade nas colunas
Anteriormente, quando você usou o Editor do Power Query para analisar os metadados, a opção Distribuição da coluna na guia Exibição exibiu 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 em uma determinada coluna.
Contagem de valores exclusivos – o número total de valores que aparecem apenas uma vez em uma determinada coluna.
Uma coluna com vários valores repetidos no intervalo (uma contagem de valores únicos baixa) terá um nível baixo de cardinalidade. Por outro lado, uma coluna com vários valores exclusivos em seu intervalo (uma contagem exclusiva alta) terá um alto nível de cardinalidade.
A baixa cardinalidade leva a um desempenho mais otimizado, de forma que talvez seja necessário reduzir o número de colunas com alta cardinalidade no seu modelo semântico.
Reduzir a cardinalidade da relação
Quando você importa várias tabelas, é possível que faça algumas análises usando dados de todas essas tabelas. As relações entre essas tabelas são necessárias para calcular os resultados com precisão e exibir as informações corretas em seus relatórios. O Power BI Desktop ajuda a facilitar a criação dessas relações. Na verdade, na maioria dos casos, você não precisa fazer nada, pois o recurso de detecção automática faz isso para você. No entanto, ocasionalmente você pode precisar criar relações ou fazer alterações em uma relação. Independentemente disso, é importante entender as relações no Power BI Desktop e como criá-las e editá-las.
Quando cria ou edita uma relação, você pode configurar opções adicionais. Por padrão, o Power BI Desktop configura automaticamente opções adicionais com base em sua melhor estimativa, que pode ser diferente para cada relação com base nos dados nas colunas.
As relações podem ter cardinalidades diferentes. A cardinalidade é a direção da relação e cada relação do modelo precisa ser definida com um tipo de cardinalidade. As opções de cardinalidade no Power BI são:
Muitos para um (
*
:1) – essa relação é o tipo mais comum e o padrão. Ela significa que a coluna em uma 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) – nesse tipo de relação, a coluna de uma 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:
*
) – nesse tipo de relação, a coluna em uma 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, você pode estabelecer uma relação de muitos para muitos entre as tabelas, que remove os requisitos de valores exclusivos nas tabelas. Ela também remove soluções alternativas anteriores, como introduzir novas tabelas somente para estabelecer relações.
Durante o desenvolvimento, você está criando e editando relacionamentos no seu modelo, portanto, ao criar novos relacionamentos no seu modelo, independentemente da cardinalidade que você tenha escolhido, certifique-se sempre de que ambas as colunas usadas para estabelecer a um relacionamento tenham o mesmo tipo de dados. Seu modelo nunca funcionará se você tentar criar uma relação entre duas colunas em que uma coluna tem um tipo de dados de texto e a outra tem um tipo de dados Integer.
No exemplo a seguir, o campo ProductID tem o tipo de dados Número inteiro nas tabelas de Produto e Vendas. As colunas com o tipo de dados Inteiro têm melhor desempenho do que as colunas com o tipo de dados Texto.
Aprimorar o desempenho reduzindo os níveis de cardinalidade
O Power BI Desktop oferece diferentes técnicas que você pode usar para ajudar a reduzir os dados que são carregados nos modelos semânticos, como a criação de um resumo. Reduzir os dados carregados no modelo aprimorará a cardinalidade do relacionamento do relatório. Por esse motivo, é importante se esforçar para minimizar os dados que serão carregados nos modelos. Esse caso é especialmente verdadeiro para modelos grandes ou para modelos que você imagina que crescerão e ficarão grandes com o passar do tempo.
Talvez a técnica mais eficiente para reduzir o tamanho de um modelo seja usar uma tabela de resumo da fonte de dados. Enquanto uma tabela de detalhes pode conter todas as transações, uma tabela de resumo conteria um registro por dia, por semana ou por mês. Pode ser uma média de todas as transações por dia, por exemplo.
Por exemplo, uma tabela de fatos de vendas de origem armazena uma linha para cada linha de pedido. Uma redução significativa de dados poderia ser obtida resumindo todas as métricas de vendas se você agrupasse por data, cliente e produto, e os detalhes da transação individual não seriam necessários.
Considere, então, que uma redução ainda mais significativa dos dados poderia ser alcançada pelo agrupamento por data em nível mensal. Poderia ser alcançada uma redução de 99% no tamanho do modelo, mas o relatório no nível do dia ou no nível do pedido individual deixaria de ser possível. A decisão de resumir dados de tipo de fatos sempre envolverá uma compensação com relação ao detalhamento dos dados. Uma desvantagem é que você pode perder a capacidade de detalhamento dos dados porque o detalhe não existe mais. Essa compensação pode ser atenuada usando um design de modelo misto.
No Power BI Desktop, um design de modo misto produz um modelo composto. Essencialmente, ele permite que você determine um modo de armazenamento para cada tabela. Portanto, cada tabela pode ter sua propriedade Modo de Armazenamento definida como Importação ou DirectQuery.
Uma técnica efetiva para reduzir o tamanho do modelo é definir a propriedade Modo de Armazenamento das tabelas de tipo de fatos maiores como DirectQuery. Essa abordagem de design pode funcionar bem em conjunto com técnicas usadas para resumir os dados. Por exemplo, os dados de vendas resumidos poderiam ser usados para obter relatórios de "resumo" de alto desempenho. Uma página de detalhamento poderia ser criada para exibir as vendas granulares para um contexto de filtro específico (e restrito), exibindo todos os pedidos de venda no contexto. A página de detalhamento incluiria visuais baseados em uma tabela do DirectQuery para recuperar os dados dos pedidos de vendas (detalhes dos pedidos de vendas).
Para obter mais informações, confira Técnicas de redução de dados para a modelagem de importação.