Gegevens laden uit een eerder geladen tabel
Er zijn twee manieren om gegevens te laden en te transformeren vanuit een tabel die al is geladen.
- Resident LOAD - waarbij u het predicaat Resident gebruikt in een daaropvolgende LOAD-opdracht om een nieuwe tabel te laden.
- Voorafgaande load - waarbij u de load-bewerking uitvoert vanuit de voorafgaande LOAD- of SELECT-opdracht zonder een bron op te geven.
Resident of voorafgaande LOAD ?
In de meeste gevallen kan hetzelfde resultaat worden bereikt met beide methoden. Een voorafgaande LOAD is meestal de snellere optie, maar in sommige gevallen moet u in plaats daarvan een Resident LOAD gebruiken:
- Als u de clausule Order_by wilt gebruiken voor het sorteren van de records voordat de LOAD-opdracht wordt verwerkt.
- Als u een van de volgende prefixen wilt gebruiken, waarbij een voorafgaande LOAD niet wordt ondersteund:
- Crosstable
- Join
- Intervalmatch
Resident LOAD
U kunt het predicaat Resident in een LOAD-opdracht gebruiken om gegevens van een eerder geladen tabel te laden. Dit is handig als u berekeningen wilt uitvoeren met gegevens die geladen zijn met een SELECT-opdracht waarbij u geen Qlik Sense-functies kunt gebruiken, zoals datum of het afhandelen van numerieke waarden.
Example:
In dit voorbeeld wordt de datuminterpretatie uitgevoerd in de Resident-load, omdat het niet in de initiële Crosstable LOAD kan worden gedaan.
Voorafgaande load
Met de functie voor voorafgaande load kunt u een tabel in één keer laden, maar toch meerdere, opeenvolgende transformaties definiëren. In wezen is het een LOAD-opdracht die moet worden geladen vanuit de onderstaande LOAD- of SELECT-opdracht, zonder dat een bronkwalificatie zoals From of Resident wordt opgegeven, die normaliter wordt gebruikt. Op deze manier kunt u elk gewenste aantal LOAD-opdrachten stapelen. De opdracht onderaan wordt eerst geëvalueerd, dan de opdracht erboven, enzovoort, totdat de bovenste opdracht is geëvalueerd.
U kunt hetzelfde resultaat verkrijgen door Resident te gebruiken, maar in de meeste gevallen werkt een voorafgaande LOAD sneller.
Een ander voordeel van een voorafgaande load is dat u een berekening op één plaats kunt houden en opnieuw kunt gebruiken in LOAD-opdrachten erboven.
Example 1: Gegevens transformeren die zijn geladen met een SELECT-opdracht
Als u gegevens uit een database laadt met een SELECT-opdracht, kunt u geen Qlik Sense-functies gebruiken om gegevens te interpreteren in de SELECT-opdracht. De oplossing is dat u een LOAD-opdracht moet toevoegen waar u gegevenstransformatie uitvoert, boven de SELECT-opdracht.
In dit voorbeeld interpreteren we een datum die is opgeslagen als een tekenreeks met de Qlik Sense-functie Date# in een LOAD-opdracht. Hierbij gebruiken we de voorafgaande SELECT-opdracht als bron.
Example 2: Het script vereenvoudigen door berekeningen opnieuw te gebruiken
In dit voorbeeld gebruiken we een berekening meer dan eens in het script:
Als de berekening de eerste keer wordt gebruikt, kan deze opnieuw worden gebruikt in de functie Age in een voorafgaande LOAD:
Beperkingen van voorafgaande loads
- De volgende prefixen kunnen niet worden gebruikt in combinatie met voorafgaande LOAD: Join, Crosstable en Intervalmatch.
- Als u distinct gebruikt om unieke records te laden, moet u distinct in de eerste laadinstructie plaatsen, aangezien distinct alleen van invloed is op de bestemmingstabel.