Ga naar hoofdinhoud Ga naar aanvullende inhoud

Synthetische sleutels

Wanneer twee of meer interne tabellen twee of meer velden gemeenschappelijk hebben, duidt dit op een samengestelde-sleutelrelatie. In QlikView worden deze afgehandeld door automatisch synthetische sleutels te maken. Deze sleutels zijn anonieme velden die alle voorkomende combinaties van de samengestelde sleutel vertegenwoordigen.

Als u een waarschuwing ontvangt over synthetische sleutels bij het laden van gegevens, wordt aanbevolen om de gegevensstructuur te controleren in de tabelweergave. U moet uzelf afvragen of het gegevensmodel al dan niet correct is. Soms is dat wel het geval, maar vaak ook wordt de synthetische sleutel veroorzaakt door een fout in het script.

Meerdere synthetische sleutels zijn vaak een symptoom van een onjuist gegevensmodel, maar niet altijd. Als u echter synthetische sleutels hebt die zijn gebaseerd op andere synthetische sleutels wijst dat duidelijk op een onjuist gegevensmodel.

WaarschuwingAls het aantal synthetische sleutels toeneemt, afhankelijk van de hoeveelheid gegevens, tabelstructuur en andere factoren, gaat QlikView hier al dan niet op elegante wijze mee om en wordt mogelijk buitensporig veel tijd en/of geheugen verspild. In een dergelijk geval moet u uw script bewerken en alle synthetische sleutels verwijderen.

Two tables, IntervalMatchLength and LengthRange, have the Start and End fields in common. They are connected by the $Syn 1 field, which leads to the $Syn 1 Table, which contains only $Syn 1 and Start and End.

Omgaan met synthetische sleutels

Als u synthetische sleutels moet vermijden, kunt u dit op een aantal verschillende manieren oplossen in het load-script:

  • Controleer of alleen velden waarmee twee tabellen logisch worden gekoppeld worden gebruikt als sleutels.

    • Velden als "Commentaar", "Opmerking" en "Beschrijving" kunnen in meerdere tabellen voorkomen zonder verband met elkaar te houden en dienen derhalve niet te worden gebruikt als sleutels.
    • Velden als “Datum”, “Bedrijf” en “Naam” bestaat mogelijk in verschillende tabellen en hebben identieke waarden, maar hebben toch verschillende rollen (Besteldatum/Verzenddatum, Klantbedrijf/Leveranciersbedrijf). In dergelijke gevallen mogen zij niet worden gebruikt als sleutels.
  • Zorg ervoor dat geen redundante velden worden gebruikt en dat alleen de noodzakelijke velden zijn verbonden. Als bijvoorbeeld een datum als sleutel wordt gebruikt, zorg er dan voor dat bijvoorbeeld year, month of day_of_month van dezelfde datum uit niet meer dan één interne tabel wordt geladen.

  • Maak zo nodig uw eigen niet-samengestelde sleutels, meestal door tekenreeksen samen te voegen binnen een AutoNumber-scriptfunctie.

Was deze pagina nuttig?

Als u problemen ervaart op deze pagina of de inhoud onjuist is – een typfout, een ontbrekende stap of een technische fout – laat het ons weten zodat we dit kunnen verbeteren!

Neem deel aan het Analytics Modernization Program

Remove banner from view

Moderniseer zonder uw waardevolle QlikView-apps op het spel te zetten met het Analytics Modernization Program. Klik hier voor meer informatie of om contact op te nemen: ampquestions@qlik.com