Reduzir a cardinalidade
Cardinalidade é um termo usado para descrever a exclusividade dos valores em uma coluna. A cardinalidade também é usada no contexto de relacionamentos de modelo, onde ela descreve a direção do relacionamento.
Identificar níveis de cardinalidade nas colunas
Anteriormente, quando você usava o Power Query para analisar os metadados, a opção Distribuição da coluna na guia da faixa de opções Exibir mostrava 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 que tem muitos valores repetidos em seu intervalo (a contagem de valores únicos é baixa) tem um baixo nível de cardinalidade. Por outro lado, uma coluna que tem muitos valores exclusivos em seu intervalo (a contagem de valores únicos é alta) tem um alto nível de cardinalidade.
A cardinalidade mais baixa resulta em um desempenho mais otimizado; portanto, você deve tentar reduzir o número de colunas de alta cardinalidade em seu modelo semântico.
Reduzir a cardinalidade do relacionamento
Ao importar várias tabelas, é possível que você faça alguma análise usando dados de todas essas tabelas. Os relacionamentos entre essas tabelas são necessários para calcular com precisão os resultados e exibir as informações corretas nos relatórios. O Power BI Desktop ajuda a facilitar a criação desses relacionamentos. Na verdade, na maioria dos casos, você não precisará fazer nada, pois o recurso de detecção automática fará isso para você. No entanto, ocasionalmente você pode precisar criar relacionamentos ou fazer alterações em um relacionamento. De qualquer modo, é importante compreender os relacionamentos no Power BI Desktop e como criá-los e editá-los.
Ao criar ou editar um relacionamento, você pode configurar outras opções. Por padrão, o Power BI Desktop configura automaticamente outras opções com base na avaliação dos dados do modelo, que podem ser diferentes para cada relacionamento com base nos dados das colunas.
Os relacionamentos podem ter cardinalidades diferentes. A cardinalidade é a direção do relacionamento e cada relacionamento do modelo precisa ser definido com um tipo de cardinalidade. Estas são as opções de cardinalidade no Power BI:
- Muitos para um (*:1): esse relacionamento é o mais comum. 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): a coluna em 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:*): a coluna de 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 de composição, você pode estabelecer um relacionamento 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 relacionamentos.
Durante o desenvolvimento, você cria e edita relacionamentos em seu modelo, portanto, quando estiver criando relacionamentos em seu modelo, independentemente da cardinalidade escolhida, sempre certifique-se de que ambas as colunas que está usando para participar de um relacionamento tenham o mesmo tipo de dados. Seu modelo nunca funcionará se você tentar criar um relacionamento entre duas colunas, no qual uma coluna tem um tipo de dados de texto e a outra tem um tipo de dados de inteiro.
No exemplo a seguir, a coluna ProductID tem o tipo de dados Número inteiro nas tabelas Product e Sales. 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 carregados em modelos semânticos, como a sumarização. Reduzir os dados carregados no modelo melhora a cardinalidade do relacionamento do relatório. Por esse motivo, é importante que você se esforce para minimizar os dados carregados em seus modelos. Isso vale especificamente para modelos grandes, ou modelos que você prevê que crescerão ao longo 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 pode conter um registro por dia, por semana ou por mês. Ela pode ser a soma de todos os valores de transação por dia, por exemplo.
Por exemplo, uma tabela de fatos das vendas de origem armazena uma linha para cada linha da ordem. Uma redução significativa de dados poderia ser obtida por meio do resumo de todas as métricas de vendas ao agrupar por data, cliente e produto, não sendo necessário detalhar transações individuais.
Considere, então, que você pode obter uma redução de dados ainda mais significativa ao resumir no nível do mês. Seria possível uma redução de 99% no tamanho do modelo; mas o relatório no nível de dia ou no nível de ordem individual não seria possível. A decisão de resumir dados de fatos sempre envolve uma troca com o nível de detalhes de seus dados. Uma desvantagem é perder a capacidade de analisar os dados porque os detalhes não existem mais. Essa troca pode ser atenuada com o uso de um Modelo de composição.
No Power BI Desktop, um Modelo de composição permite determinar 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 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. Você pode, então, criar uma página de drill-through a fim de exibir vendas granulares para um contexto de filtro específico (e restrito), exibindo todas as ordens de venda no contexto. A página de drill-through poderia incluir visuais baseados em uma tabela do DirectQuery para recuperar os dados das ordens de vendas (detalhes das ordens de venda).
Para obter mais informações, consulte Técnicas de redução dos dados para importação de modelagem.