Zirkelbezüge und Auflösen von Zirkelbezügen
Sind Tabellen so miteinander verknüpft, dass Werte auf mehr als einem Weg miteinander verknüpft sind, spricht man von Zirkelbezügen oder auch zirkulären Verknüpfungen ("Loops") in der Datenstruktur.
Solche Strukturen sollten unter allen Umständen vermieden werden, da eventuell keine eindeutigen Zuordnungen zwischen den Werten mehr möglich sind.
In Qlik Sense wird das Problem von Zirkelbezügen dadurch gelöst, dass die Endlosschleife durch freie Tabellen unterbrochen wird. Wenn Qlik Sense beim Ausführen eines Ladeskripts kreisförmige Datenstrukturen erkennt, wird eine Warnung angezeigt, und eine oder mehrere Tabellen werden als freie Tabellen geführt. Normalerweise versucht Qlik Sense zunächst, die Tabelle mit den meisten Datensätzen zu einer freien Tabelle aufzulösen. Im Datenmodell werden freie Tabellen durch rot gepunktete Verknüpfungen zu anderen Tabellen dargestellt.
Beispiel:
Die Daten werden aus drei Tabellen geladen. Die Daten umfassen Folgendes:
- Namen einiger Fußball-Nationalmannschaften
- Fußballvereine in einigen Städten
- Städte in einigen europäischen Ländern
Die Datenstruktur ist nicht hochwertig, da der Feldname Team zwei Bedeutungen hat: Nationalmannschaften und örtliche Vereine. Die Daten in den Tabellen schaffen eine paradoxe logische Situation.
Beim Laden der Tabellen in Qlik Sense ermittelt Qlik Sense, welche Datenverbindungen die geringste Bedeutung haben, und gibt die Tabelle frei.
Öffnen Sie das Datenmodell, um anzuzeigen, wie Qlik Sense die Relevanz der Datenverbindungen interpretiert:
Die Tabelle mit Städten und den Ländern, in denen sie liegen, ist jetzt eine freie Tabelle bezüglich der Tabelle mit Fußballnationalmannschaften verschiedener Länder und bezüglich der Tabelle mit örtlichen Vereinen in unterschiedlichen Städten.
Auflösen von Zirkelbezügen
Wenn Zirkelbezüge auftreten, müssen Sie das Datenladeskript bearbeiten, indem Sie einem der Felder mit identischen Namen einen eindeutigen Namen zuweisen.
Gehen Sie folgendermaßen vor:
- Daten im Dateneditor öffnen
-
Bearbeiten Sie den Befehl LOAD für einen der zweifach vorliegenden Feldnamen.
In diesem Beispiel würde der Befehl LOAD der Tabelle, welche die örtliche Mannschaft und die entsprechenden Städte enthält, einen neuen Namen für Team enthalten, z. B. LocalClub. Der aktualisierte Befehl LOAD:
LOAD City, Team as LocalClub
- Klicken Sie in der Symbolleiste auf , um die Daten erneut in die App zu laden.
Sie verfügen jetzt über eine Logik, die alle Tabellen durchläuft. Wenn in diesem Beispiel Germany ausgewählt wird, werden die Nationalmannschaft, die deutschen Städte und die örtlichen Clubs aller Städte verknüpft:
Wenn Sie die Datenmodellansicht öffnen, wird deutlich, dass die Verbindungen mit freier Tabelle durch reguläre Verbindungen ersetzt wurden: