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-Konnektorfä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
- Fügen Sie eine neue Kette hinzu.
- Benennen Sie die Kette: CLP | Accessing JSON Nested Objects.
- Erstellen Sie eine Kettenvariable und füllen Sie sie mit den folgenden Werten:
- Name: cv-JSON-Donut
- Wert: https://cs-sftp-training-bucket.s3.amazonaws.com/cs-training/transformation-qs/donut.json
- Speichern Sie die Kette.
Schritt 2: Abrufen von JSON-Daten
Verwenden Sie den HTTP-Connector, um Daten zur Mitarbeiterzahl im JSON-Format von einer Webadresse abzurufen.
- Fügen Sie einen GET Befehl vom HTTP Connector zum Startknoten hinzu.
- Konfigurieren Sie den Befehl unter Verwendung der folgenden Werte:
Name GET - JSON-Daten Name des Benutzers <leer lassen> Kennwort <leer lassen> CA-Zertifikat <leer lassen> Zertifikat <leer lassen> Privater Schlüssel des Zertifikats <leer lassen> Antwort anzeigen Geprüft URL cv-JSON-Donut Kettenvariable Abfrage-Zeichenfolge <leer lassen> Inhaltstyp Anwendung/json Antwort
<leer lassen> - Speichern Sie den Befehl.
Schritt 3: Unverschachtelte JSON-Daten abrufen
Diese Kette verwendet den Befehl Object to CSV des JSON Connectors, um die nicht verschachtelten Namens- und Typschlüssel aus dem JSON-Objekt zu extrahieren.
Hinweis: Es ist wichtig, dass Sie das Schema des JSON-Datensatzes verstehen. Ein List File Content Befehl aus dem File Utilities Connector kann verwendet werden, um das Schema zu visualisieren. Als Referenz finden Sie hier das Schema des JSON-Datensatzes "Donut":
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.
- Öffnen Sie den Befehl und konfigurieren Sie ihn mit den folgenden Werten.
- Nennen Sie den Befehl: Objekt zu CSV - Name & Typ.
- Wählen Sie für den 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 (,).
- Markieren Sie das Kontrollkästchen Ergebnisvorschau.
- Wählen Sie Pipe für den Parameter Delimiter.
Im Abschnitt Spalten geben Sie an, welche Elemente aus dem JSON-Objekt in einen spaltenförmigen (CSV-)Datensatz extrahiert werden sollen. - Klicken Sie einmal auf die Schaltfläche Add, um zwei Spalten hinzuzufügen.
- Geben Sie für die erste Spalte name für die Column Name und .name für die JSONPath-Parameter ein.
- Für die zweite Spalte geben Sie Typ für die Spalte Typ und .Typ 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 in dem verschachtelten JSON-Array zu erhalten.
- Fügen Sie einen Array to CSV Befehl vom JSON Connector in die Kette ein.
- Verbinden Sie den GET - JSON Data Befehl mit dem Array to CSV Befehl.
- Konfigurieren Sie den Befehl mit den folgenden Werten:
- Benennen Sie den Befehl: Array zu CSV - Toppings.
- Wählen Sie für den Parameter JSON Data die Antwort Output aus dem Befehl GET - JSON Data.
- Lassen Sie den Parameter Input Text leer.
- Für den Parameter Path to root geben Sie topping (in Kleinbuchstaben) ein und drücken die Eingabetaste. Topping sollte mit einem vorangestellten Gleichheitszeichen in einer grauen Blase erscheinen.
- Lassen Sie den Parameter Filter leer.
- Belassen Sie den Standardwert comma (,) für den Parameter Multi-value Delimiter.
- Markieren Sie das Kontrollkästchen Ergebnisvorschau.
- Im Abschnitt Columns 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.
- Für den ersten Parameter Column name geben Sie ToppingID und für den Parameter JSONPath geben Sie .id ein.
- Für den zweiten Parameter Column name geben Sie ToppingType ein, und für den Parameter JSONPath geben Sie .type ein.
- Für den Parameter Delimiter wählen Sie Pipe.
- Speichern Sie den Befehl.
Schritt 5: Liste der Schläger erhalten
Diese Kette verwendet den Befehl Array to CSV im JSON Connector, um die Liste der Bartender im verschachtelten JSON-Array zu erhalten. Wir werden zwei Array to CSV Befehle verwenden, um die Batters und Toppings zu extrahieren, da die Verschachtelung der einzelnen Arrays unterschiedlich ist.
Die Verwendung eines Object to CSV Befehls mit verschachtelten JSONPaths (zum Beispiel .topping[*].type) erzeugt mehrteilige Werte, 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 GET - JSON Data Befehl mit dem Array to CSV Befehl.
- Konfigurieren Sie den Befehl mit den folgenden Werten:
- Nennen Sie den Befehl: Array zu CSV - Batters.
- Wählen Sie für den Parameter JSON Data die Antwort Output aus dem Befehl GET - JSON Data.
- Lassen Sie den Parameter Input Text leer.
- Für den Parameter Path to root geben Sie batters (alles Kleinbuchstaben) ein und drücken die Eingabetaste. Geben Sie dann batter (alles 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.
- Für den Parameter Column name geben Sie BatterID und für den Parameter JSONPath geben Sie .id ein.
- Für den Parameter Column name geben Sie BatterType ein und für den Parameter JSONPath geben Sie .type ein.
- Wählen Sie für den Parameter Delimiter die Option Pipe.
- Speichern Sie den Befehl.
Schritt 6: Die Daten reduzieren
Wir werden eine "kartesische Verknüpfung" in einem Advanced Query Befehl des Tabular Transformation Connector verwenden, um den Datensatz 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 Objekte mit CSV - Name & Typ, Array mit CSV - Batters, und Array mit CSV - Toppings Befehle mit dem Befehl Erweiterte Abfrage.
- Konfigurieren Sie den Befehl unter Verwendung der folgenden Werte:
- 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 die Tabellen mit den folgenden Werten aus:Datei Tabellenname Wählen Sie die konvertierte Datei Ausgabe aus dem Befehl Objekt in CSV - Name & Typ. Name Wählen Sie die konvertierte Datei Ausgabe aus dem Array in CSV - Befehl Batters. Schläger Wählen Sie die konvertierte Datei Output aus dem Befehl Array to CSV - Toppings. Topping - Für den Parameter Query geben Sie Folgendes ein:
Select Type as dessert_type, Name as variety, BatterType, ToppingType from Name, Batter, Topping - Für die Parameter Input Delimiter und Output Delimiter, geben Sie Pipe an.
- Markieren Sie das Kontrollkästchen Ergebnisvorschau.
- Speichern Sie den Befehl.
Schritt 7: Testen Sie die Kette und überprüfen Sie die Ergebnisse AAA
- Veröffentlichen Sie die Kette.
- Klicken Sie auf Execute und wählen Sie dann Run Chain.
- 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 der Record Count 28 ist.
- Wählen Sie die Registerkarte Logs und bestätigen Sie, dass die Datenvorschau mit dem folgenden Screenshot übereinstimmt.
Wenn Sie mehr über die Datentransformation mit Hilfe von Chains erfahren möchten, lesen Sie Connected Learning Paths - Transformation Introduction.