In dit Aangesloten Leerpad zullen we een Ketting maken die illustreert hoe u een eenvoudige JSON dataset naar CSV kunt converteren. Ook zullen we onderzoeken hoe we over een JSON-gegevensset kunnen lussen en filteren op basis van waarden in de gegevens.
| Primair leerdoel | JSON Connector mogelijkheid |
| Secundaire leerdoelen |
Tabulaire transformatie Geavanceerd Query-commando Groep iteratie |
| Vereisten | JSON-connectorverbinding configureren |
| Ondersteunende sjabloon | CLP | JSON-gegevens openen |
Stap 1: Maak een ketting
- Een nieuwe ketting toevoegen
- Benoem de ketting CLP | JSON-gegevens openen
- Kettingvariabele aanmaken:
- Klik onder Kettingvariabelen op het plusteken
- Naam: cv-JSON-Werknemer
- Waarde: https://cs-sftp-training-bucket.s3.amazonaws.com/cs-training/transformation-qs/emp_detail.json
- Klik onder Kettingvariabelen op het plusteken
- Red de Ketting
Stap 2: JSON-gegevens ophalen
Wij gebruiken de HTTP Connector om headcount-gerelateerde gegevens in JSON-formaat op te halen van een weblocatie.
- Een GET-commando van de HTTP-connector aan het Start-knooppunt toevoegen
- Configureer de opdracht met het volgende:
| Naam | GET - Alle werknemers |
| Gebruikersnaam | <laat leeg> |
| Wachtwoord | <laat leeg> |
| CA-certificaat | <laat leeg> |
| Certificaat | <laat leeg> |
| Certificaat Privé Sleutel | <laat leeg> |
| Reactie tonen | Gecontroleerd |
| URL | cv-JSON-Werknemer Ketenvariabele |
| Querystring | <laat leeg> |
| Type inhoud | toepassing/json |
| Reactie | <laat leeg> |
- De opdracht opslaan
Stap 3: JSON omzetten naar CSV
Gebruik de JSON Connector om de JSON dataset naar CSV-formaat te converteren. Selecteer in deze stap alleen de velden werknemer-ID en land uit de JSON array.
Het is belangrijk om het schema van de JSON dataset te begrijpen. Een opdracht List File Content (Lijst bestandsinhoud) van de File Utilities Connector kan worden gebruikt om het schema te visualiseren. U kunt het schema ook toevoegen aan het veld Response in de opdracht Get, zodat u er gemakkelijk naar kunt verwijzen. Hieronder ziet u het schema van de werknemers JSON:
Schema:
[
{
"emp_id": "26-4992011",
"user_name": "apostle0",
"first_name": "Audi",
"achternaam": "Postle",
"functie_titel": "Chief Design Engineer",
"afdeling": "Marketing",
"city": "Cheyenne",
"country": "United States",
"currency": "USD",
"hire_date": "08/30/2000",
"fte": 1,
"termed": false
}
]
- Voeg een Array to CSV opdracht van de JSON Connector toe aan de ketting.
- Verbind het Startknooppunt (GET - Alle werknemers) met de opdracht Array to CSV.
- Geef de opdracht een naam: Array naar CSV - Alle werknemers.
- Selecteer in de parameter JSON Data de uitvoer Response van de opdracht GET - All Employees.
- Laat de parameters Input Text, Path to root, en Filter leeg.
- Laat de parameter Multi-value Delimiter een komma (,).
- Vink de optie Voorbeeldresultaat aan.
- De kolomsectie wordt gebruikt om aan te geven welke elementen uit de JSON array geëxtraheerd moeten worden naar een kolomvormige (CSV) dataset. Klik eenmaal op de knop Add om een extra kolom toe te voegen.
- Voer in de eerste kolom emp_id in voor de kolomnaam en .emp_id voor de JSONPath-parameters.
- ❗ Zorg ervoor dat u de punt (.) vóór emp_id in de JSONPath parameter zet.
- Voer in de tweede kolom country in voor de kolomnaam en .country voor de JSONPath-parameters.
- Selecteer Komma voor de parameter Scheidingsteken.
- Voer in de eerste kolom emp_id in voor de kolomnaam en .emp_id voor de JSONPath-parameters.
- De opdracht opslaan
Stap 4: Verkrijg de unieke lijst van landen in de gegevens
Gebruik een eenvoudige Select Distinct verklaring met de Advanced Query Command van de Tabular Transformation Connector om de unieke set landen in de gegevens te krijgen. Later in deze oefening zal deze lijst gebruikt worden om de werknemers per land op te halen.
- Voeg een Advanced Query opdracht van de Tabular Transformation Connector toe aan de Chain.
- Verbind de opdracht Array to CSV - All Employees met de opdracht Advanced Query.
- Geef de opdracht een naam: Geavanceerde zoekopdracht - Landen.
- In het onderdeel Tabellen kunnen één of meer afgebakende datasets gebruikt worden om tabellen aan te maken waartegen SQL-statements geschreven kunnen worden. Een SQLite-database met de opgegeven tabellen wordt direct gegenereerd, er hoeft geen extra software geïnstalleerd te worden.
- Geef in het veld Bestand het geconverteerde bestand Uitvoer van de opdracht Array to CSV - All Employees op.
- Voer Landen in de parameter Tabelnaam in. De opgegeven query wordt tegen deze tabel uitgevoerd.
- Voer in de parameter Query het volgende in:
Selecteer een afzonderlijk land uit Landen
- Geef Comma op voor de parameters Input Delimiter en Output Delimiter.
- Controleer de parameter Voorbeeldresultaten
- Sla de opdracht op.
Stap 5: Maak een JSON-array van de landenlijst
We gebruiken het CSV to JSON commando van de JSON Connector om de unieke lijst met landen te converteren naar een JSON array. Een opdrachtgroep kan dan elk item in deze matrix itereren.
- Voeg een CSV to JSON opdracht van de JSON Connector toe aan de ketting.
- Verbind de opdracht Geavanceerde query - Landen met de opdracht CSV to JSON.
- Configureer de opdracht als volgt:
| Naam | CSV naar JSON - Landen |
| Invoerbestand | Resultaat Uitvoer van de opdracht Geavanceerde query - Landen |
| Scheidingsteken | Komma (,) |
- De opdracht opslaan
Stap 6: Een commandogroep toevoegen
Voeg een opdrachtgroep toe aan de ketting om iteratie op elk van de individuele landen die in de stap Geavanceerde query zijn geïdentificeerd, mogelijk te maken.
- Voeg een Commandogroep toe aan de ketting.
- Verbind de opdracht CSV met JSON - Landen met het gedeelte In van de opdrachtgroep.
- Klik op de Commandogroep en selecteer vervolgens het pipetpictogram om de Commandokleur te wijzigen in oranje.
- Geef de groep een naam: Actieve werknemers.
- Schakel de optie Iteraties in onder het tabblad iteraties en selecteer de optie JSON-bestand Uitvoer van de opdracht CSV naar JSON - Landen.
- Sla de commandogroep op.
Stap 7: JSON-gegevens voor werknemers filteren op land
Converteer de JSON-gegevensset naar CSV en filter alleen de werknemerrecords voor het land dat momenteel in de iteratie wordt verwerkt. Deze stap benadrukt twee krachtige mogelijkheden - de mogelijkheid om te lussen of te itereren en de mogelijkheid om filters toe te passen op het JSON-conversieproces. Inzicht in deze mogelijkheden versterkt het vermogen om robuuste, efficiënte Ketens te ontwikkelen.
Kopieer de eerder geconfigureerde Array naar CSV-commando voor deze stap en de configuratie maakt grotendeels gebruik van dezelfde configuratie, behalve waar hieronder aangegeven.
- Kopieer de Array naar CSV - Alle werknemers Opdracht.
- Verbind de Groep Start van de opdrachtgroep met de Array to CSV - All Employees (Copy) Opdracht.
- Bewerk de opdracht.
- Geef de opdracht een naam: Array naar CSV - Werknemers per land.
- Voer in de parameter Filter het onderstaande in
?(@.country == "<JSON FILE ITERATION>")
-
- De spatie voor en na het dubbele gelijkheidsteken (==) zijn vereist.
- <JSON FILE ITERATION> moet worden vervangen door de JSON File Iteration onder de Group Iterator in het deelvenster Variable.
- Wanneer u de JSON bestandsinterval toevoegt, klikt u op de variabelenballon en voegt u een Get Value from JSON Variable-transformatie toe.
- Voer in de waardeparameter van de variabele transformatie land in en druk op de Enter-toets. Onthoud dat JSON hoofdlettergevoelig is.
- Bewerk de emp_id kolom zodat deze een Kolomnaam van employee_id. Wijzig het JSONPath niet.
- De kolomnaam die door de opdracht wordt gegenereerd, hoeft niet overeen te komen met de JSON array-sleutel.
- Voeg 10 kolommen toe aan de opdracht en configureer deze zoals hieronder aangegeven:
| Kolom Naam | JSONPath |
| gebruikersnaam | .gebruikersnaam |
| voornaam | .voornaam |
| achternaam | .achternaam |
| functie | .job_titel |
| afdeling | .afdeling |
| stad | .stad |
| valuta | .valuta |
| huur_datum | .huur_datum |
| fte | .fte |
| beëindigd | .genoemd |
- Sla de opdracht op.
Stap 8: De oefening testen
Nu de Chain compleet is, kunt u het resultaat testen.
- Publiceer de keten.
- Klik op Uitvoeren en selecteer vervolgens Keten uitvoeren.
- Zodra de Chain voltooid is, klikt u op het knooppunt Array to CSV - Employees by Country.
- Merk op dat de iteratie vijf (5) keer is uitgevoerd.
- Selecteer elke iteratiewaarde en klik vervolgens op het tabblad Inputs. Controleer of het Filter overeenkomt met de onderstaande tabel.
- Selecteer iteratie 5 en klik op het tabblad Logs. Controleer of het voorbeeld van de gegevens overeenkomt met de onderstaande afbeelding.
| Iteratie 1 | Verenigde Staten |
| Iteratie 2 | Brazilië |
| Iteratie 3 | Kenia |
| Iteratie 4 | Italië |
| Iteratie 5 |
Australië |
Om meer te leren over datatransformatie met behulp van Chains, kunt u de Connected Learning Paths - Transformation Introduction bekijken!