In questo Percorso didattico collegato, creeremo una catena che illustra come convertire un file XML in CSV. Inoltre, esploreremo come confrontare i set di dati per isolare le differenze.
| Obiettivo di apprendimento primario | Il connettore XML |
| Obiettivi didattici secondari | Filtri intelligenti di trasformazione tabulare, modifica delimitatore e comandi di query avanzati |
| Prerequisiti | Configurare la connessione al connettore XML |
| Modello di supporto | CLP | Accesso ai dati XML |
Passo 1: Creare una catena
- Aggiungi una nuova catena , e assegna un nome alla catena: CLP | Accesso ai dati XML.
- Crea due variabili di catena come segue:
- In Variabili di catena, clicca due volte sul segno più (+).
- Usa i seguenti nomi e valori per le variabili:
- Variabile XML
- Nome: cv-XML-Dipendente
- Valore: https://cs-sftp-training-bucket.s3.amazonaws.com/cs-training/transformation-qs/employees.xml
- Variabile CSV
- Nome: cv-CSV-Dipendente
- Valore: https://cs-sftp-training-bucket.s3.amazonaws.com/cs-training/transformation-qs/employee_detail.csv
- Variabile XML
- Salva la catena.
Passo 2: Recuperare i dati in formato CSV
Usa il connettore HTTP per recuperare i dati relativi all'organico in formato CSV. Nelle fasi successive, recupereremo informazioni simili sull'organico in formato XML e poi confronteremo i set di dati per individuare le differenze.
- Aggiungi un comando GET dal connettore HTTP al nodo Inizio.
-
Configura il comando utilizzando i seguenti valori:
Nome GET - Organico in formato CSV Nome utente <leave blank> Password <leave blank> Certificato CA <leave blank> Certificato <leave blank> Chiave privata del certificato <leave blank> Mostra risposta Selezionata URL cv-CSV-Dipendente Variabile di catena Stringa di query <leave blank> Tipo di contenuto testo/csv Risposta <leave blank> - Salva il comando.
Passo 3: Recuperare i dati in formato XML
Utilizza il connettore HTTP per recuperare i dati relativi agli effettivi in formato XML. Come indicato al punto 2, in una fase successiva confronteremo il set di dati XML con il set di dati CSV per individuare le differenze.
- Aggiungi un comando GET dal connettore HTTP alla catena.
- Collega il nodo iniziale (GET - Organico in formato CSV) al comando GET.
-
Configura il comando utilizzando i seguenti valori:
Nome GET - Organico in formato XML Nome utente <leave blank> Password <leave blank> Certificato CA <leave blank> Certificato <leave blank> Chiave privata del certificato <leave blank> Mostra risposta Selezionata URL cv-XML-Dipendente Variabile di catena Stringa di query <leave blank> Tipo di contenuto applicazione/xml Risposta <leave blank> - Salva il comando.
Passo 4: Convertire il file XML in formato delimitato
Usa il Connettore XML per convertire i dati XML in un formato CSV che ci permetta di sfruttare i comandi successivi della Catena che prevedono dati in formato delimitato.
- Aggiungi un comando Elenco di elementi in CSV dal connettore XML alla catena.
- Collega il comando GET - Headcount in XML Format al comando Element List to CSV.
- Configura il comando utilizzando i seguenti valori:
- Per il parametro File di input, seleziona il parametro Output di risposta dal comando GET - Headcount in XML Format.
- Lascia vuoto il parametro Input Text.
- Per il parametro Path to root, inserisci le seguenti informazioni sulla busta:
/employee_data/employee - Segna la casella di controllo del parametro Preview Result.
-
Per la sezione Colonne, clicca sul pulsante Aggiungi 12 volte.
Per ciascuna delle colonne aggiunte, inserisci il nome del campo del record di dati visualizzato in anteprima nel passaggio precedente in entrambi i campi Column Name e XPath.
Esempio: emp_id⚠️ Il campo XPath è sensibile alle maiuscole e alle minuscole e deve corrispondere al carattere della busta.
- Per il parametro Delimitatore di più valori, inserisci una virgola (|).
- Salva il comando.
- Pubblica, esegui ed esegui la catena.
-
Esamina la scheda Log del nodo di comando Element List to CSV - All Employees e verifica che venga visualizzato un elenco di dipendenti.
⚠️ Non saltare l'esecuzione e la revisione dei risultati di questo passaggio perché una copia di questo comando verrà creata nella catena e gli eventuali errori dovranno essere corretti in più istanze del comando.
Passo 5: Cambiare l'XML convertito da Tab-delimitato a Comma-delimitato
Usa il Connettore di Trasformazione Tabulare per convertire l'output generato dalla conversione XML da un formato delimitato da tabelle a un formato delimitato da virgole.
- Aggiungi un comando Change Delimiter dal connettore Tabular Transformation alla catena.
- Collega il comando Elenco elementi a CSV - Tutti i dipendenti al comando Cambia delimitatore.
- Configura il comando utilizzando i seguenti valori:
- Nome: Cambia delimitatore - Tutti i dipendenti
- File di input: File convertito Output dall'elenco di elementi a CSV - Tutti i dipendenti Comando
- Delimitatore di ingresso: \t
- Delimitatore di uscita:, (virgola)
- Salva il comando.
Passo 6: Confronto dei set di dati CSV e XML per identificare le differenze
Usa la query avanzata per identificare sistematicamente le differenze tra i set di dati XML e CSV nativi. In questo esempio, identifica tutti i record del dataset XML che sono diversi o mancanti dal dataset CSV. Tutti i record aggiuntivi trovati nel dataset CSV che non sono presenti nel dataset XML non saranno identificati da questo esercizio.
- Aggiungi un comando Advanced Query dal connettore Tabular Transformation alla catena.
- Collega il comando Cambia delimitatore - Tutti i dipendenti al comando Query avanzata.
- Assegna un nome al comando: Query avanzata - Tutti i dipendenti.
- Nella sezione Tabelle, clicca sul pulsante Aggiungi per aggiungere una seconda scheda.
- Per la prima tabella:
- Specifica il risultato CSV ottenuto dal comando Cambia delimitatore - Tutti i dipendenti.
- Specifica XML come Nome della tabella.
- Per la seconda tabella:
- Specifica l'output della risposta dal comando GET - Headcount in CSV Format.
Specifica CSV come nome della tabella . - Nel parametro Query, inserisci quanto segue:
Seleziona * da XML ECCETTO Seleziona * da CSV - Nei campi Input Delimiter e Output Delimiter, specifica Comma.
- Seleziona l'opzione Anteprima dei risultati.
- Specifica l'output della risposta dal comando GET - Headcount in CSV Format.
- Per la prima tabella:
- Salva il comando.
- Pubblica, esegui ed esegui la catena.
-
Esamina la scheda Log del nodo di comando Advanced Query - All Employees e conferma che gli ID dei dipendenti corrispondono a quelli riportati di seguito per i record restituiti dalla query.
ID dipendente 01-6875791 10-4199621 38-3932553 63-0417180 78-3600453 85-6818050 97-2828467
Passo 7: Aggiungere un gruppo di comandi
Aggiungi un gruppo di comandi alla catena per organizzare meglio i comandi. Sebbene questo passo sia necessario ai fini dell'esercizio, non è un requisito tecnico per la Catena. Questo passo serve solo a illustrare la capacità di organizzare i nodi di una Catena.
- Aggiungi un Gruppo di Comandi alla Catena.
- Collega il comando GET - Organico in formato XML alla sezione In del Gruppo di Comandi.
- Clicca sul Gruppo di comandi e seleziona l'icona del contagocce per cambiare il colore del comando in rosso.
- Dai un nome al gruppo: Dipendenti attivi.
Passo 8: Filtrare i dati CSV solo per i dipendenti attivi
Utilizza un filtro intelligente per conservare solo i record dei dipendenti attivi. Quando definiamo il filtro, assumiamo che il campo terminato (termed) vuoto indichi che un dipendente è attivo.
- Aggiungi un comando Smart Filter Rows dal connettore di trasformazione tabellare alla catena.
- Collega il comando Inizio gruppo dal gruppo di comandi al comando Filtro intelligente.
- Configura il comando utilizzando i seguenti valori:
- Dai un nome al comando: Filtro intelligente Righe - Dati CSV - Dipendenti attivi.
- Per il parametro File di input, seleziona il parametro Output di risposta dal comando GET - Organico in formato CSV.
- Lascia vuoto il parametro Output del file.
- Specifica Comma come Delimitatore.
- Nella sezione Filtri completa i seguenti passaggi:
- Clicca sul pulsante Aggiungi nei filtri Testo.
- Nel parametro Nome colonna inserisci con il termine.
- Seleziona l'opzione Case Insensitive.
- Dal menu a tendina Condition seleziona Equals.
- Nel parametro Compare Text inserisci true.
- Seleziona l'opzione Not.
- Lascia la casella di controllo Trim deselezionata.
Questo filtro identificherà tutti i record in cui il campo "termed" non contiene il valore true (cioè contiene "false" o è vuoto).
- Lascia selezionata l'opzione Anteprima del risultato.
- L'opzione Inverse permette al Filtro Intelligente di mantenere (selezionata) o rimuovere (deselezionata) tutte le righe che corrispondono ai criteri del filtro. In questo esercizio, vogliamo mantenere tutte le righe in cui il campo "termed" ha un valore vero o vuoto.
Per ottenere questo risultato, seleziona la casella di controllo Inverse. - Salva il comando.
Passo 8: Filtrare i dati CSV solo per i dipendenti attivi
Utilizza un filtro intelligente per conservare solo i record dei dipendenti attivi. Quando definiamo il filtro, assumiamo che il campo terminato ("termed") sia vuoto e che un dipendente sia attivo.
- Aggiungi un comando Smart Filter Rows dal connettore di trasformazione tabellare alla catena.
- Collega il comando Inizio gruppo dal gruppo di comandi al comando Filtro intelligente.
- Configura il comando utilizzando i seguenti valori:
- Assegna un nome al comando: Filtro intelligente Righe - Dati CSV - Dipendenti attivi.
- Per il file di input , seleziona l'output di risposta dal comando GET - Organico in formato CSV.
- Lascia vuoto il parametro Output del file.
- Specifica Comma come Delimitatore.
- Nella sezione Filtri,
- Clicca sul pulsante Aggiungi nei filtri Testo.
- Nel parametro Nome colonna inserisci con il termine.
- Seleziona l'opzione Case Insensitive.
- Dal menu a tendina Condition seleziona Equals.
- Nel parametro Compare Text inserisci true.
- Seleziona l'opzione Not.
- Lascia la casella di controllo Trim deselezionata.
Questo filtro ora identificherà tutti i record in cui il campo "termed" non contiene il valore true (cioè contiene "false" o è vuoto).
- Lascia contrassegnata (spuntata) la casella di controllo Preview Result.
- L'opzione Inverse permette al Filtro Intelligente di mantenere (selezionata) o rimuovere (deselezionata) tutte le righe che corrispondono ai criteri del filtro. In questo esercizio, vogliamo mantenere tutte le righe in cui il campo con il termine ha un valore vero o vuoto. Per ottenere questo risultato, seleziona la casella di controllo Inverse.
- Salva il comando.
Passo 9: Filtrare i dati XML durante la conversione in formato delimitato
In questo passaggio, filtriamo i dati XML durante la conversione in formato delimitato per identificare solo i dipendenti attivi. Questo set di dati sarà successivamente confrontato con il set di dati CSV filtrati per identificare le differenze.
- Copia l'elenco degli elementi di in CSV - Tutti i dipendenti Comando.
- Collega il Gruppo Avvia dal Gruppo di Comandi al Comando Elenco elementi in CSV - Tutti i dipendenti (Copia).
- Modifica il comando, assegnandogli un nome: Elenco di elementi in CSV - Dipendenti attivi.
- Nel parametro "Percorso alla radice", inserisci quanto segue.
/employee_data/employee[termed!='true']
In questo modo verranno identificati tutti i record in cui il campo "termed" non contiene il valore true (cioè contiene "false" o è vuoto). - Salva il comando.
Passo 10: Cambiare i dati XML filtrati in delimitati da virgole
Come per l'elenco completo dei dipendenti, l'elenco dei dipendenti attivi filtrati che è stato convertito da XML a tabellare deve essere convertito in un elenco di dipendenti delimitato da virgole.
- Copia il comando Cambia delimitatore - Tutti i dipendenti.
- Collega il comando Elenco elementi a CSV - Dipendenti attivi al comando Modifica delimitatore elementi - Tutti i dipendenti (copia).
- Configura il comando utilizzando i seguenti valori.
- Nome: Cambia delimitatore - Dipendenti attivi.
- Modifica il parametro File di input per utilizzare il comando File convertito Output dell'elenco di elementi in CSV - Dipendenti attivi.
- Salva il comando.
Passo 11: Verifica le differenze con i dipendenti attivi
Come per l'elenco completo dei dipendenti, l'elenco dei dipendenti attivi filtrati che è stato convertito da XML a tabellare deve essere convertito in un elenco di dipendenti delimitato da virgole.
- Copia il comando Query avanzata - Tutti i dipendenti.
- Collega l'uscita del gruppo di comandi al comando Advanced Query - All Employees (Copy). Collegare il comando Query avanzata - Tutti i dipendenti al Gruppo in uscita assicura che tutto ciò che è collegato al Gruppo in partenza finisca prima che la catena passi ai comandi del Gruppo in uscita.
- Configura il comando utilizzando i seguenti valori:
- Nome: Query avanzata - Dipendenti attivi.
-
Nella sezione Tables, modifica il parametro File per entrambe le tabelle utilizzando i seguenti valori:
Tabella File XML Risultato CSV Output dal comando Delimitatore di modifica - Dipendenti attivi CSV Output riga filtro intelligente dal comando Righe filtro intelligente - Solo attivo, dati CSV
- Salva il comando.
Passo 12: Prova l'esercizio
Ora che la Catena è completa, verifica il risultato.
- Pubblica la Catena.
- Clicca su Execute e poi seleziona Run Chain.
- Una volta completata l'esecuzione della Catena, clicca sul nodo Advanced Query - Active Employees.
- Nella scheda Outputs, conferma che sono stati generati 4 record.
-
Clicca sulla scheda Logs e conferma che gli ID dei dipendenti corrispondono a quelli riportati di seguito per i record restituiti dalla query.
ID dipendente 01-6875791 63-0417180 78-3600453 85-6818050
Per saperne di più sulla trasformazione dei dati utilizzando le catene, consulta il sito Percorsi didattici collegati - Introduzione alla trasformazione!