Comprensione e risoluzione dei riferimenti circolari

Se in una struttura di dati sono presenti riferimenti circolari ("loop" o ciclo), le tabelle vengono associate in modo che esistano più percorsi di associazioni tra due campi.

È consigliabile evitare per quanto possibile questo tipo di struttura di dati, perché potrebbe comportare ambiguità di interpretazione degli stessi.

Tre tabelle con un riferimento circolare, poiché sono presente più percorsi delle associazioni tra due campi.
Three tables with a circular reference.

Qlik Sense risolve il problema dei riferimenti circolari interrompendo il loop con una tabella logicamente disconnessa. Se Qlik Sense rileva strutture di dati circolari durante l'esecuzione dello script di caricamento, viene visualizzata una finestra di dialogo di avviso e una o più tabelle vengono impostate come logicamente disconnesse. In genere Qlik Sense esegue un tentativo di disconnessione della tabella più lunga all'interno del loop, perché si tratta spesso di una tabella di transazioni che normalmente corrisponde alla tabella da disconnettere. Nel sistema di visualizzazione modello dati le tabelle logicamente disconnesse sono indicate da collegamenti rossi punteggiati verso altre tabelle.

Example:  

I dati vengono caricati da tre tabelle che includono le informazioni seguenti:

  • Nomi di alcune squadre di calcio nazionali
  • Club di calcio in alcune città
  • Città di alcuni paesi europei
Vista delle tabelle dati sorgente in Excel.

Tables in Excel.

Questa struttura di dati presenta dei problemi, in quanto il nome di campo Team viene utilizzato per due scopi differenti, per indicare sia le squadre nazionali sia i club locali. I dati presenti nelle tabelle creano una situazione considerata logicamente impossibile.

Quando si caricano le tabelle in Qlik Sense, Qlik Sense determina qual è la connessione dati meno importante e disconnette la tabella.

Selezionare il sistema di visualizzazione modello dati per verificare in che modo Qlik Sense interpreta l'importanza delle connessioni dati:

Vista dei riferimenti circolari come indicato dalle linee punteggiate rosse.
Circular references between tables.

La tabella con le città e i paesi di appartenenza delle squadre è ora logicamente disconnessa dalla tabella delle squadre nazionali di paesi diversi e dalla tabella con i club locali di città differenti.

Risoluzione dei riferimenti circolari

Nel caso in cui vengano generati riferimenti circolari, occorre modificare lo script di caricamento dei dati assegnando un nome univoco a uno dei campi con nomi identici.

Procedere come indicato di seguito:

  1. Aprire l'editor caricamento dati.
  2. Modificare l'istruzione LOAD per uno dei nomi di campo duplicati.

    In questo esempio, l'istruzione LOAD della tabella che contiene le squadre locali e le rispettive città include un nuovo nome per Team, ad esempio LocalClub. L'istruzione LOAD aggiornata sarà quindi:

    LOAD City, Team as LocalClub

  1. Fare clic su ° sulla barra degli strumenti per ricaricare i dati nell'app.

La logica è ora adatta per essere applicata a tutte le tabelle. In questo esempio, quando si seleziona Germany, verranno associati la squadra nazionale, le città tedesche e i club locali di ogni città:

Sheet with four tables.

Aprendo il Sistema di visualizzazione modello dati, è possibile vedere che i collegamenti logicamente disconnessi vengono sostituiti con dei collegamenti standard:

Three tables with regular connections in the Data model viewer.