Dans ce parcours d'apprentissage connecté, nous allons créer une chaîne qui illustre comment convertir un simple ensemble de données JSON en CSV. Nous verrons également comment boucler sur un ensemble de données JSON et filtrer sur la base des valeurs contenues dans les données.
| Objectif d'apprentissage principal | Capacité du connecteur JSON |
| Objectifs d'apprentissage secondaires |
Transformation tabulaire Commande de requête avancée Itération en groupe |
| Conditions préalables | Configurer la connexion du connecteur JSON |
| Modèle de support | CLP | Accès aux données JSON |
Étape 1 : Créer une chaîne
- Ajouter une nouvelle chaîne
- Nom de la chaîne CLP | Accès aux données JSON
- Créer une variable Chaîne :
- Sous Variables de chaîne, cliquez sur le signe plus
- Nom : cv-JSON-Employee
- Valeur : https://cs-sftp-training-bucket.s3.amazonaws.com/cs-training/transformation-qs/emp_detail.json
- Sous Variables de chaîne, cliquez sur le signe plus
- Sauver la chaîne
Étape 2 : Récupérer les données JSON
Nous utilisons le connecteur HTTP pour récupérer les données relatives aux effectifs au format JSON à partir d'un site web.
- Ajouter une commande GET du connecteur HTTP au nœud de départ.
- Configurez la commande comme suit :
| Nom | GET - Tous les salariés |
| Nom de l'utilisateur | <leave blank> |
| Mot de passe | <leave blank> |
| Certificat CA | <leave blank> |
| Certificat | <leave blank> |
| Clé privée du certificat | <leave blank> |
| Afficher la réponse | Vérifié |
| URL | Variable de chaîne cv-JSON-Employee |
| Chaîne de requête | <leave blank> |
| Type de contenu | application/json |
| Réponse | <leave blank> |
- Enregistrer la commande
Étape 3 : Convertir JSON en CSV
Utilisez le connecteur JSON pour convertir l'ensemble de données JSON au format CSV. Sélectionnez uniquement les champs "ID de l'employé" et "pays" du tableau JSON dans cette étape.
Il est important de comprendre le schéma de l'ensemble de données JSON. La commande List File Content du File Utilities Connector peut être utilisée pour visualiser le schéma. Vous pouvez également ajouter le schéma au champ Response de la commande Get pour faciliter la consultation. Vous trouverez ci-dessous le schéma du JSON des employés :
Schéma :
[
{
"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
}
]
- Ajouter un tableau au CSV Commande du connecteur JSON à la chaîne.
- Connectez le nœud de départ (GET - All Employees) à la commande Array to CSV.
- Nom de la commande : Array to CSV - All Employees.
- Dans le paramètre JSON Data, sélectionnez la réponse Output de la commande GET - All Employees.
- Laissez les paramètres Saisir Texte, Chemin vers la racine et Filtre vides.
- Laissez le paramètre Multi-value Delimiter à la virgule (,).
- Cochez l'option Preview Result.
- La section Colonnes est utilisée pour spécifier quels éléments du tableau JSON seront extraits vers un jeu de données en colonnes (CSV). Cliquez une fois sur le bouton Add pour ajouter une colonne supplémentaire.
- Dans la première colonne, saisissez emp_id pour le nom de la colonne et .emp_id pour les paramètres JSONPath.
- ❗ Veillez à inclure le point (.) avant emp_id dans le paramètre JSONPath.
- Dans la deuxième colonne, saisissez country pour le nom de la colonne et .country pour les paramètres JSONPath.
- Sélectionnez Virgule pour le paramètre Délimiteur.
- Dans la première colonne, saisissez emp_id pour le nom de la colonne et .emp_id pour les paramètres JSONPath.
- Enregistrer la commande
Étape 4 : Obtenir la liste unique des pays dans les données
Utilisez une simple instruction Select Distinct avec la commande Advanced Query du Tabular Transformation Connector pour obtenir l'ensemble unique de pays dans les données. Plus tard dans cet exercice, cette liste sera utilisée pour extraire les salariés de chaque pays individuellement.
- Ajouter une commande Advanced Query de Tabular Transformation Connector à la chaîne.
- Connectez la commande Array to CSV - All Employees à la commande Advanced Query.
- Nommez la commande : Requête avancée - Pays.
- La section Tables permet d'utiliser un ou plusieurs ensembles de données délimitées pour créer des tables sur lesquelles des instructions SQL peuvent être écrites. Une base de données SQLite avec les tables spécifiées est générée à la volée, aucune installation de logiciel supplémentaire n'est nécessaire.
- Dans le champ File, indiquez le fichier converti Output from the Array to CSV - All Employees Command.
- Saisissez Pays dans le paramètre Nom de la table. La requête spécifiée sera exécutée sur cette table.
- Dans le paramètre Query, entrez ce qui suit :
Sélectionner un pays distinct dans la liste des pays
- Spécifiez Virgule pour les paramètres Délimiteur d'entrée et Délimiteur de sortie.
- Cochez le paramètre Aperçu des résultats
- Sauvegarder la commande.
Étape 5 : Créer un tableau JSON à partir de la liste des pays
Nous utilisons la commande CSV to JSON du connecteur JSON pour convertir la liste unique des pays en un tableau JSON. Un groupe de commande peut alors itérer sur chaque élément de ce tableau.
- Ajouter une commande CSV to JSON du connecteur JSON à la chaîne.
- Connectez la commande Advanced Query - Countries à la commande CSV to JSON.
- Configurez la commande comme suit :
| Nom | CSV vers JSON - Pays |
| Fichier d'entrée | Résultat Résultat de la commande Advanced Query - Countries |
| Séparateur | Virgule (,) |
- Enregistrer la commande
Étape 6 : Ajouter un groupe de commande
Ajoutez un groupe de commande à la chaîne pour permettre l'itération sur chacun des pays individuels identifiés dans l'étape de la requête avancée.
- Ajouter un groupe de commandes à la chaîne.
- Connecter la commande CSV to JSON - Countries à la section In du groupe de commandes.
- Cliquez sur le groupe de commandes, puis sélectionnez l'icône de la pipette pour changer la couleur de la commande en orange.
- Nom du groupe : Employés actifs.
- Activez l'option Iterations sous l'onglet itérations et sélectionnez JSON File Output from the CSV to JSON - Countries Command.
- Sauvegarder le groupe de commande.
Étape 7 : Filtrer les données JSON pour les employés par pays
Convertir l'ensemble de données JSON en CSV tout en filtrant uniquement les enregistrements des employés pour le pays en cours de traitement dans l'itération. Cette étape met en évidence deux capacités puissantes : la possibilité d'effectuer des boucles ou des itérations et celle d'appliquer des filtres au processus de conversion JSON. La compréhension de ces capacités renforce la capacité à développer des chaînes robustes et efficaces.
Copiez la commande Array to CSV précédemment configurée pour cette étape et la configuration s'appuie en grande partie sur la même configuration, sauf dans les cas indiqués ci-dessous.
- Copiez le tableau dans la commande CSV - All Employees.
- Connecter le groupe Démarrer du groupe de commande à la matrice à CSV - Tous les employés (Copie) Commande.
- Modifier la commande.
- Nom de la commande : Array to CSV - Employees by Country.
- Dans le paramètre Filtre, entrez ce qui suit :
?(@.country == "<JSON FILE ITERATION>")
-
- L'espace avant et après le double signe égal (==) sont requis.
- <JSON> doit être remplacé par JSON File Iteration sous Group Iterator dans le panneau des variables.
- Lors de l'ajout de l'itération du fichier JSON, cliquez sur la bulle Variable et ajoutez une transformation Get Value from JSON Variable.
- Dans le paramètre Valeur de la transformation de la variable, entrez country et appuyez sur la touche Entrée. N'oubliez pas que JSON est sensible à la casse .
- Modifiez la colonne emp_id pour avoir une colonne Nom de la colonne de employee_id. Ne pas modifier le chemin d'accès JSONPath.
- Le nom de la colonne généré par la commande ne doit pas nécessairement correspondre à la clé du tableau JSON.
- Ajoutez 10 colonnes à la commande et configurez-les comme indiqué ci-dessous :
| Nom de la colonne | JSONPath |
| nom d'utilisateur | .nom_utilisateur |
| prénom | .prénom |
| nom de famille | .nom_de_famille |
| titre | .job_title |
| service | .département |
| ville | .ville |
| devise | .monnaie |
| date_d'embauche | .date_d'embauche |
| fte | .fte |
| résilié | .appelé |
- Sauvegarder la commande.
Étape 8 : Tester l'exercice
Maintenant que la chaîne est terminée, testez le résultat.
- Publier la chaîne.
- Cliquez sur Execute et sélectionnez ensuite Run Chain.
- Une fois la chaîne terminée, cliquez sur le nœud Array to CSV - Employees by Country.
- Notez que l'itération s'est déroulée cinq (5) fois.
- Sélectionnez chaque valeur d'itération, puis cliquez sur l'onglet Inputs. Confirmez que le filtre correspond au tableau ci-dessous.
- Sélectionnez l'itération 5 et cliquez sur l'onglet Logs. Confirmez que l'aperçu des données correspond à l'image ci-dessous.
| Itération 1 | États-Unis |
| Itération 2 | Brésil |
| Itération 3 | Kenya |
| Itération 4 | Italie |
| Itération 5 |
Australie |
Pour en savoir plus sur la transformation des données à l'aide des chaînes, consultez le site Connected Learning Paths - Transformation Introduction!