W tej połączonej ścieżce edukacyjnej utworzymy łańcuch, który ilustruje, jak przekonwertować prosty zestaw danych JSON na CSV. Ponadto zbadamy, jak zapętlić zestaw danych JSON i filtrować na podstawie wartości w danych.
| Podstawowy cel edukacyjny | Możliwości konektora JSON |
| Dodatkowe cele edukacyjne |
Zaawansowane polecenie zapytania transformacji tabelarycznej Iteracja grupowa |
| Wymagania wstępne | Skonfiguruj połączenie konektora JSON |
| Szablon pomocniczy | CLP | Dostęp do danych JSON |
Krok 1: Utwórz łańcuch
- Dodaj nowy łańcuch
- Nazwa łańcucha CLP | Dostęp do danych JSON
- Utwórz zmienną łańcuchową:
- W sekcji Zmienne łańcuchowe kliknij znak plus
- Nazwa: cv-JSON-Employee
- Wartość: https://cs-sftp-training-bucket.s3.amazonaws.com/cs-training/transformation-qs/emp_detail.json
- W sekcji Zmienne łańcuchowe kliknij znak plus
- Uratuj łańcuch
Krok 2: Pobieranie danych JSON
Używamy konektora HTTP do pobierania danych związanych z liczbą pracowników w formacie JSON z lokalizacji internetowej.
- Dodaj polecenie GET z łącznika HTTP do węzła Start
- Skonfiguruj polecenie w następujący sposób:
| Nazwa | GET - Wszyscy pracownicy |
| 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-JSON-Employee Zmienna łańcuchowa |
| Ciąg zapytania | <pozostaw puste> |
| Typ zawartości | application/json |
| Odpowiedź | <pozostaw puste> |
- Zapisz polecenie
Krok 3: Konwersja JSON do CSV
Użyj konektora JSON, aby przekonwertować zestaw danych JSON do formatu CSV. W tym kroku wybierz tylko pola ID pracownika i kraju z tablicy JSON.
Ważne jest, aby zrozumieć schemat zbioru danych JSON. Polecenie List File Content z File Utilities Connector może być wykorzystane do wizualizacji schematu. Możesz również dodać schemat do pola odpowiedzi w poleceniu Get Command, aby ułatwić sobie odniesienie. Poniżej znajduje się schemat pracowników JSON:
Schemat:
[
{
"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
}
]
- Dodaj polecenie Array to CSV z JSON Connector do łańcucha.
- Połącz węzeł początkowy (GET - All Employees) z poleceniem Array to CSV.
- Nazwij polecenie: Array to CSV - All Employees.
- W parametrze JSON Data wybierz odpowiedź Response Output z polecenia GET - All Employees.
- Pozostaw parametry Input Text, Path to root i Filter puste.
- Pozostaw parametr Multi-value Delimiter jako przecinek (,).
- Zaznacz opcję Preview Result.
- Sekcja Columns służy do określenia, które elementy z tablicy JSON zostaną wyodrębnione do kolumnowego (CSV) zbioru danych. Kliknij przycisk Dodaj, aby dodać dodatkową kolumnę.
- W pierwszej kolumnie wpisz emp_id jako nazwę kolumny i .emp_id jako parametry JSONPath.
- pamiętaj, aby dodać kropkę (.) przed emp_id w parametrze JSONPath.
- W drugiej kolumnie wpisz country jako nazwę kolumny i .country jako parametry JSONPath.
- Wybierz Przecinek dla parametru Ogranicznik.
- W pierwszej kolumnie wpisz emp_id jako nazwę kolumny i .emp_id jako parametry JSONPath.
- Zapisz polecenie
Krok 4: Uzyskaj unikalną listę krajów w danych
Użyj prostej instrukcji Select Distinct z zaawansowanym poleceniem zapytania w konektorze transformacji tabelarycznej, aby uzyskać unikalny zestaw krajów w danych. W dalszej części tego ćwiczenia lista ta zostanie wykorzystana do wyszukiwania pracowników według każdego kraju z osobna.
- Dodaj polecenie Advanced Query z konektora Tabular Transformation do łańcucha.
- Połącz polecenie Array to CSV - All Employees z poleceniem Advanced Query.
- Nazwij polecenie: Advanced Query - Countries.
- Sekcja Tables pozwala na wykorzystanie jednego lub więcej ograniczonych zestawów danych do tworzenia tabel, względem których można pisać instrukcje SQL. Baza danych SQLite z określonymi tabelami jest generowana w locie, nie jest wymagana instalacja dodatkowego oprogramowania.
- W polu File określ Converted File Output from the Array to CSV - All Employees Command.
- Wprowadź Countries w parametrze Table Name. Określone zapytanie zostanie uruchomione względem tej tabeli.
- W parametrze Query wprowadź następujące dane:
Wybierz odrębny kraj spośród krajów
- Podaj Przecinek dla parametrów Ogranicznik wejściowy i Ogranicznik wyjściowy.
- Sprawdź parametr Wyniki podglądu
- Zapisz polecenie.
Krok 5: Utwórz tablicę JSON z listy krajów
Używamy polecenia CSV do JSON z konektora JSON, aby przekonwertować unikalną listę krajów na tablicę JSON. Grupa poleceń może następnie iterować po każdym elemencie w tej tablicy.
- Dodaj polecenie CSV do JSON z JSON Connector do łańcucha.
- Połącz polecenie Advanced Query - Countries z poleceniem CSV to JSON.
- Skonfiguruj polecenie, korzystając z poniższych wskazówek:
| Nazwa | CSV do JSON - Kraje |
| Plik wejściowy | Wynik Wyjście z zapytania zaawansowanego - Kraje Polecenie |
| Ogranicznik | Przecinek (,) |
- Zapisz polecenie
Krok 6: Dodaj grupę poleceń
Dodaj grupę poleceń do łańcucha, aby umożliwić iterację po każdym z poszczególnych krajów zidentyfikowanych w kroku zaawansowanego zapytania.
- Dodaj grupę poleceń do łańcucha.
- Połącz polecenie CSV to JSON - Countries z sekcją In w grupie poleceń.
- Kliknij grupę poleceń, a następnie wybierz ikonę zakraplacza, aby zmienić kolor polecenia na pomarańczowy.
- Nazwij grupę: Aktywni Pracownicy.
- Włącz przełącznik Iteracje w zakładce iteracje i wybierz Plik JSON Dane wyjściowe z polecenia CSV to JSON - Countries.
- Zapisz grupę poleceń.
Krok 7: Filtruj dane JSON dla pracowników według kraju
Konwertuj zestaw danych JSON na CSV, filtrując tylko rekordy pracowników dla kraju aktualnie przetwarzanego w iteracji. Ten krok podkreśla dwie potężne możliwości - możliwość zapętlenia lub iteracji oraz możliwość zastosowania filtrów do procesu konwersji JSON. Zrozumienie tych możliwości zwiększa zdolność do tworzenia solidnych, wydajnych łańcuchów.
Skopiuj wcześniej skonfigurowaną tablicę do polecenia CSV dla tego kroku, a konfiguracja wykorzystuje w dużej mierze tę samą konfigurację, z wyjątkiem przypadków opisanych poniżej.
- Skopiuj tablicę do CSV - Wszyscy pracownicy Polecenie.
- Połącz grupę Start z grupy poleceń z poleceniem Array to CSV - All Employees (Copy).
- Edytuj polecenie.
- Nazwij polecenie: Array to CSV - Employees by Country.
- W parametrze Filtr wprowadź poniższe dane
?(@.country == "<JSON FILE ITERATION>")
-
- Spacja przed i po podwójnym znaku równości (==) są wymagane.
- <JSON FILE ITERATION> powinien zostać zastąpiony przez JSON File Iteration pod Group Iterator w okienku zmiennych.
- Podczas dodawania iteracji pliku JSON kliknij dymek Varia i dodaj transformację Get Value from JSON Variable.
- W parametrze Value zmiennej Variable Transformation wpisz country, a następnie naciśnij klawisz Enter. Pamiętaj, że w JSON rozróżniana jest wielkość liter .
- Edytuj kolumnę emp_id, aby uzyskać Nazwa kolumny z employee_id. Nie zmieniaj ścieżki JSONPath.
- Nazwa kolumny wygenerowana przez polecenie nie musi być zgodna z kluczem tablicy JSON.
- Dodaj 10 kolumn do polecenia i skonfiguruj je zgodnie z poniższymi instrukcjami:
| Nazwa kolumny | JSONPath |
| nazwa_użytkownika | .user_name |
| first_name | .first_name |
| last_name | .last_name |
| tytuł | .job_title |
| dział | .department |
| miasto | .city |
| waluta | .currency |
| hire_date | .hire_date |
| fte | .fte |
| zakończony | określane jako |
- Zapisz polecenie.
Krok 8: Przetestuj ćwiczenie
Teraz, gdy łańcuch jest gotowy, przetestuj wynik.
- Opublikuj the Chain.
- Kliknij Execute, a następnie wybierz Run Chain.
- Po zakończeniu tworzenia łańcucha kliknij węzeł Array to CSV - Employees by Country.
- Zauważ, że iteracja przebiegła pięć (5) razy.
- Wybierz każdą wartość iteracji, a następnie kliknij kartę Inputs. Upewnij się, że filtr jest zgodny z poniższą tabelą.
- Wybierz iterację 5 i kliknij kartę Logs. Potwierdź, że podgląd danych jest zgodny z poniższym obrazem.
| Iteracja 1 | Stany Zjednoczone |
| Iteracja 2 | Brazylia |
| Iteracja 3 | Kenia |
| Iteracja 4 | Włochy |
| Iteracja 5 |
Australia |
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!