In diesem Connected Learning Path werden wir eine Kette erstellen, die veranschaulicht, wie ein einfacher JSON-Datensatz in CSV konvertiert wird. Außerdem werden wir untersuchen, wie man eine Schleife über einen JSON-Datensatz zieht und nach Werten in den Daten filtert.
Primäres Lernziel | JSON-Konnektor-Fähigkeit |
Sekundäre Lernziele |
Tabellarische Transformation Erweiterter Abfragebefehl Gruppen-Iteration |
Voraussetzungen | JSON Connector-Verbindung konfigurieren |
Unterstützende Vorlage | CLP | Zugriff auf JSON-Daten |
Schritt 1: Erstellen einer Kette
- Eine neue Kette hinzufügen
- Benennen Sie die Kette CLP | Zugriff auf JSON-Daten
- Erstellen Sie eine Kettenvariable:
- Klicken Sie unter Kettenvariablen auf das Pluszeichen
- Name: cv-JSON-Employee
- Wert: https://cs-sftp-training-bucket.s3.amazonaws.com/cs-training/transformation-qs/emp_detail.json
- Klicken Sie unter Kettenvariablen auf das Pluszeichen
- Rettet die Kette
Schritt 2: Abrufen von JSON-Daten
Wir verwenden 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 - Alle Mitarbeiter |
Name des Benutzers | <leerlassen> |
Kennwort | <leerlassen> |
CA-Zertifikat | <leerlassen> |
Zertifikat | <leerlassen> |
Privater Schlüssel des Zertifikats | <leerlassen> |
Antwort anzeigen | Geprüft |
URL | cv-JSON-Employee Kettenvariable |
Abfrage-String | <leerlassen> |
Art des Inhalts | anwendung/json |
Antwort | <leerlassen> |
- Speichern Sie den Befehl
Schritt 3: JSON in CSV umwandeln
Verwenden Sie den JSON Connector, um den JSON-Datensatz in ein CSV-Format zu konvertieren. Wählen Sie in diesem Schritt nur die Felder Mitarbeiter-ID und Land aus dem JSON-Array aus.
Es ist wichtig, das Schema des JSON-Datensatzes zu verstehen. Zur Visualisierung des Schemas kann der Befehl List File Content aus dem File Utilities Connector verwendet werden. Sie können das Schema auch in das Antwortfeld des Befehls "Abrufen" einfügen, um den Bezug zu erleichtern. Nachfolgend finden Sie das Schema der JSON-Datei für die Mitarbeiter:
Schema:
[
{
"emp_id": "26-4992011",
"user_name": "apostle0",
"first_name": "Audi",
"last_name": "Postle",
"job_title": "Chief Design Engineer",
"department": "Marketing",
"city": "Cheyenne",
"country": "United States",
"currency": "USD",
"hire_date": "08/30/2000",
"fte": 1,
"termed": false
}
]
- Fügen Sie einen Array to CSV Befehl aus dem JSON Connector in die Kette ein.
- Verbinden Sie den Startknoten (GET - Alle Mitarbeiter) mit dem Befehl Array to CSV .
- Nennen Sie den Befehl: Array zu CSV - Alle Mitarbeiter.
- Wählen Sie im Parameter JSON Data die Antwort Output aus dem Befehl GET - All Employees .
- Lassen Sie die Parameter Input Text, Path to root, und Filter leer.
- Belassen Sie den Parameter Multi-value Delimiter bei einem Komma (,).
- Aktivieren Sie die Option Ergebnisvorschau .
- Im Abschnitt Spalten wird angegeben, welche Elemente aus dem JSON-Array in einen spaltenförmigen (CSV-)Datensatz extrahiert werden sollen. Klicken Sie einmal auf die Schaltfläche Add , um eine zusätzliche Spalte hinzuzufügen.
- Geben Sie in der ersten Spalte emp_id für den Spaltennamen und .emp_id für die JSONPath-Parameter ein.
- achten Sie darauf, dass der Punkt (.) vor emp_id im JSONPath-Parameter enthalten ist.
- Geben Sie in der zweiten Spalte country für den Spaltennamen und .country für die JSONPath-Parameter ein.
- Wählen Sie Comma für den Parameter Delimiter .
- Geben Sie in der ersten Spalte emp_id für den Spaltennamen und .emp_id für die JSONPath-Parameter ein.
- Speichern Sie den Befehl
Schritt 4: Erhalten Sie die eindeutige Liste der Länder in den Daten
Verwenden Sie eine einfache Select Distinct Anweisung mit dem Advanced Query Command des Tabular Transformation Connector, um die eindeutige Ländergruppe in den Daten zu erhalten. Im weiteren Verlauf dieser Übung wird diese Liste verwendet, um die Arbeitnehmer nach Ländern aufzuschlüsseln.
- Fügen Sie einen Advanced Query Befehl aus dem Tabular Transformation Connector in die Kette ein.
- Verbinden Sie den Befehl Array to CSV - All Employees mit dem Befehl Advanced Query .
- Nennen Sie den Befehl: Erweiterte Abfrage - Länder.
- Im Abschnitt Tabellen können ein oder mehrere begrenzte Datensätze verwendet werden, um Tabellen zu erstellen, gegen die SQL-Anweisungen geschrieben werden können. Eine SQLite-Datenbank mit den angegebenen Tabellen wird im Handumdrehen erstellt, eine zusätzliche Softwareinstallation ist nicht erforderlich.
- Geben Sie im Feld Datei die Konvertierte Datei Ausgabe des Befehls Array in CSV - Alle Mitarbeiter an.
- Geben Sie Länder in den Parameter Tabellenname ein. Die angegebene Abfrage wird auf diese Tabelle angewendet.
- Geben Sie im Parameter Query Folgendes ein:
Wählen Sie unter Länder ein bestimmtes Land aus
- Geben Sie Comma für die Parameter Input Delimiter und Output Delimiter an.
- Überprüfen Sie den Parameter Ergebnisvorschau
- Speichern Sie den Befehl.
Schritt 5: Erstellen eines JSON-Arrays aus der Länderliste
Wir verwenden den CSV-zu-JSON-Befehl aus dem JSON Connector, um die eindeutige Länderliste in ein JSON-Array zu konvertieren. Eine Befehlsgruppe kann dann über jedes Element in diesem Array iterieren.
- Fügen Sie einen CSV zu JSON Befehl vom JSON Connector zur Kette hinzu.
- Verbinden Sie den Befehl Advanced Query - Countries mit dem Befehl CSV to JSON .
- Konfigurieren Sie den Befehl wie folgt:
Name | CSV zu JSON - Länder |
Eingabe-Datei | Ergebnis Ausgabe des Befehls Erweiterte Abfrage - Länder |
Trennzeichen | Komma (,) |
- Speichern Sie den Befehl
Schritt 6: Hinzufügen einer Befehlsgruppe
Fügen Sie der Kette eine Befehlsgruppe hinzu, um die Iteration über jedes der einzelnen Länder zu ermöglichen, die im Schritt Erweiterte Abfrage identifiziert wurden.
- Fügen Sie der Kette eine Befehlsgruppe hinzu.
- Verbinden Sie den Befehl CSV to JSON - Countries mit dem Abschnitt In der Befehlsgruppe.
- Klicken Sie auf die Befehlsgruppe und wählen Sie dann das Tropfensymbol, um die Farbe des Befehls in orangezu ändern.
- Benennen Sie die Gruppe: Aktive Mitarbeiter.
- Aktivieren Sie den Schalter Iterationen unter der Registerkarte Iterationen und wählen Sie die JSON-Datei Ausgabe aus dem Befehl CSV zu JSON - Länder .
- Speichern Sie die Befehlsgruppe.
Schritt 7: JSON-Daten für Mitarbeiter nach Land filtern
Konvertiert den JSON-Datensatz in CSV und filtert dabei nur die Mitarbeiterdatensätze für das Land, das gerade in der Iteration verarbeitet wird. In diesem Schritt werden zwei leistungsstarke Funktionen hervorgehoben: die Möglichkeit, Schleifen oder Iterationen durchzuführen, und die Möglichkeit, Filter auf den JSON-Konvertierungsprozess anzuwenden. Das Wissen um diese Fähigkeiten stärkt die Fähigkeit, robuste, effiziente Ketten zu entwickeln.
Kopieren Sie für diesen Schritt das zuvor konfigurierte Array in den CSV-Befehl, und die Konfiguration verwendet weitgehend dieselbe Konfiguration, außer an den unten genannten Stellen.
- Kopieren Sie das Array nach CSV - Alle Mitarbeiter .
- Verbinden Sie die Gruppe Start von der Befehlsgruppe mit dem Befehl Array to CSV - All Employees (Copy).
- Bearbeiten Sie den Befehl.
- Nennen Sie den Befehl: Array zu CSV - Mitarbeiter nach Land.
- Geben Sie in den Parameter Filter den folgenden Wert ein
?(@.country == "<JSON FILE ITERATION>")
-
- Das Leerzeichen vor und nach dem doppelten Gleichheitszeichen (==) sind erforderlich.
- <JSON FILE ITERATION> sollte durch die JSON File Iteration unter dem Group Iterator im Variablenfenster ersetzt werden.
- Klicken Sie beim Hinzufügen der JSON-Datei-Iteration auf die Variablenblase und fügen Sie eine Transformation "Get Value from JSON Variable" hinzu.
- Geben Sie in den Parameter Wert der Variablenumwandlung country ein und drücken Sie die Eingabetaste. Denken Sie daran, dass JSON zwischen Groß- und Kleinschreibung unterscheidet.
- Bearbeiten Sie die Spalte emp_id so, dass sie einen Spaltennamen von employee_idhat. Ändern Sie den JSONPath nicht.
- Der vom Befehl generierte Spaltenname muss nicht mit dem JSON-Array-Schlüssel übereinstimmen.
- Fügen Sie dem Befehl 10 Spalten hinzu und konfigurieren Sie ihn wie unten beschrieben:
Spaltenname | JSONPath |
benutzer_name | .benutzer_name |
vor_name | .vor_name |
letzter_name | .letzter_name |
Titel | .job_title |
abteilung | .abteilung |
stadt | .stadt |
währung | .währung |
hire_date | .hire_date |
fte | .fte |
gekündigt | .bezeichnet |
- Speichern Sie den Befehl.
Schritt 8: Testen Sie die Übung
Testen Sie nun, nachdem die Kette vollständig ist, das Ergebnis.
- 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 Array to CSV - Employees by Country .
- Beachten Sie, dass die Iteration fünf (5) Mal durchgeführt wurde.
- Wählen Sie jeden Iterationswert aus und klicken Sie dann auf die Registerkarte Eingaben . Vergewissern Sie sich, dass der Filter mit der folgenden Tabelle übereinstimmt.
- Wählen Sie Iteration 5 und klicken Sie auf die Registerkarte Logs . Vergewissern Sie sich, dass die Datenvorschau mit dem unten stehenden Bild übereinstimmt.
Iteration 1 | Vereinigte Staaten |
Iteration 2 | Brasilien |
Iteration 3 | Kenia |
Iteration 4 | Italien |
Iteration 5 |
Australien |
Um mehr über die Datentransformation mit Hilfe von Chains zu erfahren, schauen Sie sich die Connected Learning Paths - Transformation Introductionan!