Entendendo e solucionando as referências circulares

Se existirem referências circulares (“loops”) em uma estrutura de dados, as tabelas serão associadas de forma que haja mais de um caminho de associações entre dois campos.

Esse tipo de estrutura de dados deve ser evitado o máximo possível, pois isso poderia levar a ambiguidades na interpretação dos dados.

Três tabelas com referência circular, pois há mais de um caminho de associações entre dois campos.
Three tables with a circular reference.

O Qlik Sense resolve o problema de referências circulares interrompendo o loop com uma tabela parcialmente desconectada. Quando Qlik Sense encontra estruturas de dados circulares ao executar o script de carga, um diálogo de atenção será mostrado e uma ou mais tabelas serão definidas como parcialmente desconectadas. O Qlik Sense normalmente tenta desconectar a maior tabela no loop, e muitas vezes, é uma tabela de transações a que deve ser desconectada. No visualizador do modelo de dados, as tabelas parcialmente desconectadas são indicadas por links pontilhados em vermelho com outras tabelas.

Example:  

Os dados são carregados a partir de três tabelas que incluem o seguinte:

  • Nomes de algumas seleções de futebol nacionais
  • Clubes de futebol de algumas cidades
  • Cidades de alguns países europeus
Exibição das tabelas de dados de origem no Excel.

Tables in Excel.

Essa estrutura de dados não é muito boa, pois o nome do campo Team é usado com duas finalidades diferentes: equipes nacionais e locais. Os dados nas tabelas cria uma situação lógica impossível.

Ao carregar as tabelas no Qlik Sense, o Qlik Sense determina quais conexões de dados são menos importantes e desconecta essa tabela.

Abra o Visualizador do modelo de dados para ver como o Qlik Sense interpreta a relevância das conexões de dados:

Visualização das referências circulares observadas por links pontilhados em vermelho.
Circular references between tables.

A tabela com cidades e os países a que pertencem agora está parcialmente conectada à tabela com seleções nacionais de países diferentes e à tabela com clubes locais de cidades diferentes.

Resolvendo referências circulares

Quando ocorrem referências circulares, você precisa editar o script de carga de dados atribuindo um nome exclusivo a um dos campos com nomes idênticos.

Faça o seguinte:

  1. Abra o editor de carga de dados.
  2. Edite o comando LOAD de um dos nomes de campo duplicados.

    Nesse exemplo, o comando LOAD da tabela que armazena as equipes locais e suas cidades incluiria um nome para Team — por exemplo LocalClub. O comando LOAD atualizado é lido:

    LOAD City, Team as LocalClub

  1. Clique em ° na barra de ferramentas para recarregar os dados no aplicativo.

Agora você tem uma lógica que funciona em todas as tabelas. Nesse exemplo, quando Germany é selecionado, a seleção de futebol, as cidades alemãs e os clubes locais de cada cidade são associados:

Sheet with four tables.

Ao abrir o Visualizador do modelo de dados, você percebe que as conexões parcialmente desconectadas são substituídas por conexões regulares:

Three tables with regular connections in the Data model viewer.