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.
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 carregamento, 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.
Exemplo:
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
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:
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:
- Abra o editor de carga de dados.
-
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
- 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:
Ao abrir o Visualizador do modelo de dados, você percebe que as conexões parcialmente desconectadas são substituídas por conexões regulares: