Umwandeln von Daten
Sie können Daten anhand vieler verschiedener Techniken im Dateneditor umwandeln und bearbeiten.
Einer der Vorteile der Datenbearbeitung ist, dass Sie beschließen können, nur eine Teilmenge der Daten aus einer Datei zu laden, z. B. einige wenige ausgewählte Spalten einer Tabelle. So können Sie die Datenverarbeitung effizienter gestalten. Sie können die Daten auch mehrmals laden, um die Rohdaten in mehrere neue interne Tabellen aufzuspalten. Außerdem können Sie auch Daten aus mehreren Quellen laden und sie zu einer Tabelle in Qlik Sense zusammenführen.
In diesem Thema werden einige grundlegende Datenumformungen durchgeführt. Dabei verwenden Sie zuerst einen Resident load, dann einen Preceding load.
Resident LOAD
Sie können den Quellzusatz Resident in einer LOAD-Anweisung verwenden, um Daten aus einer bereits geladenen Tabelle zu laden. Das ist auch hilfreich, wenn Sie Berechnungen für Daten durchführen möchten, die mit einer SELECT-Anweisung geladen wurden, und Sie die Qlik Sense Funktionen wie die Verarbeitung von Datum und Zahlenwerten nicht nutzen können.
In diesem Beispiel erstellen Sie eine neue Tabelle mit dem Namen Sales_Buckets und laden dann die Daten aus Table1 anhand eines resident load. In der Tabelle Sales_Buckets erstellen Sie eine Variable mit dem Namen quantity_threshold und verwenden dann eine Where-Anweisung, um nur die Daten zu laden, die diesem Schwellenwert entsprechen.
- Öffnen Sie den Dateneditor in der Scripting Tutorial App.
- Klicken Sie auf die Registerkarte Sales.
- Fügen Sie Folgendes zum Ende des Skripts hinzu:
- Klicken Sie auf Daten laden.
- Öffnen Sie die Datenmodellansicht. Sie können sehen, dass Sie eine neue Tabelle namens Sales_Buckets erstellt haben, in die Daten entsprechend den angegebenen Feldern und dem festgelegten Schwellenwert geladen wurden.
- Fügen Sie die Daten zu einer Tabelle in Ihrer App hinzu. Fügen Sie Item und Customer als Dimensionen hinzu. Fügen Sie High-Quantity als über Count und dann erneut über Sum aggregierte Kennzahl hinzu. Fügen Sie dann eine neue Spalte als Kennzahl mit der folgenden Formel hinzu:
- Nachdem dieses Beispiel jetzt abgeschlossen ist, kommentieren Sie das Skript für die Variable quantity_threshold und die Tabelle Sales_Buckets aus.
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));
Ihr Skript sollte folgendermaßen aussehen:
= Sum(High_Quantity) / Count(High_Quantity)
Ihre Tabelle zeigt beispielsweise, dass Customer 10025737 vier große Bestellungen von High Top Dried Mushrooms mit einer durchschnittlichen Menge von 14.800 aufgegeben hat. Um Sortierungen für die Daten in den Feldern vorzunehmen, schließen Sie den Bearbeitungsmodus, indem Sie auf Fertig klicken.
Das Ende Ihres Skripts sollte nun wie folgt aussehen:
Vorangehendes LOAD
Mit einem vorangestellten load-Befehl können Sie Umwandlungen durchführen und Filter anwenden, um Daten in einem Durchgang laden zu können. Im Grunde ist es ein LOAD-Befehl, der über den Befehl LOAD oder SELECT unten lädt, ohne einen Qualifizierer für die Quelle wie From oder Resident anzugeben, was normalerweise der Fall ist. Sie können auf diese Art und Weise beliebig viele LOAD-Befehle stapeln. Der Befehl unten wird zuerst ausgewertet, dann der Befehl darüber usw., bis der oberste Befehl ausgewertet wurde.
Wie weiter oben in diesem Tutorial erwähnt, können Sie Daten in Qlik Sense anhand der Anweisungen LOAD und SELECT laden. Jeder dieser Anweisungen erstellt eine interne Tabelle. LOAD wird zum Laden von Daten aus Dateien oder aus einer Inline-Tabelle verwendet, während mit SELECT Daten aus Datenbanken geladen werden können. In diesem Tutorial haben Sie Daten aus Dateien verwendet. In diesem Beispiel verwenden Sie eine Inline-Tabelle. Beachten Sie aber, dass ein preceding load oberhalb einer SELECT-Anweisung zur Bearbeitung der Daten verwendet werden kann. Die Grundlagen sind die Gleichen wie hier bei Verwendung von LOAD.
Dieses Beispiel bezieht sich nicht auf die Daten, die wir in diesem Tutorial laden. Es dient nur dazu, zu zeigen, wie ein preceding load aussehen kann. Sie erstellen im Dateneditor eine Inline-Tabelle mit dem Namen Transactions. Die Datumsinterpretation erfolgt im preceding LOAD, wobei ein neues Feld mit dem Namen transaction_date erstellt wird. Dieses Feld wird anhand des Felds sale_date erstellt.
- Erstellen Sie eine neue App und nennen Sie sie ReformatDate.
- Öffnen Sie den Dateneditor und erstellen Sie eine neue Registerkarte mit dem Namen TransactionData.
- Fügen Sie das folgende Skript hinzu:
- Klicken Sie auf Daten laden.
- Öffnen Sie die Datenmodellansicht. Wählen Sie die Tabelle Transactions aus und erweitern Sie sie. Sie sehen, dass alle Felder wie vom * in der preceding load-Anweisung festgelegt geladen wurden. Ein neues Feld mit dem Namen transaction_date wurde erstellt. Das Feld hat das neu formatierte Datum.
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 ];
Ihr Skript sollte folgendermaßen aussehen: