In dit leertraject maken we een keten die illustreert hoe je een XML-bestand naar CSV converteert. Daarnaast zullen we onderzoeken hoe we datasets kunnen vergelijken om verschillen te isoleren.
| Hoofdleerdoel | De XML-connector |
| Leerdoelen voor het voortgezet onderwijs | Slimme filters voor tabeltransformatie, scheidingsteken wijzigen en geavanceerde queryopdrachten |
| Voorwaarden | Configureer de XML-connectorverbinding |
| Ondersteunend sjabloon | CLP | Toegang tot XML-gegevens |
Stap 1: Maak een ketting
- Voeg een nieuwe keten toe en geef de keten de naam: CLP | Toegang tot XML-gegevens .
- Maak twee Chain-variabelen als volgt aan:
- Klik onder Variabelen koppelen twee keer op het plusteken (+).
- Gebruik de volgende namen en waarden voor de variabelen:
- XML-variabele
- Naam: cv-XML-Werknemer
- Waarde: https://cs-sftp-training-bucket.s3.amazonaws.com/cs-training/transformation-qs/employees.xml
- CSV-variabele
- Naam: cv-CSV-Werknemer
- Waarde: https://cs-sftp-training-bucket.s3.amazonaws.com/cs-training/transformation-qs/employee_detail.csv
- XML-variabele
- Red de ketting.
Stap 2: Gegevens ophalen in CSV-formaat
Gebruik de HTTP-connector om personeelsgegevens in CSV-formaat op te halen. In latere stappen halen we vergelijkbare personeelsgegevens op in XML-formaat en vergelijken we de datasets vervolgens om verschillen te identificeren.
- Voeg een GET Commando van de HTTP Connector toe aan het Start-knooppunt.
-
Configureer de opdracht met behulp van de volgende waarden:
Naam GET - Aantal medewerkers in CSV-formaat Gebruikersnaam <leave blank> Wachtwoord <leave blank> CA-certificaat <leave blank> Certificaat <leave blank> Certificaat privésleutel <leave blank> Toon reactie Gecontroleerd URL cv-CSV-Werknemer Kettingvariabele Queryreeks <leave blank> Inhoudstype tekst/csv Antwoord <leave blank> - Sla de opdracht op.
Stap 3: Gegevens ophalen in XML-formaat
Gebruik de HTTP-connector om personeelsgegevens in XML-formaat op te halen. Zoals vermeld in stap 2, zullen we in een volgende stap de XML-dataset vergelijken met de CSV-dataset om de verschillen te identificeren.
- Voeg een GET Commando van de HTTP Connector toe aan de keten.
- Verbind het startknooppunt (GET - Headcount in CSV-formaat) met de GET opdracht.
-
Configureer de opdracht met behulp van de volgende waarden:
Naam GET - Aantal medewerkers in XML-formaat Gebruikersnaam <leave blank> Wachtwoord <leave blank> CA-certificaat <leave blank> Certificaat <leave blank> Certificaat privésleutel <leave blank> Toon reactie Gecontroleerd URL cv-XML-Werknemer Kettingvariabele Queryreeks <leave blank> Inhoudstype applicatie/xml Antwoord <leave blank> - Sla de opdracht op.
Stap 4: Converteer het XML-bestand naar een door scheidingstekens gescheiden bestand.
Gebruik de XML-connector om de XML-gegevens naar een CSV-formaat te converteren, zodat we later in de keten opdrachten kunnen gebruiken die gegevens in een door scheidingstekens gescheiden formaat verwachten.
- Voeg een Elementlijst toe aan CSV Commando van de XML Connector aan de keten.
- Verbind de GET - Headcount in XML Format opdracht met de Element List to CSV opdracht.
- Configureer de opdracht met behulp van de volgende waarden:
- Voor de parameter Input File selecteert u Response Output uit de opdracht GET - Headcount in XML Format .
- Laat de parameter Input Text leeg.
- Voer voor de parameter Pad naar root de volgende envelopinformatie in:
/employee_data/employee - Vink het selectievakje Preview Result parameter aan.
-
Klik in het gedeelte Kolommen 12 keer op de knop Toevoegen 12 keer.
Voer voor elk van de toegevoegde kolommen de naam van het veld uit de gegevensrecord die in de vorige stap is bekeken in zowel het veld Kolomnaam als het veld XPath in. Voorbeeld
: emp_id⚠️ Het XPath-veld is hoofdlettergevoelig en moet overeenkomen met de hoofdlettergevoeligheid van de envelop.
- Voer voor de parameter 'Multi-value Delimiter' een verticale streep (|) in.
- Sla de opdracht op.
- Publiceer, voer uit en laat de keten draaien.
-
Controleer het tabblad Log van het knooppunt Element List to CSV - All Employees Command en bevestig dat er een lijst met medewerkers wordt weergegeven.
⚠️ Sla de uitvoering en de controle van de resultaten van deze stap niet over, aangezien er een kopie van dit commando in de keten wordt gemaakt en eventuele fouten vervolgens in meerdere instanties van het commando moeten worden gecorrigeerd.
Stap 5: Wijzig de geconverteerde XML van tabgescheiden naar kommagescheiden.
Gebruik de Tabular Transformation Connector om de uitvoer van de XML-conversie om te zetten van een door tabs gescheiden formaat naar een door komma's gescheiden formaat.
- Voeg een Change Delimiter Commando van de Tabular Transformation Connector toe aan de keten.
- Verbind de Element List to CSV - All Employees Command met de Change Delimiter Command.
- Configureer de opdracht met behulp van de volgende waarden:
- Naam: Scheidingsteken wijzigen - Alle medewerkers
- Invoerbestand: Geconverteerd uitvoerbestand van de Elementenlijst naar CSV - Alle medewerkers Commando
- Invoerscheidingsteken: \t
- Uitvoerscheidingsteken: , (komma)
- Sla de opdracht op.
Stap 6: Vergelijk de CSV- en XML-datasets om de verschillen te identificeren.
Gebruik Geavanceerde zoekopdracht om systematisch verschillen tussen de XML- en native CSV-gegevenssets te identificeren. Identificeer in dit voorbeeld alle records in de XML-dataset die verschillen van of ontbreken in de CSV-dataset. Eventuele extra records die in de CSV-dataset worden gevonden maar niet in de XML-dataset, worden door deze oefening niet geïdentificeerd.
- Voeg een Geavanceerde query opdracht van de Tabulaire transformatie connector toe aan de keten.
- Verbind de opdracht Scheidingsteken wijzigen - Alle werknemers met de opdracht Geavanceerde zoekopdracht .
- Naam van de opdracht: Geavanceerde zoekopdracht - Alle medewerkers .
- Klik in het gedeelte Tabellen op de knop Toevoegen om een tweede tabblad toe te voegen.
- Voor de eerste tabel:
- Specificeer het CSV-resultaat Uitvoer van de Scheidingsteken wijzigen - Alle werknemers opdracht.
- Geef XML op als de Tabelnaam .
- Voor de tweede tabel:
- Specificeer de Response Output van de GET - Headcount in CSV Format Commando.
Geef CSV op als de Tabelnaam . - Voer in de queryparameter het volgende in:
Select * from XML EXCEPT Select * from CSV - In de velden Input Delimiter en Output Delimiter, geef Comma op.
- Vink de optie Voorbeeldresultaten aan.
- Specificeer de Response Output van de GET - Headcount in CSV Format Commando.
- Voor de eerste tabel:
- Sla de opdracht op.
- Publiceer, voer uit en laat de keten draaien.
-
Bekijk het tabblad Log van het knooppunt Geavanceerde query - Alle medewerkers en controleer of de medewerkers-ID's overeenkomen met de onderstaande ID's voor de records die door de query worden geretourneerd.
Medewerkersnummer 01-6875791 10-4199621 38-3932553 63-0417180 78-3600453 85-6818050 97-2828467
Stap 7: Een opdrachtgroep toevoegen
Voeg een opdrachtgroep toe aan de keten om opdrachten beter te organiseren. Hoewel deze stap noodzakelijk is voor deze oefening, is het geen technische vereiste voor de keten. Deze stap dient enkel ter illustratie van de mogelijkheid om knooppunten van een keten te organiseren.
- Voeg een Commandogroep toe aan de keten.
- Verbind de GET - Headcount in XML Format Command met het In-gedeelte van de Command Group.
- Klik op de opdrachtgroep en selecteer vervolgens het pipetpictogram om de kleur van de opdracht te wijzigen in rood .
- Naam van de groep: Actieve werknemers .
Stap 8: Filter de CSV-gegevens zodat alleen actieve medewerkers worden weergegeven.
Gebruik een slim filter om alleen de werknemersgegevens te bewaren van de werknemers die actief zijn. Bij het definiëren van het filter gaan we ervan uit dat een lege waarde in het veld 'beëindigd' (termed) aangeeft dat een medewerker actief is.
- Voeg een Smart Filter Rows Command van de Tabular Transformation Connector toe aan de keten.
- Verbind de Groep Start uit de Commando Groep met de Smart Filter Commando.
- Configureer de opdracht met behulp van de volgende waarden:
- Geef de opdracht de naam: Slim filteren van rijen - CSV-gegevens - Actieve werknemers .
- Voor de parameter Input file selecteert u Response Output uit de opdracht GET - Headcount in CSV Format.
- Laat de parameter Output file leeg.
- Geef Komma op als scheidingsteken .
- Voltooi in het gedeelte Filters de volgende stappen:
- Klik op de
- Voer in de parameter Kolomnaam de naam in.
- Vink de optie Hoofdletterongevoelig aan.
- Selecteer in het dropdownmenu Condition de optie Equals .
- Voer in de parameter Compare Text het volgende in: true .
- Vink de optie Niet aan.
- Laat het selectievakje Trim uitgeschakeld.
Dit filter zal nu alle records identificeren waarbij het veld "termed" geen waarde van true bevat (dat wil zeggen, het bevat "false" of is leeg).
bereiken, vinkt u het selectievakje Inverse aan.
Stap 8: Filter de CSV-gegevens zodat alleen actieve medewerkers worden weergegeven.
Gebruik een slim filter om alleen de werknemersgegevens te bewaren van de werknemers die actief zijn. Bij het definiëren van het filter gaan we ervan uit dat een lege waarde in het veld 'beëindigd' ("termed") aangeeft dat een medewerker nog actief is.
- Voeg een Smart Filter Rows Command van de Tabular Transformation Connector toe aan de keten.
- Verbind de Groep Start uit de Commando Groep met de Smart Filter Commando.
- Configureer de opdracht met behulp van de volgende waarden:
- Geef de opdracht de naam: Slim filteren van rijen - CSV-gegevens - Actieve werknemers .
- Voor Input file , select the Response Output from the GET - Headcount in CSV Format Command.
- Laat de parameter Output file leeg.
- Geef Komma op als scheidingsteken .
- In het gedeelte Filters ,
- Klik op de
- Voer in de parameter Kolomnaam de naam in.
- Vink de optie Hoofdletterongevoelig aan.
- Selecteer in het dropdownmenu Condition de optie Equals .
- Voer in de parameter Compare Text het volgende in: true .
- Vink de optie Niet aan.
- Laat het selectievakje Trim uitgeschakeld.
Dit filter zal nu alle records identificeren waarbij het veld "termed" geen waarde van true bevat (dat wil zeggen, het bevat "false" of is leeg).
Stap 9: XML-gegevens filteren tijdens het converteren naar een door scheidingsteken gedefinieerde waarde.
In deze stap filteren we de XML-gegevens en converteren we deze naar een gescheiden formaat om alleen actieve werknemers te identificeren. Deze dataset wordt vervolgens vergeleken met de gefilterde CSV-dataset om verschillen te identificeren.
- Kopieer de Elementlijst naar CSV - Alle medewerkers Commando.
- Verbind de Groep Start van de Commando Groep met de Element Lijst naar CSV - Alle Medewerkers (Kopiëren) Commando.
- Bewerk de opdracht en geef deze de naam: Elementlijst naar CSV - Actieve werknemers .
- Voer in de parameter "Pad naar root" het volgende in:
/employee_data/employee[termed!='true']
Hiermee worden alle records geïdentificeerd waarbij het veld "termed" geen waarde van true bevat (dat wil zeggen, het bevat "false" of is leeg). - Sla de opdracht op.
Stap 10: Wijzig de gefilterde XML-gegevens naar door komma's gescheiden gegevens.
Net als bij de volledige personeelslijst moet de gefilterde actieve personeelslijst, die is geconverteerd van XML naar een door tabs gescheiden bestand, worden geconverteerd naar een door komma's gescheiden bestand.
- Kopieer de opdracht Wijzig scheidingsteken - Alle medewerkers
- Verbind de Elementlijst met CSV - Actieve werknemers opdracht met de Elementscheidingsteken wijzigen - Alle werknemers (kopiëren) opdracht.
- Configureer de opdracht met behulp van de volgende waarden.
- Naam: Scheidingsteken wijzigen - Actieve medewerkers.
- Wijzig de parameter Input file om de Converted File Output van de Element List to CSV - Active Employees Command te gebruiken.
- Sla de opdracht op.
Stap 11: Controleer op verschillen met actieve werknemers
Net als bij de volledige personeelslijst moet de gefilterde actieve personeelslijst, die is geconverteerd van XML naar een door tabs gescheiden bestand, worden geconverteerd naar een door komma's gescheiden bestand.
- Kopieer de Geavanceerde zoekopdracht - Alle medewerkers opdracht.
- Verbind de Uit van de opdrachtgroep met de Geavanceerde query - Alle medewerkers (kopiëren) opdracht. Door de opdracht 'Geavanceerde query - Alle medewerkers' te koppelen aan de opdracht 'Groep uitvoeren' wordt ervoor gezorgd dat alles wat is gekoppeld aan 'Groep starten' is voltooid voordat de keten verdergaat naar de opdrachten in 'Groep uitvoeren'.
- Configureer de opdracht met behulp van de volgende waarden:
- Naam: Geavanceerde zoekopdracht - Actieve medewerkers.
-
In het gedeelte Tabellen wijzigt u de parameter Bestand voor beide tabellen met behulp van de volgende waarden:
Tabel Bestand XML CSV-resultaatuitvoer van de opdracht 'Scheidingsteken wijzigen - Actieve medewerkers' CSV Uitvoer van slimme filterrijen van de opdracht Slimme filterrijen - Alleen actief, CSV-gegevens
- Sla de opdracht op.
Stap 12: Test de oefening
Nu de keten compleet is, test het resultaat.
- Publiceer de keten.
- Klik op Uitvoeren en selecteer vervolgens Keten uitvoeren .
- Zodra de Chain zijn run heeft voltooid, klikt u op het knooppunt Geavanceerde query - Actieve werknemers .
- Controleer op het tabblad Uitvoer of er 4 records zijn uitgevoerd.
-
Klik op het tabblad Logboeken en controleer of de werknemers-ID's overeenkomen met de onderstaande ID's in de records die door de query worden geretourneerd.
Werknemers-ID 01-6875791 63-0417180 78-3600453 85-6818050
Wil je meer weten over datatransformatie met behulp van Chains? Bekijk dan de Connected Learning Paths - Transformation Introduction !