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
- Add a new Chain, and name the Chain: CLP | Accessing XML Data.
- Erstellen Sie zwei Kettenvariablen wie folgt:
- Under Chain Variables, click the plus sign (+) twice.
- Verwenden Sie die folgenden Namen und Werte für die Variablen:
- XML-Variable
- Name: cv-XML-Employee
- Value: https://cs-sftp-training-bucket.s3.amazonaws.com/cs-training/transformation-qs/employees.xml
- CSV-Variable
- Name: cv-CSV-Employee
- Value: 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.
- Add a GET Command from the HTTP Connector to the Start node.
-
Konfigurieren Sie den Befehl unter Verwendung der folgenden Werte:
Name GET - Mitarbeiterzahl im CSV-Format Name des Benutzers <leave blank> Kennwort <leave blank> CA-Zertifikat <leave blank> Zertifikat <leave blank> Privater Schlüssel des Zertifikats <leave blank> Antwort anzeigen Geprüft URL cv-CSV-Employee Chain Variable Abfrage-Zeichenfolge <leave blank> Inhaltstyp Text/csv Antwort <leave blank> - 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.
- Add a GET Command from the HTTP Connector to the Chain.
- Connect the Start Node (GET - Headcount in CSV Format) to the GET Command.
-
Konfigurieren Sie den Befehl unter Verwendung der folgenden Werte:
Name GET - Mitarbeiterzahl im XML-Format Name des Benutzers <leave blank> Kennwort <leave blank> CA-Zertifikat <leave blank> Zertifikat <leave blank> Privater Schlüssel des Zertifikats <leave blank> Antwort anzeigen Geprüft URL cv-XML-Employee Chain Variable Abfrage-Zeichenfolge <leave blank> Inhaltstyp Anwendung/xml Antwort <leave blank> - 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.
- Add an Element List to CSV Command from the XML Connector to the Chain.
- Connect the GET - Headcount in XML Format Command to the Element List to CSV Command.
- Konfigurieren Sie den Befehl unter Verwendung der folgenden Werte:
- For the Input File parameter, select the Response Output from the GET - Headcount in XML Format Command.
- Leave the Input Text parameter blank.
- For the Path to root parameter, enter the following envelope information:
/employee_data/employee - Mark the Preview Result parameter checkbox.
-
For the Columns section, click the Add button 12 times.
For each of the added columns, enter the name of the field from the data record previewed in the previous step in both the Column Name and XPath fields.
Example: 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.
-
Review the Log tab of the Element List to CSV - All Employees Command node and confirm a list of employees is displayed.
⚠️ Ü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.
- Add a Change Delimiter Command from the Tabular Transformation Connector to the Chain.
- Connect the Element List to CSV - All Employees Command to the Change Delimiter Command.
- Konfigurieren Sie den Befehl unter Verwendung der folgenden Werte:
- Name: Change Delimiter - All Employees
- Input File: Converted File Output from the Element List to CSV - All Employees Command
- Input Delimiter: \t
- Output Delimiter: , (comma)
- Speichern Sie den Befehl.
Schritt 6: Vergleichen Sie die CSV- und XML-Datensätze, um Unterschiede festzustellen
Use Advanced Query to systematically identify differences between the XML and native CSV data sets. 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.
- Add an Advanced Query Command from the Tabular Transformation Connector to the Chain.
- Connect the Change Delimiter - All Employees Command to the Advanced Query Command.
- Name the Command: Advanced Query - All Employees.
- In the Tables section, click the Add button to add a second tab.
- Für die erste Tabelle:
- Specify the CSV Result Output from the Change Delimiter - All Employees Command.
- Specify XML as the Table Name.
- Für die zweite Tabelle:
- Specify the Response Output from the GET - Headcount in CSV Format Command.
Specify CSV as the Table Name. - In the Query parameter, enter the following:
Select * from XML EXCEPT Select * from CSV - In the Input Delimiter and Output Delimiter fields, specify Comma.
- Check the Preview Results option.
- Specify the Response Output from the GET - Headcount in CSV Format Command.
- Für die erste Tabelle:
- Speichern Sie den Befehl.
- Publish, Execute, and Run the Chain.
-
Review the Log tab of the Advanced Query - All Employees Command node and confirm the employee IDs match the below for the records returned by the query.
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.
- Add a Command Group to the Chain.
- Connect the GET - Headcount in XML Format Command to the In section of the Command Group.
- Click the Command Group and then select the dropper icon to change the Command color to red.
- Name the Group: Active Employees.
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.
- Add a Smart Filter Rows Command from the Tabular Transformation Connector to the Chain.
- Connect the Group Start from the Command Group to the Smart Filter Command.
- Konfigurieren Sie den Befehl unter Verwendung der folgenden Werte:
- Name the Command: Smart Filter Rows - CSV Data - Active Employees.
- For the Input file parameter, select the Response Output from the GET - Headcount in CSV Format Command.
- Leave the Output file parameter blank.
- Specify Comma as the Delimiter.
- In the Filters section complete the following steps:
- Click the Add button on the Text filters.
- In the Column name parameter, enter termed.
- Check the Case Insensitive option.
- From the Condition dropdown, select Equals.
- In the Compare Text parameter, enter true.
- Check the Not option.
- Leave the Trim checkbox unchecked.
This filter will now identify any record where the field "termed" does not contain a value of true (that is, it contains "false" or is blank).
- Leave the Preview Result option marked.
- The Inverse option allows the Smart Filter to either keep (checked) or remove (unchecked) all rows that match the filter criteria. In dieser Übung möchten wir alle Zeilen beibehalten, in denen das Feld "bezeichnet" den Wert true oder blank hat.
To achieve this, mark (check) the Inverse checkbox. - 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.
- Add a Smart Filter Rows Command from the Tabular Transformation Connector to the Chain.
- Connect the Group Start from the Command Group to the Smart Filter Command.
- Konfigurieren Sie den Befehl unter Verwendung der folgenden Werte:
- Name the Command: Smart Filter Rows - CSV Data - Active Employees.
- For Input file, select the Response Output from the GET - Headcount in CSV Format Command.
- Leave the Output file parameter blank.
- Specify Comma as the Delimiter.
- In the Filters section,
- Click the Add button on the Text filters.
- In the Column name parameter, enter termed.
- Check the Case Insensitive option.
- From the Condition dropdown, select Equals.
- In the Compare Text parameter, enter true.
- Check the Not option.
- Leave the Trim checkbox unchecked.
This filter will now identify any record where the field "termed" does not contain a value of true (that is, it contains "false" or is blank).
- Leave the Preview Result checkbox marked (checked).
- The Inverse option allows the Smart Filter to either keep (checked) or remove (unchecked) all rows that match the filter criteria. In dieser Übung wollen wir alle Zeilen behalten, in denen das Feld "Bezeichnung" den Wert "wahr" oder "leer" hat. To achieve this, mark (check) the Inverse checkbox.
- 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.
- Copy the Element List to CSV - All Employees Command.
- Connect the Group Start from the Command Group to the Element List to CSV - All Employees (Copy) Command.
- Edit the Command, naming it: Element List to CSV - Active Employees.
- In the "Path to root" parameter, enter the following.
/employee_data/employee[termed!='true']
This will now identify any record where the field "termed" does not contain a value of true (that is, it contains "false" or is blank). - 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.
- Copy the Change Delimiter - All Employees Command.
- Connect the Element List to CSV - Active Employees Command to the Element Change Delimiter - All Employees (Copy) Command.
- Konfigurieren Sie den Befehl mit den folgenden Werten.
- Name: Change Delimiter - Active Employees.
- Modify the Input file parameter to use the Converted File Output from the Element List to CSV - Active Employees Command.
- 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.
- Copy the Advanced Query - All Employees Command.
- Connect the Out of the Command Group to the Advanced Query - All Employees (Copy) Command. 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: Advanced Query - Active Employees.
-
In the Tables section, modify the File parameter for both tables using the following values:
Tabelle Datei XML CSV Result Output from the Change Delimiter - Active Employees Command CSV Smart Filter Row Output from the Smart Filter Rows - Active Only, CSV Data Command
- Speichern Sie den Befehl.
Schritt 12: Testen Sie die Übung
Testen Sie nun, nachdem die Kette vollständig ist, das Ergebnis.
- Publish the Chain.
- Click Execute and then select Run Chain.
- Once the Chain has completed its run, click the Advanced Query - Active Employees node.
- On the Outputs tab, confirm that 4 records were output.
-
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
To learn more about data transformation using Chains, check out the Connected Learning Paths - Transformation Introduction!