Dziesięć nowych transformacji wizualnych w AWS Glue Studio

Dziesięć nowych transformacji wizualnych w AWS Glue Studio

Węzeł źródłowy: 2641422

Pracownia Kleju AWS to interfejs graficzny, który ułatwia tworzenie, uruchamianie i monitorowanie zadań wyodrębniania, przekształcania i ładowania (ETL) w Klej AWS. Pozwala wizualnie komponować przepływy pracy transformacji danych za pomocą węzłów reprezentujących różne etapy obsługi danych, które później są automatycznie konwertowane na kod do uruchomienia.

Pracownia Kleju AWS niedawno wydany 10 dodatkowych przekształceń wizualnych, aby umożliwić tworzenie bardziej zaawansowanych zadań w sposób wizualny bez umiejętności kodowania. W tym poście omawiamy potencjalne przypadki użycia, które odzwierciedlają typowe potrzeby ETL.

Nowe przekształcenia, które zostaną zademonstrowane w tym poście, to: Concatenate, Split String, Array To Columns, Add Current Timestamp, Pivot Rows To Columns, Unpivot Columns To Rows, Lookup, Explode Array or Map Into Columns, Derived Column i Autobalance Processing .

Omówienie rozwiązania

W tym przypadku mamy kilka plików JSON z operacjami opcji na akcje. Chcemy dokonać pewnych przekształceń przed zapisaniem danych, aby ułatwić ich analizę, a także chcemy utworzyć osobne podsumowanie zbioru danych.

W tym zbiorze danych każdy wiersz reprezentuje transakcję kontraktów opcyjnych. Opcje to instrumenty finansowe, które dają prawo – ale nie obowiązek – kupna lub sprzedaży akcji po ustalonej cenie (tzw  Cena wykonania) przed określoną datą wygaśnięcia.

Dane wejściowe

Dane są zgodne z następującym schematem:

  • order_id – Unikalny identyfikator
  • symbol – Kod na ogół oparty na kilku literach identyfikujący korporację, która emituje bazowe akcje
  • instrument – Nazwa, która identyfikuje konkretną kupowaną lub sprzedawaną opcję
  • waluta – Kod waluty ISO, w którym wyrażona jest cena
  • Cena – Kwota, która została zapłacona za zakup każdego kontraktu opcyjnego (na większości giełd jeden kontrakt pozwala na kupno lub sprzedaż 100 akcji)
  • wymiana – Kod centrum wymiany lub miejsca, w którym opcja była przedmiotem obrotu
  • sprzedany – Lista liczby kontraktów, które zostały przydzielone do realizacji zlecenia sprzedaży, gdy jest to transakcja sprzedaży
  • kupiony – Lista liczby kontraktów, które zostały przydzielone do realizacji zlecenia kupna, gdy jest to transakcja kupna

Poniżej znajduje się próbka danych syntetycznych wygenerowanych dla tego posta:

{"order_id": 1679931512485, "symbol": "AMZN", "instrument": "AMZN MAR 24 23 102 PUT", "currency": "usd", "price": 17.18, "exchange": "EDGX", "bought": [18, 38]}
{"order_id": 1679931512486, "symbol": "BMW.DE", "instrument": "BMW.DE MAR 24 23 96 PUT", "currency": "eur", "price": 2.98, "exchange": "XETR", "bought": [28]}
{"order_id": 1679931512487, "symbol": "BMW.DE", "instrument": "BMW.DE APR 28 23 101 CALL", "currency": "eur", "price": 14.71, "exchange": "XETR", "sold": [9, 59, 54]}
{"order_id": 1679931512489, "symbol": "JPM", "instrument": "JPM JUN 30 23 140 CALL", "currency": "usd", "price": 11.83, "exchange": "EDGX", "bought": [33, 42, 55, 67]}
{"order_id": 1679931512490, "symbol": "SIE.DE", "instrument": "SIE.DE MAR 24 23 149 CALL", "currency": "eur", "price": 13.68, "exchange": "XETR", "bought": [96, 89, 82]}
{"order_id": 1679931512491, "symbol": "NKE", "instrument": "NKE MAR 24 23 112 CALL", "currency": "usd", "price": 3.23, "exchange": "EDGX", "sold": [67]}
{"order_id": 1679931512492, "symbol": "AMZN", "instrument": "AMZN MAY 26 23 95 CALL", "currency": "usd", "price": 11.44, "exchange": "EDGX", "sold": [41, 62, 12]}
{"order_id": 1679931512493, "symbol": "JPM", "instrument": "JPM MAR 24 23 121 PUT", "currency": "usd", "price": 1.0, "exchange": "EDGX", "bought": [61, 34]}
{"order_id": 1679931512494, "symbol": "SAP.DE", "instrument": "SAP.DE MAR 24 23 132 CALL", "currency": "eur", "price": 15.9, "exchange": "XETR", "bought": [69, 33]}

wymagania ETL

Dane te mają szereg unikalnych cech, często spotykanych w starszych systemach, które utrudniają korzystanie z nich.

Oto wymagania ETL:

  • Nazwa instrumentu zawiera cenne informacje, które mają być zrozumiałe dla ludzi; chcemy znormalizować to do oddzielnych kolumn dla łatwiejszej analizy.
  • Atrybuty bought i sold wzajemnie się wykluczają; możemy skonsolidować je w jedną kolumnę z numerami kontraktów i mieć inną kolumnę wskazującą, czy kontrakty zostały kupione czy sprzedane w tej kolejności.
  • Chcemy zachować informacje o poszczególnych alokacjach kontraktów, ale jako pojedyncze wiersze, zamiast zmuszać użytkowników do radzenia sobie z tablicą liczb. Moglibyśmy zsumować liczby, ale stracilibyśmy informacje o tym, jak zlecenie zostało zrealizowane (wskazujące na płynność rynku). Zamiast tego zdecydowaliśmy się zdenormalizować tabelę, aby każdy wiersz miał jedną liczbę kontraktów, dzieląc zamówienia z wieloma liczbami na osobne wiersze. W skompresowanym formacie kolumnowym dodatkowy rozmiar zestawu danych związany z tym powtórzeniem jest często mały po zastosowaniu kompresji, dlatego dopuszczalne jest ułatwienie wykonywania zapytań dotyczących zestawu danych.
  • Chcemy wygenerować zbiorczą tabelę wolumenu dla każdego typu opcji (call i put) dla każdej akcji. Zapewnia to wskazanie nastrojów rynkowych dla każdej akcji i ogólnie rynku (chciwość vs. strach).
  • Aby umożliwić ogólne podsumowania transakcji, chcemy podać dla każdej operacji sumę całkowitą i ustandaryzować walutę na dolary amerykańskie, korzystając z przybliżonego odniesienia do konwersji.
  • Chcemy dodać datę, kiedy te przemiany miały miejsce. Może to być przydatne, na przykład, aby mieć odniesienie do tego, kiedy dokonano przeliczenia waluty.

W oparciu o te wymagania zadanie wygeneruje dwa wyniki:

  • Plik CSV z podsumowaniem liczby kontraktów dla każdego symbolu i typu
  • Tabela katalogowa do przechowywania historii zamówienia, po wykonaniu wskazanych przekształceń
    Schemat danych

Wymagania wstępne

Będziesz potrzebować własnego wiadra S3, aby śledzić ten przypadek użycia. Aby utworzyć nowy zasobnik, zobacz Tworzenie wiadra.

Generuj dane syntetyczne

Aby śledzić ten post (lub samodzielnie eksperymentować z tego rodzaju danymi), możesz wygenerować ten zestaw danych w sposób syntetyczny. Poniższy skrypt Pythona można uruchomić w środowisku Pythona z zainstalowanym Boto3 i dostępem do niego Usługa Amazon Simple Storage (Amazonka S3).

Aby wygenerować dane, wykonaj następujące kroki:

  1. W AWS Glue Studio utwórz nowe zadanie z opcją Edytor skryptów powłoki Pythona.
  2. Podaj nazwę pracy i na Szczegóły pracy wybierz a odpowiednia rola i nazwę skryptu Pythona.
  3. W Szczegóły pracy sekcja, rozwiń Zaawansowane właściwości i przewiń w dół do Parametry zadania.
  4. Wprowadź parametr o nazwie --bucket i przypisz jako wartość nazwę zasobnika, w którym chcesz przechowywać przykładowe dane.
  5. Wprowadź następujący skrypt do edytora powłoki AWS Glue:
    import argparse
    import boto3
    from datetime import datetime
    import io
    import json
    import random
    import sys # Configuration
    parser = argparse.ArgumentParser()
    parser.add_argument('--bucket')
    args, ignore = parser.parse_known_args()
    if not args.bucket: raise Exception("This script requires an argument --bucket with the value specifying the S3 bucket where to store the files generated") data_bucket = args.bucket
    data_path = "transformsblog/inputdata"
    samples_per_file = 1000 # Create a single file with synthetic data samples
    s3 = boto3.client('s3')
    buff = io.BytesIO() sample_stocks = [("AMZN", 95, "usd"), ("NKE", 120, "usd"), ("JPM", 130, "usd"), ("KO", 130, "usd"), ("BMW.DE", 95, "eur"), ("SIE.DE", 140, "eur"), ("SAP.DE", 115, "eur")]
    option_type = ["PUT", "CALL"]
    operations = ["sold", "bought"]
    dates = ["MAR 24 23", "APR 28 23", "MAY 26 23", "JUN 30 23"]
    for i in range(samples_per_file): stock = random.choice(sample_stocks) symbol = stock[0] ref_price = stock[1] currency = stock[2] strike_price = round(ref_price * 0.9 + ref_price * random.uniform(0.01, 0.3)) sample = { "order_id": int(datetime.now().timestamp() * 1000) + i, "symbol": stock[0], "instrument":f"{symbol} {random.choice(dates)} {strike_price} {random.choice(option_type)}", "currency": currency, "price": round(random.uniform(0.5, 20.1), 2), "exchange": "EDGX" if currency == "usd" else "XETR" } sample[random.choice(operations)] = [random.randrange(1,100) for i in range(random.randrange(1,5))] buff.write(json.dumps(sample).encode()) buff.write("n".encode()) s3.put_object(Body=buff.getvalue(), Bucket=data_bucket, Key=f"{data_path}/{int(datetime.now().timestamp())}.json")

  6. Uruchom zadanie i poczekaj, aż na karcie Uruchomienia zostanie wyświetlone jako zakończone pomyślnie (powinno to zająć tylko kilka sekund).

Każde uruchomienie wygeneruje plik JSON z 1,000 wierszy w określonym zasobniku i prefiksie transformsblog/inputdata/. Możesz uruchomić zadanie wiele razy, jeśli chcesz przetestować więcej plików wejściowych.
Każdy wiersz danych syntetycznych to wiersz danych reprezentujący obiekt JSON, taki jak ten:

{ "order_id":1681986991888, "symbol":"AMZN", "instrument":"AMZN APR 28 23 100 PUT", "currency":"usd", "price":2.89, "exchange":"EDGX", "sold":[88,49]
}

Utwórz zadanie wizualne AWS Glue

Aby utworzyć zadanie wizualne AWS Glue, wykonaj następujące kroki:

  1. Przejdź do AWS Glue Studio i utwórz zadanie za pomocą opcji Wizualne z pustym płótnem.
  2. Edytuj Untitled job nadać mu nazwę i przypisać rola odpowiednia dla kleju AWS na Szczegóły pracy patka.
  3. Dodaj źródło danych S3 (możesz je nazwać JSON files source) i wprowadź adres URL S3, pod którym przechowywane są pliki (np. s3://<your bucket name>/transformsblog/inputdata/), a następnie wybierz JSON jako format danych.
  4. Wybierz Wywnioskować schemat więc ustawia schemat wyjściowy na podstawie danych.

Z tego węzła źródłowego będziesz nadal łączyć transformacje. Podczas dodawania każdej transformacji upewnij się, że wybrany węzeł jest ostatnim dodanym, aby został przypisany jako element nadrzędny, chyba że w instrukcjach wskazano inaczej.

Jeśli nie wybrałeś odpowiedniego rodzica, zawsze możesz edytować rodzica, zaznaczając go i wybierając innego rodzica w okienku konfiguracji.

Konfiguracja nadrzędna węzła

Dla każdego dodanego węzła nadasz mu określoną nazwę (aby cel węzła był pokazany na wykresie) i konfigurację na Przekształcać patka.

Za każdym razem, gdy transformacja zmienia schemat (na przykład dodaje nową kolumnę), schemat wyjściowy musi zostać zaktualizowany, aby był widoczny dla dalszych transformacji. Możesz ręcznie edytować schemat wyjściowy, ale bardziej praktyczne i bezpieczniejsze jest zrobienie tego za pomocą podglądu danych.
Dodatkowo w ten sposób możesz sprawdzić, czy transformacja działa zgodnie z oczekiwaniami. W tym celu otwórz plik Podgląd danych kartę z wybraną transformacją i rozpocznij sesję podglądu. Po sprawdzeniu, czy przekształcone dane wyglądają zgodnie z oczekiwaniami, przejdź do Schemat wyjściowy kartę i wybierz Użyj schematu podglądu danych automatycznej aktualizacji schematu.

Podczas dodawania nowych rodzajów przekształceń podgląd może wyświetlać komunikat o brakującej zależności. Kiedy tak się stanie, wybierz Zakończ sesję i rozpocznij nowy, więc podgląd wybiera nowy rodzaj węzła.

Wyodrębnij informacje o instrumencie

Zacznijmy od zajęcia się informacjami o nazwie instrumentu, aby znormalizować je do kolumn, które będą łatwiej dostępne w wynikowej tabeli wyjściowej.

  1. dodaj Podzielony ciąg węzeł i nazwij go Split instrument, co spowoduje tokenizację kolumny instrumentu za pomocą wyrażenia regularnego zawierającego białe znaki: s+ (w tym przypadku przydałaby się pojedyncza przestrzeń, ale ten sposób jest bardziej elastyczny i wyraźniejszy wizualnie).
  2. Chcemy zachować oryginalne informacje o instrumencie bez zmian, więc wprowadź nową nazwę kolumny dla podzielonej tablicy: instrument_arr.
    Podziel konfigurację
  3. Dodaj Tablica do kolumn węzeł i nazwij go Instrument columns aby przekonwertować właśnie utworzoną kolumnę tablicy na nowe pola, z wyjątkiem symbol, dla którego mamy już kolumnę.
  4. Wybierz kolumnę instrument_arr, pomiń pierwszy token i powiedz mu, aby wyodrębnił kolumny wyjściowe month, day, year, strike_price, type za pomocą indeksów 2, 3, 4, 5, 6 (spacje po przecinkach służą czytelności, nie mają wpływu na konfigurację).
    Konfiguracja tablicy

Wyodrębniony rok jest wyrażony tylko dwiema cyframi; zróbmy przerwę i załóżmy, że to jest w tym stuleciu, jeśli użyją tylko dwóch cyfr.

  1. dodaj Pochodna kolumna węzeł i nazwij go Four digits year.
  2. Wchodzę year jako kolumnę pochodną, ​​aby ją przesłoniła, i wprowadź następujące wyrażenie SQL:
    CASE WHEN length(year) = 2 THEN ('20' || year) ELSE year END
    Konfiguracja kolumny pochodnej roku

Dla wygody budujemy expiration_date pole, które użytkownik może mieć jako odniesienie do ostatniej daty, w której opcja może zostać wykonana.

  1. dodaj Połącz kolumny węzeł i nazwij go Build expiration date.
  2. Nazwij nową kolumnę expiration_date, wybierz kolumny year, month, day (w tej kolejności) i myślnik jako odstępnik.
    Połączona konfiguracja daty

Dotychczasowy diagram powinien wyglądać jak w poniższym przykładzie.

DZIEŃ

Dotychczasowy podgląd danych nowych kolumn powinien wyglądać jak na poniższym zrzucie ekranu.

Podgląd danych

Normalizuj liczbę kontraktów

Każdy z wierszy w danych wskazuje liczbę kontraktów każdej opcji, które zostały kupione lub sprzedane oraz partie, na których zlecenia zostały zrealizowane. Nie tracąc informacji o poszczególnych partiach, chcemy mieć każdą kwotę w osobnym wierszu z pojedynczą wartością kwoty, podczas gdy reszta informacji jest replikowana w każdym produkowanym wierszu.

Najpierw połączmy kwoty w jedną kolumnę.

  1. Dodaj Odwróć kolumny w wiersze węzeł i nazwij go Unpivot actions.
  2. Wybierz kolumny bought i sold aby odwrócić i przechowywać nazwy i wartości w kolumnach o nazwie action i contracts, Odpowiednio.
    Odwróć konfigurację
    Zauważ w podglądzie, że nowa kolumna contracts jest nadal tablicą liczb po tym przekształceniu.
  1. Dodaj Rozbij tablicę lub mapuj na wiersze rząd o nazwie Explode contracts.
  2. Wybierz contracts kolumna i wprowadź contracts jako nową kolumnę, aby ją zastąpić (nie musimy zachowywać oryginalnej tablicy).

Podgląd pokazuje teraz, że każdy wiersz ma jeden contracts kwotę, a pozostałe pola są takie same.

Oznacza to również, że order_id nie jest już unikalnym kluczem. W przypadku własnych przypadków użycia musisz zdecydować, jak modelować swoje dane i czy chcesz denormalizować, czy nie.
Rozbij konfigurację

Poniższy zrzut ekranu jest przykładem tego, jak wyglądają nowe kolumny po dotychczasowych przekształceniach.
Podgląd danych

Utwórz tabelę podsumowującą

Teraz tworzysz tabelę podsumowującą z liczbą kontraktów będących w obrocie dla każdego typu i każdego symbolu giełdowego.

Załóżmy dla celów ilustracyjnych, że przetwarzane pliki należą do jednego dnia, więc to podsumowanie daje użytkownikom biznesowym informacje o tym, jakie jest zainteresowanie rynku i nastroje w tym dniu.

  1. dodaj Wybierz Pola node i wybierz następujące kolumny do zachowania dla podsumowania: symbol, type, contracts.
    Wybrane pola
  2. dodaj Przestaw wiersze na kolumny węzeł i nazwij go Pivot summary.
  3. Agregat na contracts kolumna za pomocą sum i wybierz konwersję type Kolumna.
    Konfiguracja przestawna

Normalnie przechowujesz go w jakiejś zewnętrznej bazie danych lub pliku w celach informacyjnych; w tym przykładzie zapisujemy go jako plik CSV na Amazon S3.

  1. Dodaj Przetwarzanie automatycznego równoważenia węzeł i nazwij go Single output file.
  2. Chociaż ten typ transformacji jest zwykle używany do optymalizacji równoległości, tutaj używamy go, aby zredukować dane wyjściowe do pojedynczego pliku. Dlatego wejdź 1 w konfiguracji ilości partycji.
    Konfiguracja automatycznego równoważenia
  3. Dodaj cel S3 i nazwij go CSV Contract summary.
  4. Wybierz CSV jako format danych i wprowadź ścieżkę S3, w której rola stanowiska może przechowywać pliki.

Ostatnia część zadania powinna teraz wyglądać jak w poniższym przykładzie.
DZIEŃ

  1. Zapisz i uruchom zadanie. Użyj Działa kartę, aby sprawdzić, czy zakończyło się pomyślnie.
    Znajdziesz plik w tej ścieżce, który jest CSV, mimo że nie ma tego rozszerzenia. Prawdopodobnie będziesz musiał dodać rozszerzenie po pobraniu, aby je otworzyć.
    W narzędziu, które może odczytać plik CSV, podsumowanie powinno wyglądać podobnie do poniższego przykładu.
    Arkusz kalkulacyjny

Wyczyść kolumny tymczasowe

Przygotowując się do zapisania zamówień w tabeli historycznej do przyszłej analizy, wyczyśćmy kilka tymczasowych kolumn utworzonych po drodze.

  1. dodaj Upuść pola węzeł z Explode contracts węzeł wybrany jako jego rodzic (rozgałęziamy potok danych, aby wygenerować osobne wyjście).
  2. Wybierz pola do usunięcia: instrument_arr, month, day, year.
    Resztę chcemy zachować, aby została zapisana w tabeli historycznej, którą utworzymy później.
    Upuść pola

Standaryzacja waluty

Te syntetyczne dane zawierają fikcyjne operacje na dwóch walutach, ale w prawdziwym systemie można by dostać waluty z rynków na całym świecie. Przydatne jest ujednolicenie obsługiwanych walut w jedną walutę referencyjną, aby można je było łatwo porównywać i agregować na potrzeby raportów i analiz.

Używamy pliki Amazonka Atena symulować tabelę z przybliżonymi przeliczeniami walut, która jest okresowo aktualizowana (tutaj zakładamy, że przetwarzamy zamówienia na tyle terminowo, że przeliczenie jest rozsądnym przedstawicielem do celów porównawczych).

  1. Otwórz konsolę Athena w tym samym regionie, w którym używasz kleju AWS.
  2. Uruchom następujące zapytanie, aby utworzyć tabelę, ustawiając lokalizację S3, w której role Athena i AWS Glue mogą odczytywać i zapisywać. Możesz także chcieć przechowywać tabelę w innej bazie danych niż default (jeśli to zrobisz, odpowiednio zaktualizuj kwalifikowaną nazwę tabeli w podanych przykładach).
    CREATE EXTERNAL TABLE default.exchange_rates(currency string, exchange_rate double)
    ROW FORMAT DELIMITED
    FIELDS TERMINATED BY ','
    STORED AS TEXTFILE
    LOCATION 's3://<enter some bucket>/exchange_rates/';

  3. Wpisz kilka przykładowych konwersji do tabeli:
    INSERT INTO default.exchange_rates VALUES ('usd', 1.0), ('eur', 1.09), ('gbp', 1.24);
  4. Powinieneś być teraz w stanie wyświetlić tabelę z następującym zapytaniem:
    SELECT * FROM default.exchange_rates
  5. Wracając do zadania wizualnego AWS Glue, dodaj a Lookup węzeł (jako dziecko Drop Fields) i nazwij to Exchange rate.
  6. Wprowadź kwalifikowaną nazwę tabeli, którą właśnie utworzyłeś, używając currency jako klucz i wybierz exchange_rate pole do wykorzystania.
    Ponieważ nazwa pola jest taka sama zarówno w danych, jak iw tabeli przeglądowej, możemy po prostu wprowadzić nazwę currency i nie trzeba definiować mapowania.Wyszukiwanie konfiguracji
    W chwili pisania tego tekstu transformacja wyszukiwania nie jest obsługiwana w podglądzie danych i wyświetla błąd informujący, że tabela nie istnieje. Służy to tylko do podglądu danych i nie uniemożliwia prawidłowego działania zadania. Kilka pozostałych kroków wpisu nie wymaga aktualizacji schematu. Jeśli chcesz uruchomić podgląd danych na innych węzłach, możesz tymczasowo usunąć węzeł wyszukiwania, a następnie umieścić go z powrotem.
  7. dodaj Pochodna kolumna węzeł i nazwij go Total in usd.
  8. Nazwij kolumnę pochodną total_usd i użyj następującego wyrażenia SQL:
    round(contracts * price * exchange_rate, 2)
    Konfiguracja przeliczania walut
  9. dodaj Dodaj aktualny znacznik czasu węzeł i nazwij kolumnę ingest_date.
  10. Użyj formatu %Y-%m-%d dla Twojej sygnatury czasowej (dla celów demonstracyjnych używamy tylko daty; możesz ją uściślić, jeśli chcesz).
    Konfiguracja sygnatury czasowej

Zapisz tabelę zamówień historycznych

Aby zapisać tabelę zamówień historycznych, wykonaj następujące kroki:

  1. Dodaj węzeł docelowy S3 i nadaj mu nazwę Orders table.
  2. Skonfiguruj format Parquet z szybką kompresją i podaj docelową ścieżkę S3, w której będą przechowywane wyniki (oddzielone od podsumowania).
  3. Wybierz Utwórz tabelę w Data Catalog i przy kolejnych uruchomieniach, aktualizuj schemat i dodawaj nowe partycje.
  4. Wprowadź docelową bazę danych i nazwę nowej tabeli, na przykład: option_orders.
    Konfiguracja zlewu stołu

Ostatnia część diagramu powinna teraz wyglądać podobnie do poniższego, z dwoma rozgałęzieniami dla dwóch oddzielnych wyjść.
DZIEŃ

Po pomyślnym uruchomieniu zadania możesz użyć narzędzia, takiego jak Athena, do przejrzenia danych wygenerowanych przez zadanie, wysyłając zapytanie do nowej tabeli. Możesz znaleźć stół na liście Athena i wybrać Podgląd tabeli lub po prostu uruchom zapytanie SELECT (aktualizując nazwę tabeli do nazwy i katalogu, którego użyłeś):

SELECT * FROM default.option_orders limit 10

Zawartość tabeli powinna wyglądać podobnie do poniższego zrzutu ekranu.
Zawartość tabeli

Sprzątać

Jeśli nie chcesz zachować tego przykładu, usuń dwa utworzone zadania, dwie tabele w Athenie i ścieżki S3, w których były przechowywane pliki wejściowe i wyjściowe.

Wnioski

W tym poście pokazaliśmy, jak nowe transformacje w AWS Glue Studio mogą pomóc w bardziej zaawansowanych transformacjach przy minimalnej konfiguracji. Oznacza to, że możesz zaimplementować więcej przypadków użycia ETL bez konieczności pisania i utrzymywania jakiegokolwiek kodu. Nowe transformacje są już dostępne w AWS Glue Studio, więc możesz ich używać już dziś w swoich zadaniach wizualnych.


O autorze

Gonzalo herreros jest starszym architektem Big Data w zespole AWS Glue.

Znak czasu:

Więcej z Duże zbiory danych AWS!