In diesem Connected Learning Path erstellen wir eine Kette, die veranschaulicht, wie man einen JSON-Datensatz mit verschachtelten Objekten in CSV konvertiert. Außerdem werden wir untersuchen, wie eine kartesische Verknüpfung verwendet werden kann, um diese verschachtelte Struktur zu glätten.
Primäres Lernziel | JSON Connector Fähigkeit für verschachtelte JSON Objekte |
Sekundäre Lernziele | Tabellarische Transformation Erweiterter Abfragebefehl |
Voraussetzungen | JSON Connector-Verbindung konfigurieren HTTP Connector-Verbindung konfigurieren |
Unterstützende Vorlage | CLP | Zugriff auf verschachtelte JSON-Objekte |
Schritt 1: Erstellen einer Kette
- Eine neue Kette hinzufügen
- Benennen Sie die Kette: CLP | Zugriff auf verschachtelte JSON-Objekte
- Erstellen Sie eine Kettenvariable
- Name: cv-JSON-Donut
- Wert: https://cs-sftp-training-bucket.s3.amazonaws.com/cs-training/transformation-qs/donut.json
- Rettet die Kette
Schritt 2: Abrufen von JSON-Daten
Verwenden Sie den HTTP-Connector, um Daten zur Mitarbeiterzahl im JSON-Format von einer Webadresse abzurufen.
- Hinzufügen eines GET Befehls vom HTTP Connector zum Startknoten
- Konfigurieren Sie den Befehl wie folgt:
Name GET - JSON-Daten Name des Benutzers <leerlassen> Kennwort <leerlassen> CA-Zertifikat <leerlassen> Zertifikat <leerlassen> Privater Schlüssel des Zertifikats <leerlassen> Antwort anzeigen Geprüft URL cv-JSON-Donut Kettenvariable Abfrage-String <leerlassen> Art des Inhalts anwendung/json Antwort
<leerlassen>
- Speichern Sie den Befehl
Schritt 3: Unverschachtelte JSON-Daten abrufen
Verwenden Sie den Befehl Object to CSV aus dem JSON Connector, um die nicht verschachtelten Schlüssel Name und Typ aus dem JSON-Objekt zu extrahieren.
Es ist wichtig, das Schema des JSON-Datensatzes zu verstehen. Ein List File Content Befehl aus dem File Utilities Connector kann verwendet werden, um das Schema zu visualisieren. Nachfolgend ist das Schema des Donut-JSON zu sehen:
Schema:
{"id":"0001","type":"donut","name":"Cake","ppu":0.55,"batters":{"batter":[{"id":"1001","type":"Regular"},{"id":"1002","type":"Chocolate"},{"id":"1003","type":"Blueberry"},{"id":"1004","type":"Devil's Food"}]},"topping":[{"id":"5001","type":"None"},{"id":"5002","type":"Glazed"},{"id":"5005","type":"Sugar"},{"id":"5007","type":"Powdered Sugar"},{"id":"5006","type":"Chocolate with Sprinkles"},{"id":"5003","type":"Chocolate"},{"id":"5004","type":"Maple"}]}
- Fügen Sie ein Objekt zu CSV Befehl aus dem JSON Connector in die Kette ein.
- Verbinden Sie den Startknoten (GET - JSON Data) mit dem Befehl Object to CSV .
- Benennen Sie den Befehl: Objekt zu CSV - Name & Typ.
- Wählen Sie im Parameter JSON Data die Antwort Output aus dem Befehl GET - JSON Data.
- Lassen Sie die Parameter Input Text und Path to root leer.
- Belassen Sie den Parameter Multi-value Delimiter bei einem Komma (,).
- Aktivieren Sie die Option Ergebnisvorschau .
- Wählen Sie Pipe für den Parameter Delimiter .
- Im Abschnitt Spalten wird angegeben, welche Elemente aus dem JSON-Objekt in einen spaltenförmigen (CSV-)Datensatz extrahiert werden. Klicken Sie einmal auf die Schaltfläche Add , um zwei Spalten hinzuzufügen.
- Geben Sie in der ersten Spalte name für die Parameter Column Name und .name für die JSONPath-Parameter ein.
- Geben Sie in der zweiten Spalte den Typ für den Spaltentyp und .type für die JSONPath-Parameter ein.
- Speichern Sie den Befehl
Schritt 4: Abrufen der Liste der Beläge
Verwenden Sie den Befehl Array to CSV des JSON Connectors, um die Liste der Toppings im verschachtelten JSON-Array zu erhalten.
- Fügen Sie einen Array to CSV-Befehl vom JSON Connector zur Kette hinzu.
- Verbinden Sie den Befehl GET - JSON Data mit dem Befehl Array to CSV.
- Bearbeiten Sie den Befehl
- Benennen Sie den Befehl: Array zu CSV - Toppings.
- Wählen Sie im Parameter JSON Data die Antwort Output aus dem Befehl GET - JSON Data .
- Lassen Sie den Parameter Input Text leer.
- Geben Sie in den Parameter Path to roottopping (in Kleinbuchstaben) ein und drücken Sie die Eingabetaste. Topping sollte in einer grauen Blase erscheinen.
- Lassen Sie den Parameter Filter leer.
- Belassen Sie den Standardwert comma (,)für den Parameter Multi-value Delimiter .
- Aktivieren Sie die Option Ergebnisvorschau .
- Im Abschnitt Spalten geben wir den/die Schlüssel im JSON-Array an, für den/die der/die Wert(e) in eine Spalte der resultierenden CSV-Datei extrahiert werden sollen.
- Geben Sie in den Parameter Column nametopping_type und in den Parameter JSONPath.typeein.
- Wählen Sie im Parameter DelimiterPipe.
- Speichern Sie den Befehl.
Schritt 5: Erstellen Sie eine Liste der Schläger
Verwenden Sie den Befehl Array to CSV des JSON Connectors, um die Liste der Schläger im verschachtelten JSON-Array zu erhalten.
Verwenden Sie zwei "Array to CSV"-Befehle, um die Batten und Toppings zu extrahieren, da jedes Array unterschiedlich verschachtelt ist. Die Verwendung eines Object to CSV-Befehls mit verschachtelten JSONPaths (z. B. .topping[*].type) hätte mehrteilige Werte erzeugt, die in einem CSV-Datensatz schwieriger zu verwenden sind.
- Fügen Sie einen Array to CSV Befehl aus dem JSON Connector in die Kette ein.
- Verbinden Sie den Befehl GET - JSON Data mit dem Befehl Array to CSV .
- Nennen Sie den Befehl: Array zu CSV - Batters.
- Wählen Sie im Parameter JSON Data die Antwort Output des Befehls GET - JSON Data
- Lassen Sie den Parameter Input Text leer.
- Geben Sie in den Parameter Path to rootbatters (in Kleinbuchstaben) ein und drücken Sie die Eingabetaste. Geben Sie dann batter (Kleinbuchstaben) ein und drücken Sie die Eingabetaste. Batters und batter sollten in dieser Reihenfolge in zwei grauen Blasen erscheinen.
- Lassen Sie den Parameter Filter leer.
- Belassen Sie den Standardwert comma (,)für den Parameter Multi-value Delimiter .
- Aktivieren Sie die Option Ergebnisvorschau .
- Im Abschnitt Spalten geben wir den/die Schlüssel im JSON-Array an, für den/die der/die Wert(e) in eine Spalte der resultierenden CSV-Datei extrahiert werden sollen.
- Geben Sie in den Parameter Column namebatter_type und in den Parameter JSONPath.typeein.
- Wählen Sie im Parameter DelimiterPipe
- Speichern Sie den Befehl.
Schritt 6: Die Daten reduzieren
Verwenden Sie eine kartesische Verknüpfung in einem erweiterten Abfragebefehl des Tabular Transformation Connector, um das Dataset zu reduzieren. Eine kartesische Verknüpfung erstellt alle möglichen Kombinationen der Elemente, die wir mit den Befehlen Objekt zu CSV und Array zu CSV extrahiert haben.
- Fügen Sie einen Advanced Query Befehl aus dem Tabular Transformation Connector in die Kette ein.
- Verbinden Sie jedes der Object to CSV - Name & Type, Array to CSV - Batters, und Array to CSV - Toppings Befehle mit dem Advanced Query Befehl.
- Benennen Sie den Befehl: Advanced Query - Flatten JSON Object.
- Klicken Sie im Abschnitt Tabellen zweimal auf die Schaltfläche Hinzufügen , so dass drei Tabellen verfügbar sind. Füllen Sie den Abschnitt "Tabellen" wie unten angegeben aus:
Datei | Tabellenname |
Auswahl der konvertierten Datei Ausgabe von Objekt in CSV - Name & Typ Befehl | Name |
Auswahl der konvertierten Datei Ausgabe von Array to CSV - Batters Befehl | Batter |
Auswahl der konvertierten Datei Ausgabe aus dem Array in CSV - Toppings Befehl | Topping |
- Geben Sie in den Parameter Query die folgende Abfrage ein:
Select Typ als dessert_type, Name als Sorte, Teig_Typ, Topping_Typ
von Name, Teig, Belag
- Geben Sie Pipe für die Parameter Input Delimiter und Output Delimiter an.
- Aktivieren Sie die Option Ergebnisvorschau.
- Speichern Sie den Befehl.
Schritt 7: Testen Sie die Kette und überprüfen Sie die Ergebnisse
- Veröffentlichen Sie die Kette.
- Klicken Sie auf Ausführen und wählen Sie dann Kette ausführen.
- Sobald die Kette abgeschlossen ist,
- Klicken Sie auf den Knoten Advanced Query - Flatten JSON Object und wählen Sie die Registerkarte Outputs .
- Bestätigen Sie, dass die Datensatzanzahl28 ist
- Wählen Sie die Registerkarte Logs .
- Vergewissern Sie sich, dass die Datenvorschau mit dem unten stehenden Screenshot übereinstimmt.
- Klicken Sie auf den Knoten Advanced Query - Flatten JSON Object und wählen Sie die Registerkarte Outputs .
Um mehr über die Datentransformation mit Hilfe von Chains zu erfahren, schauen Sie sich die Connected Learning Paths - Transformation Introductionan!