AWS Solutions Architect · Oppitunti

AWS Glue: ETL ja datakatalogi

Suorita palvelimettomia ETL-töitä AWS Gluella, rekisteröi taulukoiden skeemat Glue Data Catalogueen ja indeksoi uudet tiedot automaattisesti.

Oppitunti 2/413 vaihetta

AWS Glue: ETL ja datakatalogi on ilmainen AWS Solutions Architect-oppitunti CoddyKitissä. Tämä on oppitunti 2/4. Voit lukea tästä oppimispolusta kokonaan mitkä tahansa 3 oppituntia ilmaiseksi — sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä käytännön harjoittelun sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Oppitunti kuuluu AWS Solutions Architect-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. AWS Solutions Architect-kurssilla on yhteensä 4 oppituntia.

Mikä on AWS Glue?

AWS Glue on täysin hallinnoitu, palvelimeton ETL-palvelu (Extract, Transform, Load). Teidän ei tarvitse varata tai hallita palvelimia — Glue varaa Spark- tai Python-työntekijät automaattisesti työn suorittamisen ajaksi. Glue koostuu kahdesta pääkomponentista: ETL-moottorista datan muunnostöitä varten ja Data Cataloguesta, johon tallennetaan metatiedot datalähteistä ja kohteista.

Glue Data Cataloguen selitys

Glue Data Catalogue on Apache Hive Metastoren kanssa yhteensopiva keskitetty metatietovarasto. Se tallentaa tietokannat, taulukot, sarakemääritykset, tietotyypit ja osiointitiedot. Palvelut, kuten Athena, Redshift Spectrum ja EMR, käyttävät kaikki samaa Data Cataloguea, joten se toimii keskitettynä totuuden lähteenä sille, mitä dataa on olemassa ja missä se sijaitsee S3:ssa.

# List databases in the Glue Data Catalogue
aws glue get-databases --query 'DatabaseList[*].Name'

# List tables in a database
aws glue get-tables --database-name my_db --query 'TableList[*].Name'

Glue Crawlers: skeeman automaattinen tunnistaminen

Glue Crawler muodostaa yhteyden tietovarastoon (S3, JDBC, DynamoDB), ottaa datasta näytteitä ja päättelee automaattisesti skeeman sekä osiointirakenteen. Tämän jälkeen se kirjoittaa taulukkomääritykset Data Catalogueen tai päivittää niitä. Crawlerin voi suorittaa ajastetusti tai käynnistää tarvittaessa. Ne tukevat inkrementaalista indeksointia, jolloin seuraavilla suorituksilla käsitellään vain uudet osiot.

# Create and start a Glue Crawler via CLI
aws glue create-crawler \
  --name sales-crawler \
  --role arn:aws:iam::123456789012:role/GlueRole \
  --database-name my_db \
  --targets '{"S3Targets": [{"Path": "s3://my-data-lake-123/landing/sales/"}]}'

aws glue start-crawler --name sales-crawler

Glue ETL -työn kirjoittaminen

Glue ETL -työ on PySpark- tai Scala Spark -komentosarja, joka lukee dataa lähteestä, soveltaa muunnoksia DynamicFrame-rajapinnan avulla ja kirjoittaa tulokset kohteeseen. DynamicFrames laajentavat Spark DataFrames -rakenteita skeemajoustavuudella: ne käsittelevät automaattisesti epäyhtenäisiä tietotyyppejä ja sisäkkäistä JSON-dataa. Voitte luoda valmiin työkomentosarjan rungon Glue Studion visuaalisesta editorista.

# Minimal Glue PySpark ETL job
from awsglue.context import GlueContext
from awsglue.transforms import *
from pyspark.context import SparkContext

sc = SparkContext()
glueContext = GlueContext(sc)

# Read from Data Catalogue table
source = glueContext.create_dynamic_frame.from_catalog(
    database='my_db', table_name='raw_sales')

# Drop null order_id rows
cleaned = Filter.apply(frame=source, f=lambda r: r['order_id'] is not None)

# Write Parquet to curated zone
glueContext.write_dynamic_frame.from_options(
    frame=cleaned,
    connection_type='s3',
    connection_options={'path': 's3://my-data-lake-123/curated/sales/'},
    format='parquet')

Glue-työntekijät ja DPU-yksiköt

Glue varaa kapasiteettia Data Processing Units (DPU) -yksiköissä. Yksi DPU vastaa neljää vCPU:ta ja 16:tä gigatavua muistia. Valitsette työntekijätyypin (G.1X, G.2X tai G.025X flex- ja Spark Streaming -käyttöön) sekä työntekijöiden määrän. Pienissä töissä käyttäkää G.025X Python Shell -tyyppiä, joka käyttää neljäsosaa DPU:sta ja on erittäin kustannustehokas yksinkertaisiin muunnoksiin.

# Create a Glue job with G.1X workers
aws glue create-job \
  --name clean-sales \
  --role arn:aws:iam::123456789012:role/GlueRole \
  --command '{"Name": "glueetl", "ScriptLocation": "s3://scripts/clean_sales.py", "PythonVersion": "3"}' \
  --worker-type G.1X \
  --number-of-workers 5 \
  --glue-version '4.0'

Glue-työnkulut ja käynnistimet

Glue Workflow ketjuttaa crawlerit ja työt riippuvuusgraafiksi. Crawler etsii uutta dataa, suorittamisen valmistuminen käynnistää työn, joka puolestaan käynnistää seuraavan työn, ja niin edelleen. Triggers-käynnistimet voivat olla ajastettuja (cron), tapahtumapohjaisia (tarvittaessa) tai ehdollisia (käynnistyvät työn onnistuessa tai epäonnistuessa). Työnkulut tarjoavat ETL-putkelle visuaalisen DAG:n ilman erillistä orkestrointipalvelua.

# Create a schedule trigger that starts a job every night at 2 AM UTC
aws glue create-trigger \
  --name nightly-clean \
  --type SCHEDULED \
  --schedule 'cron(0 2 * * ? *)' \
  --actions '[{"JobName": "clean-sales"}]' \
  --start-on-creation

Glue Studio: visuaalinen ETL-rakentaja

Glue Studio tarjoaa vedä ja pudota -käyttöliittymän ETL-töiden graafiseen suunnitteluun ilman PySpark-koodin kirjoittamista käsin. Yhdistätte lähdesolmut (S3, Catalogue-taulukot, JDBC) muunnossolmujen (suodatus, yhdistäminen, koostaminen, mukautettu Python) kautta kohdesolmuihin. Glue Studio luo Spark-komentosarjan automaattisesti. Se tarjoaa myös työn suoritusten koontinäytön suorituksen tilan ja datan laatumittareiden valvontaan.

Glue-datan laatu

AWS Glue Data Quality (DQDL — Data Quality Definition Language) mahdollistaa sääntöjen kirjoittamisen datan validoimiseksi sen kulkiessa ETL-työn läpi. Säännöillä voidaan tarkistaa tyhjien arvojen osuudet, arvoalueet, viite-eheys ja yksikäsitteisyys. Jos data ei läpäise laatutarkistuksia, Glue voi keskeyttää työn tai ohjata virheelliset tietueet S3:n karanteenipolkuun manuaalista tarkistusta varten sen sijaan, että vioittunut data siirtyisi huomaamatta curated-vyöhykkeelle.

# DQDL rule example for Glue Data Quality
# Reject rows where order_total is negative or null
Rules = [
  IsComplete 'order_total',
  ColumnValues 'order_total' >= 0
]

Glue ja muut ETL-vaihtoehdot

SAA-C03-kokeessa on tiedettävä, milloin Gluea kannattaa suositella vaihtoehtojen sijaan. Käyttäkää Gluea palvelimettomaan Spark-ETL:ään ja Data Catalogue -integraatioon. Käyttäkää AWS Data Pipelinea vanhempien datansiirtotehtävien orkestrointiin (pääasiassa legacy-ympäristöissä). Käyttäkää Amazon EMR:ää, kun tarvitsette mukautetun Hadoop- tai Spark-klusterin määrityksen tai pitkäkestoisia työkuormia. Käyttäkää Lambdaa kevyisiin, tapahtumaohjattuihin mikrotransformaatioihin pienillä hyötykuormilla.

JDBC- ja muut kuin S3-datalähteet

Glue voi muodostaa yhteyden relaatiotietokantoihin JDBC-yhteyksien kautta — esimerkiksi RDS:ään, Auroraan, Redshiftin tai paikallisiin tietokantoihin Glue VPC Connection -yhteyden avulla. Määritätte yhteyden JDBC-URL-osoitteella, Secrets Managerista haettavilla tunnistetiedoilla ja VPC:n security groupilla. Glue käyttää tämän jälkeen erillistä verkkoliitäntää, joka sijoitetaan VPC-aliverkkoon ja jonka kautta se saavuttaa yksityiset tietokannan päätepisteet kulkematta julkisen internetin kautta.

# Create a Glue JDBC connection to RDS Aurora
aws glue create-connection \
  --connection-input '{
    "Name": "aurora-prod",
    "ConnectionType": "JDBC",
    "ConnectionProperties": {
      "JDBC_CONNECTION_URL": "jdbc:mysql://aurora-cluster.cluster-xyz.us-east-1.rds.amazonaws.com:3306/sales",
      "SECRET_ID": "arn:aws:secretsmanager:us-east-1:123:secret:rds-creds"
    },
    "PhysicalConnectionRequirements": {
      "SubnetId": "subnet-abc123",
      "SecurityGroupIdList": ["sg-xyz456"],
      "AvailabilityZone": "us-east-1a"
    }
  }'

Bookmarkit: inkrementaalinen käsittely

Oletusarvoisesti Glue-työ käsittelisi jokaisella suorituskerralla kaikki tietueet uudelleen. Glue Job Bookmarks seuraavat, mitkä syötetiedostot on jo käsitelty, joten seuraavilla suorituksilla käsitellään vain uusi data. Bookmarkit ovat välttämättömiä vain lisäystä käyttävissä S3-lähteissä, joihin samaan prefixiin saapuu uusia tiedostoja päivittäin. Ottakaa bookmarkit käyttöön työn parametreissa komennolla --job-bookmark-option job-bookmark-enable.

# Start Glue job with bookmark enabled
aws glue start-job-run \
  --job-name clean-sales \
  --arguments '{"--job-bookmark-option": "job-bookmark-enable"}'

Pikatarkistus

Testaa, kuinka hyvin ymmärrät tämän oppitunnin AWS Solutions Architect (SAA-C03) -käsitteet.

Oppitunnin yhteenveto

Tässä oppitunnissa opit, että AWS Glue tarjoaa palvelimettoman ETL:n PySparkin ja DynamicFrame API:n avulla, Glue Crawlers löytää skeemat automaattisesti ja täyttää Glue Data Cataloguen ja Glue Bookmarksin avulla voidaan käsitellä S3:een saapuneet uudet tiedot inkrementaalisesti. Seuraavaksi tutustumme Amazon Athenaan, jolla voidaan suorittaa palvelimettomia SQL-kyselyitä suoraan S3:ssa.

Aloita maksutta

Opi AWS Solutions Architect tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
30
Oppitunnit
120

Usein kysytyt kysymykset

Onko oppitunti ”AWS Glue: ETL ja datakatalogi” ilmainen?

Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa AWS Solutions Architect-oppimispolun 3 oppituntia, myös oppitunnin “AWS Glue: ETL ja datakatalogi”. Sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä interaktiiviset harjoitukset sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. AWS Solutions Architect-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”AWS Glue: ETL ja datakatalogi”?

Suorita palvelimettomia ETL-töitä AWS Gluella, rekisteröi taulukoiden skeemat Glue Data Catalogueen ja indeksoi uudet tiedot automaattisesti. Harjoittelet AWS Solutions Architect-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni AWS Solutions Architect-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin AWS Solutions Architect-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 2/4.

Kuinka kauan ”AWS Glue: ETL ja datakatalogi”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä AWS Solutions Architect-oppitunnilla?

Kyllä. Jokainen AWS Solutions Architect-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. Data laken rakentaminen S3:een
  2. AWS Glue: ETL ja datakatalogi
  3. Amazon Athena: palvelimeton SQL S3:ssa
  4. Kinesis Streams, Firehose ja reaaliaikainen analytiikka
← Takaisin: AWS Solutions Architect