Cirkelreferenties begrijpen en oplossen

Bij cirkelreferenties ("lussen") in een gegevensstructuur, worden de tabellen zodanig geassocieerd dat er sprake is van meer dan één pad met associaties tussen velden.

Dit type gegevensstructuur moet u zo veel mogelijk vermijden, aangezien dit tot dubbelzinnigheden bij de interpretatie van gegevens kan leiden.

Drie tabellen met een cirkelreferentie, aangezien er sprake is van meer dan één pad met associaties tussen twee velden.
Three tables with a circular reference.

In Qlik Sense wordt het probleem van cirkelreferenties opgelost door de lus te onderbreken met een losjes gekoppelde tabel. Wanneer Qlik Sense circulaire gegevensstructuren aantreft bij de uitvoering van het load-script, verschijnt een waarschuwingsvenster en worden een of meer tabellen ingesteld als losjes gekoppeld. Meestal wordt in Qlik Sense geprobeerd de langste tabel in de lus losjes te koppelen omdat dit vaak een transactietabel is die gewoonlijk losjes moet worden gekoppeld. In de gegevensmodelviewer worden losjes gekoppelde tabellen aangegeven door rode koppelingen met stippellijn naar andere tabellen.

Example:  

Er worden gegevens uit drie tabellen geladen die het volgende omvatten:

  • De namen van een aantal nationale voetbalelftallen
  • Voetbalclubs in een aantal steden
  • Steden in sommige Europese landen
Weergave van de brongegevenstabellen in Excel.

Tables in Excel.

Deze gegevensstructuur is niet erg goed, omdat de veldnaam Team wordt gebruikt voor twee verschillende doelen: nationale elftallen en lokale clubs. De gegevens in de tabellen zorgen ervoor dat er een logisch onmogelijke situatie ontstaat.

Bij het laden van de tabellen in Qlik Sense stelt Qlik Sense vast welke van de gegevensverbindingen het minst belangrijk is en deze tabel wordt losjes gekoppeld.

Open de gegevensmodelviewer om te bekijken hoe in Qlik Sense de relevantie van de gegevensverbindingen wordt geïnterpreteerd:

Weergave van de cirkelreferenties zoals aangegeven door rode stippellijnen
Circular references between tables.

De tabel met steden en de landen waartoe zij behoren is nu losjes gekoppeld met de tabel met nationale elftallen van verschillende landen en met de tabel met lokale clubs van verschillende steden.

Cirkelreferenties oplossen

Als cirkelreferenties optreden, moet u het script voor het laden van gegevens bewerken door een unieke naam toe te wijzen aan een van de velden met unieke namen.

Doe het volgende:

  1. Open de editor voor laden van gegevens.
  2. Bewerk de LOAD-opdracht voor een van de dubbele veldnamen.

    In dit voorbeeld zou de LOAD-opdracht van de tabel die de lokale teams en hun stad bevat, een nieuwe naam krijgen voor Team, bijvoorbeeld LocalClub. De bijgewerkte LOAD-opdracht luidt:

    LOAD City, Team as LocalClub

  1. Klik op ° op de werkbalk om gegevens opnieuw in de app te laden.

U hebt nu logica die werkt in alle tabellen. Als in dit voorbeeld Germany wordt geselecteerd, worden het nationale elftal, de Duitse steden en de lokale clubs van elke stad gekoppeld:

Sheet with four tables.

Als u de Gegevensmodelviewer opent, ziet u dat de losjes gekoppelde verbindingen worden vervangen door normale verbindingen:

Three tables with regular connections in the Data model viewer.