Förstå och lösa cirkelreferenser
Cirkulära tabellstrukturer i datastrukturen innebär att tabellerna är associerade på ett sådant sätt att det finns mer än en associationsväg mellan två fält.
Denna typ av datastruktur bör undvikas i största möjliga mån, då den skapar risk för tvetydighet i tolkningen av data.
Qlik Sense löser problemet med cirkelreferenser genom att bryta cirkeln med hjälp av en löst kopplad tabell. Om Qlik Sense hittar cirkulära datastrukturer när datainläsningsskriptet körs kommer en varningsdialog att visas och en eller flera tabeller kommer att bli löst kopplade. Qlik Sense försöker oftast göra den längsta tabellen löst kopplad. Ofta är det en transaktionstabell som ska kopplas lös. I datamodellvyn markeras löst kopplade tabeller med röda prickade länkar till andra tabeller.
Exempel:
Data läses in från tre tabeller som innehåller följande:
- Namn på några nationella fotbollslag
- Fotbollsklubbar i några städer
- Städer i några europeiska städer
Denna datastruktur är inte särskilt bra eftersom fältnamnet Team används för två olika syften: nationella lag och lokala klubbar. De data som finns tillgängliga i tabellerna skapar en logiskt omöjlig situation.
När tabellerna läses in i Qlik Sense avgör Qlik Sense vilka datakopplingar som är minst viktig och kopplar lös denna tabell.
Välj Datamodellvy för att se hur Qlik Sense tolkar datakopplingarnas relevans:
Tabellen med städer och de länder de hör till är nu löst kopplad till tabellen med nationella lag i olika länder och till tabellen med lokala klubbar i olika städer.
Lösa cirkelreferenser
När cirkulära referenser uppstår måste du redigera dataladdningsskriptet och ge ett unikt namn till ett av de fält som har likadana namn.
Gör följande:
- Öppna Skriptredigeraren.
-
Redigera LOAD-satsen för ett av de fältnamn som är dubbletter.
I detta exempel skulle LOAD-satsen för den tabell som innehåller de lokala lagen och deras städer innehålla ett nytt namn för Team, till exempel LocalClub. Den uppdaterade LOAD-satsen ser ut så här:
LOAD City, Team as LocalClub
- Klicka på i verktygsfältet för att uppdatera data i appen.
Nu har du logik som fungerar i alla tabeller. I detta exempel, där du väljer Germany, associeras det nationella laget, de tyska städerna och varje stads lokala klubb.
När du öppnar Datamodellvyn ser du att de löst kopplade kopplingarna har ersatts med vanliga kopplingar: