In diesem Connected Learning Path erstellen wir eine Kette, die veranschaulicht, wie man eine XML-Datei in CSV konvertiert. Außerdem werden wir untersuchen, wie man Datensätze vergleicht, um Unterschiede zu isolieren.
| Primäres Lernziel | Der XML-Konnektor |
| Sekundäre Lernziele | Intelligente Filter für die tabellarische Transformation, Trennzeichen ändern und erweiterte Abfragebefehle |
| Voraussetzungen | XML-Connector-Verbindung konfigurieren |
| Unterstützende Vorlage | CLP | Zugriff auf XML-Daten |
Schritt 1: Erstellen einer Kette
- Fügen Sie eine neue Kette hinzu, und benennen Sie die Kette: CLP | Zugriff auf XML-Daten.
- Erstellen Sie zwei Kettenvariablen wie folgt:
- Klicken Sie unter Kettenvariablen zweimal auf das Pluszeichen (+).
- Verwenden Sie die folgenden Namen und Werte für die Variablen:
- XML-Variable
- Name: cv-XML-Employee
- Wert: https://cs-sftp-training-bucket.s3.amazonaws.com/cs-training/transformation-qs/employees.xml
- CSV-Variable
- Name: cv-CSV-Employee
- Wert: https://cs-sftp-training-bucket.s3.amazonaws.com/cs-training/transformation-qs/employee_detail.csv
- XML-Variable
- Speichern Sie die Kette.
Schritt 2: Abrufen von Daten im CSV-Format
Verwenden Sie den HTTP-Connector zum Abrufen von Personalbestandsdaten im CSV-Format. In späteren Schritten werden wir ähnliche Informationen zur Mitarbeiterzahl im XML-Format abrufen und dann die Datensätze vergleichen, um Unterschiede festzustellen.
- Fügen Sie einen GET Befehl vom HTTP Connector zum Startknoten hinzu.
-
Konfigurieren Sie den Befehl unter Verwendung der folgenden Werte:
Name GET - Mitarbeiterzahl im CSV-Format 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-CSV-Employee Chain-Variable Abfrage-Zeichenfolge <leer lassen> Inhaltstyp Text/csv Antwort <leer lassen> - Speichern Sie den Befehl.
Schritt 3: Abrufen von Daten im XML-Format
Verwenden Sie den HTTP-Connector, um Daten zur Mitarbeiterzahl im XML-Format abzurufen. Wie in Schritt 2 erwähnt, werden wir in einem weiteren Schritt den XML-Datensatz mit dem CSV-Datensatz vergleichen, um Unterschiede festzustellen.
- Fügen Sie einen GET Befehl vom HTTP Connector in die Kette ein.
- Verbinden Sie den Startknoten (GET - Headcount im CSV-Format) mit dem Befehl GET.
-
Konfigurieren Sie den Befehl unter Verwendung der folgenden Werte:
Name GET - Mitarbeiterzahl im XML-Format 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-XML-Employee Kettenvariable Abfrage-Zeichenfolge <leer lassen> Inhaltstyp Anwendung/xml Antwort <leer lassen> - Speichern Sie den Befehl.
Schritt 4: Konvertieren der XML-Datei in eine durch Trennzeichen getrennte Datei
Verwenden Sie den XML Connector, um die XML-Daten in ein CSV-Format zu konvertieren, damit wir später in der Kette Befehle nutzen können, die Daten in einem durch Trennzeichen getrennten Format erwarten.
- Fügen Sie einen Elementliste zu CSV Befehl aus dem XML Connector in die Kette ein.
- Verbinden Sie den Befehl GET - Headcount im XML-Format mit dem Befehl Element List to CSV.
- Konfigurieren Sie den Befehl mit den folgenden Werten:
- Wählen Sie für den Parameter Input File den Parameter Response Output aus dem Befehl GET - Headcount in XML Format.
- Lassen Sie den Parameter Input Text leer.
- Geben Sie für den Parameter Path to root die folgenden Hüllkurveninformationen ein:
/employee_data/employee - Markieren Sie das Kontrollkästchen des Parameters Ergebnisvorschau.
-
Für den Abschnitt Spalten klicken Sie 12 Mal auf die Schaltfläche Hinzufügen.
Geben Sie für jede der hinzugefügten Spalten den Namen des Feldes aus dem im vorherigen Schritt angezeigten Datensatz in die Felder Column Name und XPath ein.
Beispiel: emp_id⚠️ Beim XPath-Feld wird zwischen Groß- und Kleinschreibung unterschieden, und die Groß- und Kleinschreibung muss mit der des Umschlags übereinstimmen.
- Geben Sie für den Parameter Multi-value Delimiter eine Pipe (|) ein.
- Speichern Sie den Befehl.
- Veröffentlichen, Durchführen und Ausführen der Kette.
-
Überprüfen Sie die Registerkarte Protokoll des Befehlsknotens Elementliste zu CSV - Alle Mitarbeiter und bestätigen Sie, dass eine Liste der Mitarbeiter angezeigt wird.
⚠️ Überspringen Sie nicht die Ausführung und Ergebnisüberprüfung dieses Schritts, da eine Kopie dieses Befehls in der Kette erstellt wird und eventuelle Fehler anschließend in mehreren Instanzen des Befehls korrigiert werden müssen.
Schritt 5: Ändern Sie die konvertierte XML-Datei von Tabulator-getrennt in Komma-getrennt
Verwenden Sie den Tabular Transformation Connector, um die von der XML-Konvertierung erzeugte Ausgabe von einem tabulatorgetrennten Format in ein kommagetrenntes Format zu konvertieren.
- Fügen Sie einen Befehl zum Ändern des Trennzeichens aus dem Connector für tabellarische Transformation zur Kette hinzu.
- Verbinden Sie den Befehl Elementliste zu CSV - Alle Mitarbeiter mit dem Befehl Trennzeichen ändern.
- Konfigurieren Sie den Befehl mit den folgenden Werten:
- Name: Begrenzungszeichen ändern - Alle Mitarbeiter
- Eingabedatei: Konvertierte Datei Ausgabe aus der Elementliste in CSV - Alle Mitarbeiter Befehl
- Eingabe-Begrenzungszeichen: \t
- Ausgabe-Begrenzungszeichen:, (Komma)
- Speichern Sie den Befehl.
Schritt 6: Vergleichen Sie die CSV- und XML-Datensätze, um Unterschiede festzustellen
Verwenden Sie Erweiterte Abfrage, um systematisch Unterschiede zwischen den XML- und nativen CSV-Datensätzen zu ermitteln. Identifizieren Sie in diesem Beispiel alle Datensätze im XML-Datensatz, die sich vom CSV-Datensatz unterscheiden oder fehlen. Alle zusätzlichen Datensätze, die im CSV-Datensatz gefunden werden und nicht im XML-Datensatz enthalten sind, werden bei dieser Übung nicht identifiziert.
- Fügen Sie einen Advanced Query Befehl aus dem Tabular Transformation Connector in die Kette ein.
- Verbinden Sie den Befehl Begrenzungszeichen ändern - Alle Mitarbeiter mit dem Befehl Erweiterte Abfrage.
- Nennen Sie den Befehl: Erweiterte Abfrage - Alle Mitarbeiter.
- Klicken Sie im Abschnitt Tabellen auf die Schaltfläche Hinzufügen, um eine zweite Registerkarte hinzuzufügen.
- Für die erste Tabelle:
- Geben Sie das CSV-Ergebnis Ausgabe aus dem Befehl Trennzeichen ändern - Alle Mitarbeiter an.
- Geben Sie XML als Tabellenname an.
- Für die zweite Tabelle:
- Geben Sie die Antwortausgabe des Befehls GET - Headcount im CSV-Format an.
Geben Sie CSV als Tabellenname an. - Geben Sie im Parameter Query Folgendes ein:
Select * from XML EXCEPT Select * from CSV - Geben Sie in den Feldern Input Delimiter und Output Delimiter Comma an.
- Aktivieren Sie die Option Ergebnisvorschau.
- Geben Sie die Antwortausgabe des Befehls GET - Headcount im CSV-Format an.
- Für die erste Tabelle:
- Speichern Sie den Befehl.
- Veröffentlichen, Durchführen und Ausführen der Kette.
-
Überprüfen Sie die Registerkarte Protokoll des Befehlsknotens Erweiterte Abfrage - Alle Mitarbeiter und bestätigen Sie, dass die Mitarbeiter-IDs mit den unten aufgeführten Datensätzen übereinstimmen, die von der Abfrage zurückgegeben wurden.
Mitarbeiter-ID 01-6875791 10-4199621 38-3932553 63-0417180 78-3600453 85-6818050 97-2828467
Schritt 7: Hinzufügen einer Befehlsgruppe
Fügen Sie der Kette eine Befehlsgruppe hinzu, um Befehle besser zu organisieren. Obwohl dieser Schritt im Rahmen dieser Übung erforderlich ist, handelt es sich dabei nicht um eine technische Anforderung für die Kette. Dieser Schritt dient lediglich zur Veranschaulichung der Fähigkeit, die Knoten einer Kette zu organisieren.
- Fügen Sie der Kette eine Befehlsgruppe hinzu.
- Verbinden Sie den Befehl GET - Headcount in XML Format mit dem Abschnitt In der Befehlsgruppe.
- Klicken Sie auf die Befehlsgruppe und wählen Sie dann das Tropfensymbol, um die Farbe des Befehls in rot zu ändern.
- Benennen Sie die Gruppe: Aktive Mitarbeiter.
Schritt 8: CSV-Daten nur für aktive Mitarbeiter filtern
Verwenden Sie einen intelligenten Filter, um nur die Mitarbeiterdatensätze zu behalten, in denen der Mitarbeiter aktiv ist. Bei der Definition des Filters gehen wir davon aus, dass das Feld beendet (gekündigt) leer ist, was bedeutet, dass ein Mitarbeiter aktiv ist.
- Fügen Sie einen Smart Filter Rows Befehl aus dem Tabular Transformation Connector in die Kette ein.
- Verbinden Sie den Group Start von der Command Group mit dem Smart Filter Command.
- Konfigurieren Sie den Befehl unter Verwendung der folgenden Werte:
- Benennen Sie den Befehl: Intelligente Filterzeilen - CSV-Daten - Aktive Mitarbeiter.
- Wählen Sie für den Parameter Input file den Parameter Response Output aus dem Befehl GET - Headcount im CSV-Format.
- Lassen Sie den Parameter Output file leer.
- Geben Sie Komma als Trennzeichen an.
- Führen Sie im Abschnitt Filter die folgenden Schritte aus:
- Klicken Sie auf die Schaltfläche Hinzufügen in den Filtern Text.
- In den Parameter Spaltenname geben Sie mit der Bezeichnung ein.
- Aktivieren Sie die Option Case Insensitive.
- Wählen Sie in der Dropdown-Liste Bedingung die Option ist gleich.
- Geben Sie in den Parameter Compare Text true ein.
- Aktivieren Sie die Option Nicht.
- Lassen Sie das Kontrollkästchen Trim unmarkiert.
Dieser Filter identifiziert nun alle Datensätze, in denen das Feld "termed" nicht den Wert true enthält (d.h. es enthält "false" oder ist leer).
- Lassen Sie die Option Ergebnisvorschau markiert.
- Die Option Inverse ermöglicht es dem intelligenten Filter, alle Zeilen, die den Filterkriterien entsprechen, entweder zu behalten (markiert) oder zu entfernen (nicht markiert). In dieser Übung möchten wir alle Zeilen beibehalten, in denen das Feld "bezeichnet" den Wert true oder blank hat.
Um dies zu erreichen, markieren Sie das Kontrollkästchen Umgekehrt. - Speichern Sie den Befehl.
Schritt 8: CSV-Daten nur für aktive Mitarbeiter filtern
Verwenden Sie einen intelligenten Filter, um nur die Mitarbeiterdatensätze zu behalten, in denen der Mitarbeiter aktiv ist. Bei der Definition des Filters gehen wir davon aus, dass das Feld beendet ("termed") leer ist, was bedeutet, dass ein Mitarbeiter aktiv ist.
- Fügen Sie einen Smart Filter Rows Befehl aus dem Tabular Transformation Connector in die Kette ein.
- Verbinden Sie den Group Start von der Command Group mit dem Smart Filter Command.
- Konfigurieren Sie den Befehl unter Verwendung der folgenden Werte:
- Benennen Sie den Befehl: Intelligente Filterzeilen - CSV-Daten - Aktive Mitarbeiter.
- Für die Eingabedatei, wählen Sie die Antwortausgabe aus dem Befehl GET - Headcount im CSV-Format.
- Lassen Sie den Parameter Output file leer.
- Geben Sie Komma als Trennzeichen an.
- Im Abschnitt Filter,
- Klicken Sie auf die Schaltfläche Hinzufügen in den Filtern Text.
- In den Parameter Spaltenname geben Sie mit der Bezeichnung ein.
- Aktivieren Sie die Option Case Insensitive.
- Wählen Sie in der Dropdown-Liste Bedingung die Option ist gleich.
- Geben Sie in den Parameter Compare Text true ein.
- Aktivieren Sie die Option Nicht.
- Lassen Sie das Kontrollkästchen Trim unmarkiert.
Dieser Filter identifiziert nun alle Datensätze, in denen das Feld "termed" nicht den Wert true enthält (d.h. es enthält "false" oder ist leer).
- Lassen Sie das Kontrollkästchen Ergebnisvorschau markiert (angekreuzt).
- Die Option Inverse ermöglicht es dem intelligenten Filter, alle Zeilen, die den Filterkriterien entsprechen, entweder beizubehalten (markiert) oder zu entfernen (nicht markiert). In dieser Übung wollen wir alle Zeilen behalten, in denen das Feld "Bezeichnung" den Wert "wahr" oder "leer" hat. Markieren Sie dazu das Kontrollkästchen Inverse.
- Speichern Sie den Befehl.
Schritt 9: Filtern von XML-Daten bei der Konvertierung in Trennzeichen
In diesem Schritt werden die XML-Daten bei der Konvertierung in ein durch Trennzeichen getrenntes Format gefiltert, um nur aktive Mitarbeiter zu identifizieren. Dieser Datensatz wird anschließend mit dem gefilterten CSV-Datensatz verglichen, um Unterschiede festzustellen.
- Kopieren Sie den Befehl Element List to CSV - All Employees.
- Verbinden Sie die Gruppe Start aus der Befehlsgruppe mit dem Befehl Element List to CSV - All Employees (Copy).
- Bearbeiten Sie den Befehl und benennen Sie ihn: Elementliste in CSV - Aktive Mitarbeiter.
- Geben Sie in den Parameter "Pfad zum Stammverzeichnis" Folgendes ein:
/employee_data/employee[termed!='true']
Damit wird nun jeder Datensatz identifiziert, in dem das Feld "termed" nicht den Wert true enthält (d.h. es enthält "false" oder ist leer). - Speichern Sie den Befehl.
Schritt 10: Ändern Sie die gefilterten XML-Daten in kommagetrennte Daten
Wie bei der vollständigen Mitarbeiterliste muss auch die gefilterte aktive Mitarbeiterliste, die von XML in tabulatorgetrennt konvertiert wurde, in kommagetrennt konvertiert werden.
- Kopieren Sie den Befehl Begrenzungszeichen ändern - Alle Mitarbeiter.
- Verbinden Sie den Befehl Elementliste mit CSV - Aktive Mitarbeiter mit dem Befehl Element Trennzeichen ändern - Alle Mitarbeiter (Kopieren).
- Konfigurieren Sie den Befehl mit den folgenden Werten.
- Name: Begrenzungszeichen ändern - Aktive Mitarbeiter.
- Ändern Sie den Parameter Eingabedatei, um die Konvertierte Datei Ausgabe des Befehls Elementliste in CSV - Aktive Mitarbeiter zu verwenden.
- Speichern Sie den Befehl.
Schritt 11: Prüfen Sie die Differenzen mit aktiven Mitarbeitern
Wie bei der vollständigen Mitarbeiterliste muss auch die gefilterte aktive Mitarbeiterliste, die von XML in tabulatorgetrennt konvertiert wurde, in kommagetrennt konvertiert werden.
- Kopieren Sie den Befehl Erweiterte Abfrage - Alle Mitarbeiter.
- Verbinden Sie die Out der Befehlsgruppe mit dem Befehl Erweiterte Abfrage - Alle Mitarbeiter (Kopieren). Wenn Sie den Befehl "Erweiterte Abfrage - Alle Mitarbeiter" mit dem Befehl "Gruppe Ende" verbinden, wird sichergestellt, dass alles, was mit dem Befehl "Gruppe Anfang" verbunden ist, beendet wird, bevor die Kette zu den Befehlen im Befehl "Gruppe Ende" weitergeht.
- Konfigurieren Sie den Befehl unter Verwendung der folgenden Werte:
- Name: Erweiterte Abfrage - Aktive Mitarbeiter.
-
Ändern Sie im Abschnitt Tabellen den Parameter Datei für beide Tabellen, indem Sie die folgenden Werte verwenden:
Tabelle Datei XML CSV-Ergebnisausgabe aus dem Befehl Begrenzungszeichen ändern - Aktive Mitarbeiter CSV Ausgabe von Smart-Filterzeilen aus den Smart-Filterzeilen - nur aktiv, Befehl CSV-Daten
- Speichern Sie den Befehl.
Schritt 12: 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 ihren Lauf beendet hat, klicken Sie auf den Knoten Erweiterte Abfrage - Aktive Mitarbeiter.
- Bestätigen Sie auf der Registerkarte Outputs, dass 4 Datensätze ausgegeben wurden.
-
Klicken Sie auf die Registerkarte Protokolle und bestätigen Sie, dass die Mitarbeiter-IDs mit den unten aufgeführten Datensätzen übereinstimmen, die von der Abfrage zurückgegeben wurden.
Mitarbeiter-ID 01-6875791 63-0417180 78-3600453 85-6818050
Wenn Sie mehr über die Datentransformation mit Hilfe von Chains erfahren möchten, lesen Sie bitte die Connected Learning Paths - Transformation Introduction!