W tej połączonej ścieżce edukacyjnej utworzymy łańcuch ilustrujący sposób konwersji pliku XML na CSV. Zbadamy również, jak porównywać zbiory danych, aby wyodrębnić różnice.
| Podstawowy cel edukacyjny | Konektor XML |
| Dodatkowe cele edukacyjne | Inteligentne filtry transformacji tabelarycznej, zmiana separatora i zaawansowane polecenia zapytań |
| Wymagania wstępne | Skonfiguruj połączenie XML Connector |
| Szablon pomocniczy | CLP | Dostęp do danych XML |
Krok 1: Utwórz łańcuch
- Dodaj nowy łańcuch i nadaj mu nazwę: CLP | Accessing XML Data.
- Utwórz dwie zmienne łańcuchowe w następujący sposób:
- W sekcji Chain Variables kliknij dwukrotnie znak plus (+).
- Użyj następujących nazw i wartości zmiennych:
- Zmienna XML
- Nazwa: cv-XML-Employee
- Wartość: https://cs-sftp-training-bucket.s3.amazonaws.com/cs-training/transformation-qs/employees.xml
- Zmienna CSV
- Nazwa: cv-CSV-Employee
- Wartość: https://cs-sftp-training-bucket.s3.amazonaws.com/cs-training/transformation-qs/employee_detail.csv
- Zmienna XML
- Uratuj łańcuch.
Krok 2: Pobierz dane w formacie CSV
Użyj konektora HTTP, aby pobrać dane związane z liczbą pracowników w formacie CSV. W późniejszych krokach pobierzemy podobne informacje o liczbie pracowników w formacie XML, a następnie porównamy zestawy danych w celu zidentyfikowania różnic.
- Dodaj polecenie GET z konektora HTTP do węzła Start.
-
Skonfiguruj polecenie przy użyciu następujących wartości:
Nazwa GET - Liczba pracowników w formacie CSV Nazwa użytkownika <pozostaw puste> Hasło <pozostaw puste> Certyfikat CA <pozostaw puste> Certyfikat <pozostaw puste> Klucz prywatny certyfikatu <pozostaw puste> Pokaż odpowiedź Sprawdzone Adres URL cv-CSV-Pracownik Zmienna łańcuchowa Ciąg zapytania <pozostaw puste> Typ zawartości text/csv Odpowiedź <pozostaw puste> - Zapisz polecenie.
Krok 3: Pobieranie danych w formacie XML
Użyj konektora HTTP, aby pobrać dane związane z liczbą pracowników w formacie XML. Jak wspomniano w kroku 2, w kolejnym kroku porównamy zbiór danych XML ze zbiorem danych CSV, aby zidentyfikować różnice.
- Dodaj polecenie GET z konektora HTTP do łańcucha.
- Połącz węzeł początkowy (GET - Headcount in CSV Format) z poleceniem GET.
-
Skonfiguruj polecenie przy użyciu następujących wartości:
Nazwa GET - Liczba pracowników w formacie XML Nazwa użytkownika <pozostaw puste> Hasło <pozostaw puste> Certyfikat CA <pozostaw puste> Certyfikat <pozostaw puste> Klucz prywatny certyfikatu <pozostaw puste> Pokaż odpowiedź Sprawdzone Adres URL cv-XML-Employee Zmienna łańcuchowa Ciąg zapytania <pozostaw puste> Typ zawartości application/xml Odpowiedź <pozostaw puste> - Zapisz polecenie.
Krok 4: Konwersja pliku XML do formatu Delimited
Użyj konektora XML, aby przekonwertować dane XML do formatu CSV, co pozwoli nam wykorzystać polecenia w dalszej części łańcucha, które oczekują danych w formacie rozdzielanym.
- Dodaj polecenie Element List to CSV z XML Connector do łańcucha.
- Połącz polecenie GET - Headcount in XML Format z poleceniem Element List to CSV.
- Skonfiguruj polecenie przy użyciu następujących wartości:
- Dla parametru Input File wybierz Response Output z polecenia GET - Headcount in XML Format.
- Pozostaw parametr Input Text pusty.
- W przypadku parametru Path to root wprowadź następujące informacje o kopercie:
/employee_data/employee - Zaznacz pole wyboru parametru Preview Result.
-
W sekcji Kolumny kliknij przycisk Dodaj 12 razy.
Dla każdej z dodanych kolumn wprowadź nazwę pola z rekordu danych wyświetlonego w poprzednim kroku w polach Column Name i XPath.
Przykład: emp_id⚠️ W polu XPath rozróżniana jest wielkość liter i musi ona odpowiadać wielkości liter w kopercie.
- Dla parametru Multi-value Delimiter wprowadź znak pipe (|).
- Zapisz polecenie.
- Opublikuj, wykonaj i uruchom łańcuch.
-
Przejrzyj zakładkę Log w węźle poleceń Element List to CSV - All Employees i potwierdź, że wyświetlana jest lista pracowników.
⚠️ Nie pomijaj wykonania i przeglądu wyników tego kroku, ponieważ kopia tego polecenia zostanie utworzona w łańcuchu i wszelkie błędy będą musiały zostać poprawione w wielu instancjach polecenia.
Krok 5: Zmień przekonwertowany plik XML z rozdzielanego tabulatorami na rozdzielany przecinkami
Użyj łącznika transformacji tabelarycznej, aby przekonwertować dane wyjściowe wygenerowane w wyniku konwersji XML z formatu rozdzielanego tabelami na format rozdzielany przecinkami.
- Dodaj polecenie Change Delimiter z łącznika Tabular Transformation do łańcucha.
- Połącz polecenie Element List to CSV - All Employees z poleceniem Change Delimiter.
- Skonfiguruj polecenie przy użyciu następujących wartości:
- Nazwa: Zmień separator - wszyscy pracownicy
- Plik wejściowy: Przekonwertowany plik Wyjście z listy elementów do CSV - Wszyscy pracownicy Polecenie
- Ogranicznik wejścia: \t
- Ogranicznik wyjścia:, (przecinek)
- Zapisz polecenie.
Krok 6: Porównaj zestawy danych CSV i XML, aby zidentyfikować różnice
Użyj zaawansowanego zapytania , aby systematycznie identyfikować różnice między zestawami danych XML i natywnymi CSV. W tym przykładzie zidentyfikuj wszystkie rekordy w zbiorze danych XML, które różnią się lub których brakuje w zbiorze danych CSV. Wszelkie dodatkowe rekordy znalezione w zbiorze danych CSV, które nie znajdują się w zbiorze danych XML, nie zostaną zidentyfikowane w tym ćwiczeniu.
- Dodaj polecenie Advanced Query z łącznika Tabular Transformation Connector do łańcucha.
- Połącz polecenie Change Delimiter - All Employees z poleceniem Advanced Query.
- Nazwij polecenie: Advanced Query - All Employees.
- W sekcji Tables kliknij przycisk Add, aby dodać drugą kartę.
- Dla pierwszej tabeli:
- Określ wynik CSV Wyjście z polecenia Change Delimiter - All Employees.
- Podaj XML jako nazwę tabeli .
- Dla drugiej tabeli:
- Określ dane wyjściowe odpowiedzi z polecenia GET - Headcount in CSV Format.
Podaj CSV jako nazwę tabeli . - W parametrze Query wprowadź następujące dane:
Select * from XML EXCEPT Select * from CSV - W polach Input Delimiter i Output Delimiter wpisz Comma.
- Zaznacz opcję Preview Results.
- Określ dane wyjściowe odpowiedzi z polecenia GET - Headcount in CSV Format.
- Dla pierwszej tabeli:
- Zapisz polecenie.
- Opublikuj, wykonaj i uruchom łańcuch.
-
Przejrzyj zakładkę Log w węźle poleceń Advanced Query - All Employees i potwierdź, że identyfikatory pracowników są zgodne z poniższymi dla rekordów zwróconych przez zapytanie.
Identyfikator pracownika 01-6875791 10-4199621 38-3932553 63-0417180 78-3600453 85-6818050 97-2828467
Krok 7: Dodaj grupę poleceń
Dodaj grupę poleceń do łańcucha, aby lepiej zorganizować polecenia. Chociaż ten krok jest wymagany w tym ćwiczeniu, nie jest to wymóg techniczny dla łańcucha. Ten krok ma na celu jedynie zilustrowanie możliwości organizowania węzłów łańcucha.
- Dodaj grupę poleceń do łańcucha.
- Połącz polecenie GET - Headcount in XML Format z sekcją In grupy poleceń.
- Kliknij grupę poleceń, a następnie wybierz ikonę zakraplacza, aby zmienić kolor polecenia na czerwony.
- Nazwij grupę: Aktywni Pracownicy.
Krok 8: Filtruj dane CSV tylko dla aktywnych pracowników
Użyj inteligentnego filtra, aby zachować tylko rekordy pracowników, w których pracownik jest aktywny. Podczas definiowania filtra zakładamy, że pole terminated (terminowany) jest puste i oznacza, że pracownik jest aktywny.
- Dodaj polecenie Smart Filter Rows z konektora Tabular Transformation Connector do łańcucha.
- Połącz polecenie Group Start z grupy poleceń z poleceniem Smart Filter.
- Skonfiguruj polecenie przy użyciu następujących wartości:
- Nazwij polecenie: Smart Filter Rows - CSV Data - Active Employees.
- Dla parametru Input file wybierz Response Output z polecenia GET - Headcount in CSV Format Command.
- Pozostaw parametr pliku Output pusty.
- Podaj Przecinek jako separator .
- W sekcji Filters wykonaj następujące kroki:
- Kliknij przycisk Dodaj na stronie Tekst filtrów.
- W parametrze Column name wpisz o nazwie.
- Zaznacz opcję Case Insensitive.
- Z listy rozwijanej Warunek wybierz Równa się.
- W parametrze Compare Text wpisz true.
- Zaznacz opcję Not.
- Pozostaw pole wyboru Trim niezaznaczone.
Filtr ten zidentyfikuje teraz każdy rekord, w którym pole "termed" nie zawiera wartości true (tzn. zawiera wartość "false" lub jest puste).
- Pozostaw zaznaczoną opcję Preview Result.
- Opcja Inverse pozwala inteligentnemu filtrowi zachować (zaznaczone) lub usunąć (niezaznaczone) wszystkie wiersze spełniające kryteria filtra. W tym ćwiczeniu chcemy zachować wszystkie wiersze, w których pole "termed" ma wartość true lub blank.
Aby to osiągnąć, zaznacz pole wyboru Inverse. - Zapisz polecenie.
Krok 8: Filtruj dane CSV tylko dla aktywnych pracowników
Użyj inteligentnego filtra, aby zachować tylko rekordy pracowników, w których pracownik jest aktywny. Podczas definiowania filtra zakładamy, że pole "terminated" ("zakończony"), które jest puste, oznacza, że pracownik jest aktywny.
- Dodaj polecenie Smart Filter Rows z konektora Tabular Transformation Connector do łańcucha.
- Połącz polecenie Group Start z grupy poleceń z poleceniem Smart Filter.
- Skonfiguruj polecenie przy użyciu następujących wartości:
- Nazwij polecenie: Smart Filter Rows - CSV Data - Active Employees.
- Dla pliku wejściowego wybierz wyjście odpowiedzi z polecenia GET - Headcount w formacie CSV.
- Pozostaw parametr pliku Output pusty.
- Podaj Przecinek jako separator .
- W sekcji Filtry,
- Kliknij przycisk Dodaj na stronie Tekst filtrów.
- W parametrze Column name wpisz o nazwie.
- Zaznacz opcję Case Insensitive.
- Z listy rozwijanej Warunek wybierz Równa się.
- W parametrze Compare Text wpisz true.
- Zaznacz opcję Not.
- Pozostaw pole wyboru Trim niezaznaczone.
Filtr ten zidentyfikuje teraz każdy rekord, w którym pole "termed" nie zawiera wartości true (tzn. zawiera wartość "false" lub jest puste).
- Pozostaw pole wyboru Preview Result zaznaczone (zaznaczone).
- Opcja Inverse pozwala inteligentnemu filtrowi zachować (zaznaczone) lub usunąć (niezaznaczone) wszystkie wiersze spełniające kryteria filtra. W tym ćwiczeniu chcemy zachować wszystkie wiersze, w których pole termed ma wartość true lub blank. Aby to osiągnąć, zaznacz pole wyboru Inverse.
- Zapisz polecenie.
Krok 9: Filtruj dane XML podczas konwersji do formatu Delimited
W tym kroku filtrujemy dane XML podczas konwersji do formatu rozdzielanego, aby zidentyfikować tylko aktywnych pracowników. Ten zestaw danych zostanie następnie porównany z przefiltrowanym zestawem danych CSV w celu zidentyfikowania różnic.
- Skopiuj listę elementów do CSV - Wszyscy pracownicy Polecenie.
- Połącz polecenie Group Start z grupy poleceń z poleceniem Element List to CSV - All Employees (Copy).
- Edytuj polecenie, nadając mu nazwę: Lista elementów do CSV - Aktywni pracownicy.
- W parametrze "Ścieżka do katalogu głównego" wprowadź następujące dane.
/employee_data/employee[termed!='true']
Spowoduje to zidentyfikowanie każdego rekordu, w którym pole "termed" nie zawiera wartości true (tzn. zawiera wartość "false" lub jest puste). - Zapisz polecenie.
Krok 10: Zmień filtrowane dane XML na rozdzielane przecinkami
Podobnie jak w przypadku pełnego wykazu pracowników, przefiltrowany wykaz aktywnych pracowników, który został przekonwertowany z formatu XML na rozdzielany tabulatorami, musi zostać przekonwertowany na rozdzielany przecinkami.
- Skopiuj polecenie Change Delimiter - All Employees.
- Połącz listę elementów z poleceniem CSV - Active Employees z poleceniem Element Change Delimiter - All Employees (Copy).
- Skonfiguruj polecenie przy użyciu następujących wartości.
- Nazwa: Change Delimiter - Active Employees.
- Zmodyfikuj parametr Input file, aby użyć pliku Converted File Output z polecenia Element List to CSV - Active Employees.
- Zapisz polecenie.
Krok 11: Sprawdź różnice z aktywnymi pracownikami
Podobnie jak w przypadku pełnego wykazu pracowników, przefiltrowany wykaz aktywnych pracowników, który został przekonwertowany z formatu XML na rozdzielany tabulatorami, musi zostać przekonwertowany na rozdzielany przecinkami.
- Skopiuj polecenie Advanced Query - All Employees.
- Połącz stronę Out grupy poleceń z poleceniem Advanced Query - All Employees (Copy). Podłączenie polecenia Advanced Query - All Employees do Group Out gwarantuje, że wszystko połączone z Group Start zakończy się, zanim łańcuch przejdzie do poleceń w Group Out.
- Skonfiguruj polecenie przy użyciu następujących wartości:
- Nazwa: Advanced Query - Active Employees.
-
W sekcji Tables zmodyfikuj parametr File dla obu tabel, używając następujących wartości:
Tabela Plik XML Wynik CSV z polecenia Zmień ogranicznik - Aktywni pracownicy CSV Wyjście Smart Filter Row z wierszy Smart Filter - tylko aktywne, polecenie danych CSV
- Zapisz polecenie.
Krok 12: Przetestuj ćwiczenie
Teraz, gdy łańcuch jest gotowy, przetestuj wynik.
- Opublikuj the Chain.
- Kliknij Execute, a następnie wybierz Run Chain.
- Po zakończeniu działania łańcucha kliknij węzeł Advanced Query - Active Employees.
- Na karcie Outputs potwierdź, że wysłano 4 rekordy.
-
Kliknij zakładkę Logs i potwierdź, że identyfikatory pracowników są zgodne z poniższymi dla rekordów zwróconych przez zapytanie.
Identyfikator pracownika 01-6875791 63-0417180 78-3600453 85-6818050
Aby dowiedzieć się więcej na temat transformacji danych przy użyciu łańcuchów, zapoznaj się ze ścieżką szkoleniową Connected Learning Paths - Transformation Introduction!