W tej połączonej ścieżce edukacyjnej utworzymy łańcuch ilustrujący sposób konwersji zbioru danych JSON z zagnieżdżonymi obiektami do formatu CSV. Zbadamy również, jak użyć złączenia kartezjańskiego, aby spłaszczyć tę zagnieżdżoną strukturę.
| Podstawowy cel edukacyjny | Funkcja JSON Connector dla zagnieżdżonych obiektów JSON |
| Dodatkowe cele edukacyjne | Zaawansowane polecenie zapytania transformacji tabelarycznej |
| Wymagania wstępne | Skonfiguruj połączenie konektora JSON Skonfiguruj połączenie konektora HTTP |
| Szablon pomocniczy | CLP | Dostęp do zagnieżdżonych obiektów JSON |
Krok 1: Utwórz łańcuch
- Dodaj nowy łańcuch.
- Nazwij łańcuch: CLP | Dostęp do zagnieżdżonych obiektów JSON.
- Utwórz zmienną łańcuchową i wypełnij ją następującymi wartościami:
- Nazwa: cv-JSON-Donut
- Wartość: https://cs-sftp-training-bucket.s3.amazonaws.com/cs-training/transformation-qs/donut.json
- Uratuj łańcuch.
Krok 2: Pobieranie danych JSON
Użyj konektora HTTP, aby pobrać dane związane z liczbą pracowników w formacie JSON z lokalizacji internetowej.
- Dodaj polecenie GET z konektora HTTP do węzła Start.
- Skonfiguruj polecenie przy użyciu następujących wartości:
Nazwa GET - Dane JSON 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-Donut Zmienna łańcuchowa Ciąg zapytania <pozostaw puste> Typ zawartości application/json Odpowiedź
<pozostaw puste> - Zapisz polecenie.
Krok 3: Pobierz niezagnieżdżone dane JSON
Ten łańcuch wykorzystuje polecenie Object to CSV z konektora JSON, aby wyodrębnić klucze nazwy i typu, które nie są zagnieżdżone, z obiektu JSON.
Uwaga: Ważne jest, aby zrozumieć schemat zbioru danych JSON. Polecenie List File Content z File Utilities Connector może być wykorzystane do wizualizacji schematu. Dla odniesienia, oto schemat JSON "pączka":
Schemat:
{"id":"0001","type":"donut","name":"Cake","ppu":0.55,"batters": {"batter":[{"id":"1001","type":"Regular"},{"id":"1002","type":"Chocolate"}, {"id":"1003","type":"Blueberry"},{"id":"1004","type":"Devil's Food"}]}, "topping":[{"id":"5001","type":"None"},{"id":"5002","type":"Glazed"}, {"id":"5005","type":"Sugar"},{"id": "5007", "type": "Powdered Sugar"}, {"id":"5006","type":"Chocolate with Sprinkles"},{"id":"5003","type":"Chocolate"}, {"id":"5004","type":"Maple"}] } - Dodaj polecenie Object to CSV z konektora JSON do łańcucha.
- Połącz węzeł początkowy (GET - JSON Data) z poleceniem Object to CSV.
- Otwórz polecenie i skonfiguruj je przy użyciu następujących wartości.
- Nazwij polecenie: Object to CSV - Name & Type.
- Dla parametru JSON Data wybierz opcję Response Output z polecenia GET - JSON Data.
- Pozostaw parametry Input Text i Path to root puste.
- Pozostaw parametr Multi-value Delimiter jako przecinek (,).
- Zaznacz pole wyboru Preview Result.
- Wybierz Pipe dla parametru Delimiter.
Sekcja Columns służy do określenia, które elementy z obiektu JSON zostaną wyodrębnione do kolumnowego (CSV) zbioru danych. - Kliknij przycisk Dodaj jeden raz, aby dodać dwie kolumny.
- Dla pierwszej kolumny wpisz name dla parametrów Column Name i .name dla parametrów JSONPath.
- Dla drugiej kolumny wpisz typ dla kolumny typ i .typ dla parametrów JSONPath.
- Zapisz polecenie.
Krok 4: Uzyskaj listę dodatków
Użyj polecenia Array to CSV konektora JSON, aby uzyskać listę dodatków w zagnieżdżonej tablicy JSON.
- Dodaj polecenie Array to CSV z konektora JSON do łańcucha.
- Połącz polecenie GET - JSON Data z poleceniem Array to CSV.
- Skonfiguruj polecenie przy użyciu następujących wartości:
- Nazwij polecenie: Array to CSV - Toppings.
- Dla parametru JSON Data wybierz opcję Response Output z polecenia GET - JSON Data.
- Pozostaw parametr Input Text pusty.
- Dla parametru Path to root wpisz topping (małymi literami) i naciśnij Enter. Topping powinien pojawić się ze znakiem równości przed nim w szarym dymku.
- Pozostaw parametr Filter pusty.
- Pozostaw wartość domyślną przecinek (,) dla parametru Ogranicznik wielu wartości.
- Zaznacz pole wyboru Preview Result.
- W sekcji Columns określamy klucze w tablicy JSON, dla których mają zostać wyodrębnione wartości do kolumny w wynikowym pliku CSV.
- W pierwszym parametrze Column name wpisz ToppingID, a w parametrze JSONPath wpisz .id.
- W drugim parametrze Column name wpisz ToppingType, a w parametrze JSONPath wpisz .type.
- Dla parametru Delimiter wybierz Pipe.
- Zapisz polecenie.
Krok 5: Uzyskaj listę zawodników
Ten łańcuch wykorzystuje polecenie Array to CSV w konektorze JSON, aby uzyskać listę pałkarzy w zagnieżdżonej tablicy JSON. Użyjemy dwóch poleceń Array to CSV, aby wyodrębnić ciasta i polewy ze względu na różne zagnieżdżenie każdej tablicy.
Użycie polecenia Object to CSV z zagnieżdżonymi ścieżkami JSONPaths (na przykład .topping[*].type) tworzy wieloczęściowe wartości, które są trudniejsze do wykorzystania w zbiorze danych CSV.
- Dodaj polecenie Array to CSV z konektora JSON do łańcucha.
- Połącz polecenie GET - JSON Data z poleceniem Array to CSV.
- Skonfiguruj polecenie przy użyciu następujących wartości:
- Nazwij polecenie: Array to CSV - Batters.
- Dla parametru JSON Data wybierz opcję Response Output z polecenia GET - JSON Data.
- Pozostaw parametr Input Text pusty.
- Dla parametru Path to root wpisz batters (wszystkie małe litery) i naciśnij Enter. Następnie wpisz batter (wszystkie małe litery) i naciśnij Enter.
Zawodnicy i powinni pojawić się w tej kolejności w dwóch szarych dymkach. - Pozostaw parametr Filter pusty.
- Pozostaw wartość domyślną, przecinek (,), dla parametru Ogranicznik wielu wartości.
- Zaznacz opcję Preview Result.
- W sekcji Columns określamy klucze w tablicy JSON, dla których mają zostać wyodrębnione wartości do kolumny w wynikowym pliku CSV.
- W parametrze Column name wpisz BatterID, a w parametrze JSONPath wpisz .id.
- W parametrze Column name wpisz BatterType, a w parametrze JSONPath wpisz .type.
- Dla parametru Delimiter wybierz Pipe.
- Zapisz polecenie.
Krok 6: Spłaszcz dane
Do spłaszczenia zbioru danych użyjemy "złączenia kartezjańskiego" w zaawansowanym zapytaniu Command z konektora transformacji tabelarycznej. Złączenie kartezjańskie tworzy wszystkie możliwe kombinacje elementów, które wyodrębniliśmy za pomocą poleceń Object to CSV i Array to CSV.
- Dodaj polecenie Advanced Query z konektora Tabular Transformation do łańcucha.
- Połącz każdy obiekt z CSV - Nazwa i typ, tablicę z CSV - Batters, tablicę i z CSV - Toppings z poleceniem Advanced Query.
- Skonfiguruj polecenie przy użyciu następujących wartości:
- Nazwij polecenie: Advanced Query - Flatten JSON Object.
- W sekcji Tables kliknij dwukrotnie przycisk Add, aby dostępne były trzy tabele.
Uzupełnij tabele, używając następujących wartości:Plik Nazwa tabeli Wybierz przekonwertowany plik wyjściowy z polecenia Object to CSV - Name & Type. Nazwa Wybierz przekonwertowany plik Wyjście z tablicy do CSV - Batters Polecenie. Bateria Wybierz przekonwertowany plik Wyjście z tablicy do CSV - Toppings Polecenie. Polewa - Dla parametru Query wprowadź następujące dane:
Select Type as dessert_type, Name as variety, BatterType, ToppingType from Name, Batter, Topping - Dla parametrów Input Delimiter i Output Delimiter podaj Pipe.
- Zaznacz pole wyboru Preview results.
- Zapisz polecenie.
Krok 7: Przetestuj łańcuch i przejrzyj wyniki AAA
- Opublikuj the Chain.
- Kliknij Execute, a następnie wybierz Run Chain.
- Po zakończeniu łańcucha,
- Kliknij węzeł Advanced Query - Flatten JSON Object i wybierz zakładkę Outputs.
- Potwierdź, że liczba rekordów wynosi 28.
- Wybierz zakładkę Logs i potwierdź, że podgląd danych jest zgodny z poniższym zrzutem ekranu.
Aby dowiedzieć się więcej na temat transformacji danych przy użyciu łańcuchów, sprawdź Connected Learning Paths - Transformation Introduction.