AWS Glue
AWS Glue
Serverless ETL w chmurze AWS. Odkrywaj, przeksztalcaj i laduj dane miedzy zrodlami bez zarzadzania infrastruktura.
AWS Glue to w pelni zarzadzany serwis ETL (Extract, Transform, Load), ktory pozwala odkrywac, przygotowywac i laczyc dane na potrzeby analityki i machine learning. Glue eliminuje potrzebe zarzadzania serwerami - uruchamiasz zadania ETL, a AWS zajmuje sie cala infrastruktura.
Sercem Glue jest Glue Data Catalog - centralny rejestr metadanych kompatybilny z Apache Hive. Dzieki niemu serwisy takie jak Athena, Redshift Spectrum czy EMR widza te same definicje tabel i schematow. To fundament kazdego data lake na AWS.
Glue Data Catalog stal sie domyslnym metastore Apache Hive dla calego ekosystemu analitycznego AWS. Pierwszy milion obiektow w Data Catalog jest darmowy - wystarczy dla wiekszosci projektow.
Uzywaj Glue Job Bookmarks, zeby przetwarzac tylko nowe dane przy kolejnych uruchomieniach zadania ETL. Dzieki temu unikasz ponownego przetwarzania calego zbioru danych i drastycznie obnizasz koszty DPU.
AWS Glue to w pelni zarzadzany serwis ETL (Extract, Transform, Load) i Data Catalog. Glue automatycznie odkrywa schematy danych (crawlers), przechowuje metadane w centralnym katalogu i wykonuje zadania ETL na silniku Apache Spark. Data Catalog sluzy jako centralny rejestr schematow dla Athena, Redshift Spectrum, EMR i Lake Formation.
Tworzenie Crawlera
Crawler automatycznie skanuje zrodla danych (S3, RDS, DynamoDB, JDBC) i odkrywa schematy, formaty i partycje. Konfiguracja crawlera: zrodlo danych (sciezka S3 lub connection JDBC), IAM role z dostepem do zrodel, docelowa baza w Data Catalog, harmonogram uruchamiania (np. co godzine). Crawler wykrywa formaty: Parquet, ORC, JSON, CSV, Avro, XML. Dla S3 automatycznie rozpoznaje partycjonowanie po strukturze katalogow (np. year=2024/month=01/).
Data Catalog - centralny rejestr schematow
Data Catalog przechowuje metadane: bazy danych, tabele, kolumny, typy danych, lokalizacje fizyczne i statystyki. Kazda tabela w katalogu to definicja schematu wskazujaca na dane w S3, RDS lub innym zrodle. Catalog jest kompatybilny z Apache Hive Metastore - Athena, Redshift Spectrum i EMR uzywaja go natywnie. Mozesz miec do 1 000 000 tabel w jednym koncie AWS.
Tworzenie zadania ETL (Spark/Python)
Glue ETL Job to skrypt PySpark lub Python Shell wykonywany na zarzadzanym klastrze Spark. Glue Studio oferuje wizualny edytor drag-and-drop do budowania pipeline bez pisania kodu. Glue generuje kod PySpark z DynamicFrame API (rozszerzenie DataFrame z obsluga niejednorodnych schematow). Mozesz tez pisac wlasny kod Spark/Python. Typy workerow: G.1X (4 vCPU, 16 GiB), G.2X (8 vCPU, 32 GiB), G.4X, G.8X.
Konfiguracja triggerow i workflow
Triggery uruchamiaja zadania ETL: on-demand (reczne), scheduled (cron), conditional (po zakonczeniu innego zadania). Glue Workflow laczy wiele crawlerow i jobow w orkiestrowany pipeline z zaleznosci. Np. Workflow: Crawler S3 -> ETL Transform -> Crawler wynikowy -> kolejny ETL. Mozesz tez uzywac Step Functions do bardziej zlozonej orkiestracji z obsluga bledow i rozgalezien.
Job Bookmarks - przyrostowe ETL
Job Bookmarks sledzca, ktore dane zostaly juz przetworzone. Przy kolejnym uruchomieniu job przetwarza tylko nowe dane (np. nowe pliki w S3, nowe wiersze w tabeli JDBC). Bookmarks dzialaja na podstawie sciezek S3, timestampow lub primary key. Wlaczenie: job.init(), job.commit() w kodzie. Bez bookmarks kazde uruchomienie przetwarza calosc danych - dla duzych zbiorow to roznica miedzy minutami a godzinami.
Monitorowanie i debugowanie
Glue integruje sie z CloudWatch (metryki, logi) i oferuje wlasne metryki: czas wykonania, zuzycie pamieci, ilosc przetworzonych rekordow, bledy. Spark UI (dostepny przez Glue Console) pokazuje DAG wykonania, czasy etapow i bottlenecki. Wlacz continuous logging dla real-time logow. Glue Data Quality pozwala definiowac reguly jakosci danych (np. kolumna NOT NULL, unikalne wartosci) i automatycznie je walidowac.
Praktyczne wskazowki do optymalizacji zadan ETL, zarzadzania kosztami i budowania niezawodnych pipeline danych w AWS Glue.
Glue Studio - wizualny edytor ETL
Glue Studio pozwala budowac pipeline ETL przez drag-and-drop bez pisania kodu Spark. Dostepne transformacje: ApplyMapping (zmiana nazw/typow kolumn), Filter, Join, Aggregate, Custom SQL, Custom Code. Studio generuje kod PySpark, ktory mozesz dalej edytowac. Dla prostych pipeline (S3 -> transform -> S3/Redshift) Studio jest 5-10x szybsze niz pisanie kodu od zera. Uzywaj go do prototypowania, a potem optymalizuj wygenerowany kod.
PoczatkujacyDobor DPU - optymalizacja kosztow
DPU (Data Processing Unit) to jednostka obliczeniowa Glue: 4 vCPU + 16 GiB RAM. Domyslna alokacja to 10 DPU (koszt 0.44 USD/DPU-godzine). Dla malych zbiorow (< 10 GiB) zmniejsz do 2-5 DPU. Monitoruj metryki CloudWatch: jezeli zuzycie CPU < 30% i pamieci < 50%, masz za duzo DPU. Glue Auto Scaling (Flex execution) automatycznie dobiera liczbe workerow - wlacz go dla zmiennych workloadow.
PoczatkujacyJob Bookmarks dla przyrostowego ETL
Wlacz Job Bookmarks aby przetwarzac tylko nowe dane. Dla S3 bookmarks sledzca przetworzone sciezki plikow. Dla JDBC sledzca wartosci kolumny sortowania (np. updated_at). Pamietaj: bookmarks nie dzialaja z DynamoDB i niektorymi formatami. Jezeli job sie nie powiedzie, bookmark nie zostanie zaktualizowany - kolejne uruchomienie przetworzy dane ponownie. Uzyj job.commit() na koncu, nie w srodku skryptu.
PoczatkujacyGlue Data Quality - walidacja danych
Glue Data Quality (DQDL) pozwala definiowac reguly jakosci danych deklaratywnie: RowCount > 0, Completeness("email") = 1.0, Uniqueness("order_id") > 0.99, ColumnValues "age" between 0 and 150. Reguly mozesz dodac do ETL job lub uruchamiac osobno. Wyniki walidacji sa widoczne w Glue Console i CloudWatch. Ustaw alert na naruszenie reguly - lepiej zatrzymac pipeline niz zaladowac brudne dane do hurtowni.
ZaawansowanySchema Registry dla danych streamingowych
Glue Schema Registry przechowuje i wersjonuje schematy Avro i JSON Schema uzywane przez producenty i konsumenty danych streamingowych (Kinesis, MSK/Kafka). Registry zapewnia kompatybilnosc wsteczna/przyszla miedzy wersjami schematu - producent nie moze wyslac danych niezgodnych ze schematem. Integracja z Kinesis Data Streams i MSK jest natywna - serializer/deserializer dziala transparentnie.
ZaawansowanyPartycjonowanie wyjscia dla wydajnosci
Zapisuj dane wyjsciowe ETL z partycjonowaniem po kolumnie czasu (year/month/day). Athena i Redshift Spectrum czytaja tylko potrzebne partycje, co redukuje czas i koszt zapytan o 90%+. Uzywaj formatu Parquet z kompresja Snappy - to standard w ekosystemie AWS data lake. Unikaj malych plikow (< 128 MB) - Spark domyslnie tworzy po jednym pliku na partycje RDD. Uzyj coalesce() lub repartition() aby kontrolowac liczbe plikow wyjsciowych.
ZaawansowanyScreenshoty z AWS Console
Wkrotce pojawia sie tu zrzuty ekranu pokazujace jak korzystac z AWS Glue bezposrednio w konsoli AWS.
Do czego sluzy AWS Glue?
Budowanie data lake
Crawlery automatycznie odkrywaja dane w S3, tworza tabele w Data Catalog i umozliwiaja natychmiastowe odpytywanie przez Athena.
Pipelines ETL bez kodu
Glue Studio oferuje wizualny edytor ETL - przeciagnij zrodlo, dodaj transformacje i zapisz wynik do S3 lub bazy danych.
Przygotowanie danych do ML
Glue DataBrew pozwala czyscic i normalizowac dane bez pisania kodu - idealny dla analitykow i data scientists.
Migracja i integracja danych
Laduj dane z RDS, DynamoDB, Redshift, JDBC i innych zrodel do centralnego data lake w S3.
Co musisz wiedziec?
Glue Data Catalog
Centralny rejestr metadanych (bazy, tabele, schematy). Kompatybilny z Apache Hive metastore. Uzywany przez Athena, Redshift Spectrum i EMR.
Crawler
Automatycznie skanuje zrodla danych (S3, JDBC, DynamoDB), wykrywa schemat i tworzy lub aktualizuje tabele w Data Catalog.
Glue Job
Zadanie ETL napisane w Pythonie lub Scali, uruchamiane na Apache Spark. Przetwarza dane w trybie batch lub streaming.
DPU (Data Processing Unit)
Jednostka mocy obliczeniowej Glue. Kazde DPU to 4 vCPU i 16 GB RAM. Platisz za liczbe DPU pomnozona przez czas pracy zadania.
Glue Studio
Wizualny interfejs do tworzenia, uruchamiania i monitorowania zadan ETL bez pisania kodu. Generuje kod PySpark automatycznie.
Schema Registry
Rejestr schematow danych (Avro, JSON Schema). Zapewnia kompatybilnosc schematow miedzy producentami i konsumentami danych.
Architektura: Glue ETL Pipeline
Typowy pipeline ETL z AWS Glue: Crawler odkrywa schematy zrodel danych, Data Catalog przechowuje metadane, a zadania ETL (Spark) transformuja dane i laduja je do hurtowni lub data lake. Athena i Redshift Spectrum korzystaja z Data Catalog do odpytywania danych.
Ile kosztuje AWS Glue?
Glue ETL Jobs
Platisz za DPU-godziny. Rozliczenie z dokladnoscia do sekundy, minimum 1 minuta.
1 DPU-godzina: ~$0.44 (standard) / ~$0.29 (Flex)
Glue Data Catalog
Pierwsze milion obiektow i milion zapytan miesiecznie za darmo. Potem platisz za przechowywanie i dostep.
Ponad Free Tier: $1.00/100k obiektow/mies.
Crawlery
Platisz za DPU-godziny pracy crawlera. Rozliczenie z dokladnoscia do sekundy, minimum 10 minut.
1 DPU-godzina crawlera: ~$0.44
Glue DataBrew
Sesje interaktywne i zadania DataBrew rozliczane za wezel-godzine.
Sesja: ~$1.00/godz., Job: ~$0.48/wezel-godz.
Przyklady AWS CLI
Uruchom crawlera
Startuje crawlera, ktory skanuje zrodlo danych i aktualizuje Data Catalog
aws glue start-crawler --name moj-crawler-s3
Wyswietl tabele w bazie Data Catalog
Lista wszystkich tabel w wybranej bazie danych Glue Data Catalog
aws glue get-tables \
--database-name moja-baza \
--query 'TableList[].{Name:Name,Location:StorageDescriptor.Location}' \
--output table
Uruchom zadanie ETL
Startuje Glue Job z podanymi argumentami
aws glue start-job-run \
--job-name moj-etl-job \
--arguments '{"--input_path":"s3://dane-wejsciowe/","--output_path":"s3://dane-wyjsciowe/"}'
Sprawdz status zadania
Pobiera status ostatniego uruchomienia zadania Glue
aws glue get-job-runs \
--job-name moj-etl-job \
--max-items 1 \
--query 'JobRuns[0].{Status:JobRunState,Start:StartedOn,DPU:AllocatedCapacity}' \
--output table
Quiz: AWS Glue
Sprawdz czy dobrze rozumiesz podstawy. Kliknij odpowiedz — feedback pojawi sie od razu.
1. Co to jest Glue Data Catalog?
2. Czym jest DPU w kontekscie AWS Glue?
3. Co robi Glue Crawler?
4. Ktore serwisy korzystaja z Glue Data Catalog jako metastore?
Czesto uzywane razem z AWS Glue
Chcesz poznac AWS Glue w praktyce?
Darmowy kurs "AWS od podstaw" pokazuje jak uzywac AWS Glue krok po kroku. Teoria + praktyka od zera.