Gegevens transformeren
U kunt gegevens veranderen en manipuleren door verschillende technieken te gebruiken in Editor voor laden van gegevens.
Een van de voordelen van het bewerken van gegevens is dat u ervoor kunt kiezen om slechts een subset van de gegevens uit een bestand te laden, bijvoorbeeld enkele specifieke kolommen van een tabel, om de gegevens op efficiëntere wijze te kunnen hanteren. U kunt de gegevens ook meer dan één keer laden om de onbewerkte gegevens op te splitsen in verschillende nieuwe logische tabellen. Het is tevens mogelijk om gegevens uit meerdere bronnen te laden en samen te voegen tot één tabel in Qlik Sense.
In dit onderwerp voert u een aantal standaard gegevenstransformaties uit met behulp van een Resident-load en daarna een Preceding-load.
Resident LOAD
U kunt de bronkwalificatie Resident gebruiken in een LOAD-opdracht om gegevens van een eerder geladen tabel te laden. Dit is ook 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.
In dit voorbeeld maakt u een nieuwe tabel met de naam Sales_Buckets en laadt u daarna de gegevens vanuit Table1 met een resident load. In de tabel Sales_Buckets maakt u een variabele met de naam quantity_threshold en gebruikt u een Where-opdracht om alleen gegevens te laden die aan die drempelwaarde voldoen.
- Open de Editor voor laden van gegevens in de Scripting Tutorialapp.
- Klik op het tabblad Sales.
- Voeg het volgende toe aan het eind van uw script:
- Klik op Gegevens laden.
- Open de gegevensmodelviewer. U kunt zien dat u een nieuwe tabel hebt gemaakt met de naam Sales_Buckets met de geladen gegevens volgens de velden die u hebt gespecificeerd en de drempelwaarde die u hebt ingesteld.
- Voeg de gegevens aan een tabel toe in uw app. Voeg Item en Customer toe als dimensies. Voeg High-Quantity toe als een meting die is geaggregeerd op Count en daarna weer geaggregeerd op Sum. Voeg daarna een nieuwe kolom toe als een meting met de volgende formule:
- Nu we dit voorbeeld hebben afgerond, schakelen we het script uit voor de variabele quantity_threshold en de tabel Sales_Buckets.
SET quantity_threshold = 12000;
Sales_Buckets:
LOAD
"Sales Qty" as "High_Quantity",
"Item Description" as "Item",
"Customer Number" as "Customer"
Resident Table1
Where ("Sales Qty" > $(quantity_threshold));
Uw script zou er als volgt moeten uitzien:
= Sum(High_Quantity) / Count(High_Quantity)
Uw tabel laat bijvoorbeeld zien dat Customer 10025737 vier grote bestellingen heeft geplaatst van Gedroogde paddenstoelen met een gemiddelde hoeveelheid van 14.800. Om de gegevens in de velden te sorteren, sluit u de modus Bewerken door op Gereed te klikken.
Het einde van uw script zou er nu als volgt moeten uitzien:
Voorafgaande LOAD
Met een voorafgaande load kunt u transformaties uitvoeren en filters toepassen, zodat u de gegevens in een keer kunt laden. 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, zoals u normaal gesproken zou doen. 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.
Zoals u al eerder hebt gezien in deze zelfstudie, kunt u gegevens laden naar Qlik Sense met gebruik van de opdrachten LOAD en SELECT. Met elk van deze opdrachten wordt een interne tabel gegenereerd. LOAD wordt gebruikt voor het laden van gegevens vanuit bestanden of een inline-tabel, terwijl SELECT wordt gebruikt voor het laden van gegevens uit databases. In deze zelfstudie hebt u gegevens gebruikt uit bestanden. In dit voorbeeld gebruikt u een inline-tabel. Het is echter het vermelden waard dat een voorafgaande load kan worden gebruikt boven een SELECT-instructie om uw gegevens te manipuleren. De basisprincipes zijn hetzelfde, zoals u hier ziet bij het gebruik van LOAD.
Dit voorbeeld houdt geen verband met de gegevens die wij laden in deze zelfstudie. Het wordt uitsluitend gebruikt om te laten zien hoe een voorafgaande load eruit kan zien. U maakt een inline-tabel in de editor voor laden van gegevens met de naam Transacties. De datuminterpretatie wordt uitgevoerd in de voorafgaande LOAD, waar een nieuw bestand wordt gemaakt met de naam transaction_date. Dit veld wordt gemaakt vanuit het veld sale_date.
- Maak een nieuwe app en noem deze ReformatDate.
- Open de editor voor laden van gegevens en maak vervolgens een nieuw tabblad met de naam TransactionData.
- Voeg het volgende script toe:
- Klik op Gegevens laden.
- Open de gegevensmodelviewer. Selecteer de tabel Transacties en vouw deze uit. U kunt zien dat alle velden zijn geladen zoals aangegeven in de * in de voorafgaande-loadinstructie. Een nieuw veld met de naam transaction_date is gemaakt. Het veld heeft de gewijzigde datumnotatie.
Transactions:
Load *,
Date(Date#(sale_date,'YYYYMMDD'),'DD/MM/YYYY') as transaction_date;
Load * Inline [ transaction_id, sale_date, transaction_amount, transaction_quantity, customer_id, size, color_code
3750, 20180830, 23.56, 2, 2038593, L, Red
3751, 20180907, 556.31, 6, 203521, m, orange
3752, 20180916, 5.75, 1, 5646471, S, blue
3753, 20180922, 125.00, 7, 3036491, l, Black
3754, 20180922, 484.21, 13, 049681, xs, Red
3756, 20180922, 59.18, 2, 2038593, M, Blue
3757, 20180923, 177.42, 21, 203521, XL, Black ];
Uw script zou er als volgt moeten uitzien: