AWS Glue: ETL og datakatalog
Kjør serverløse ETL-jobber med AWS Glue, registrer tabellskjemaer i Glue Data Catalog, og gjennomsøk nye data automatisk
AWS Glue: ETL og datakatalog er en gratis leksjon i Cloud & IT Cert Prep på CoddyKit. Dette er leksjon 2 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Cloud & IT Cert Prep, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Cloud & IT Cert Prep inneholder totalt 4 leksjoner.
Hva er AWS Glue?
AWS Glue er en fullstendig administrert, serverløs ETL-tjeneste (Extract, Transform, Load). De trenger ikke å klargjøre eller administrere servere — Glue tildeler Spark- eller Python-arbeidere automatisk når en jobb kjører. Glue består av to hovedkomponenter: ETL-motoren for datatransformasjonsjobber og Data Catalogue for lagring av metadata om datakildene og målene.
Glue Data Catalogue forklart
Glue Data Catalogue er et sentralisert metadatalager som er kompatibelt med Apache Hive Metastore. Det lagrer databaser, tabeller, kolonnedefinisjoner, datatyper og partisjonsinformasjon. Tjenester som Athena, Redshift Spectrum og EMR bruker alle den samme Data Catalogue, noe som gjør den til én sannhetskilde for hvilke data som finnes, og hvor de ligger i S3.
# 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: Automatisk oppdagelse av skjema
En Glue Crawler kobler seg til et datalager (S3, JDBC, DynamoDB), tar et utvalg av dataene og utleder automatisk skjemaet og partisjonsstrukturen. Deretter skriver eller oppdaterer den tabelldefinisjoner i Data Catalogue. Crawlers kan kjøres etter en tidsplan eller utløses ved behov. De støtter inkrementell crawling, slik at de bare behandler nye partisjoner ved senere kjøringer.
# 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-crawlerSkrive en Glue ETL-jobb
En Glue ETL-jobb er et PySpark- eller Scala Spark-skript som leser fra en kilde, bruker transformasjoner gjennom DynamicFrame-API-et og skriver til et mål. DynamicFrames utvider Spark DataFrames med fleksible skjemaer: De håndterer inkonsistente datatyper og nestet JSON automatisk. De kan generere et grunnleggende jobbskript fra det visuelle redigeringsverktøyet Glue Studio.
# 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-jobbarbeidere og DPU-er
Glue tildeler kapasitet i Data Processing Units (DPU-er). Én DPU tilsvarer 4 vCPU-er og 16 GB minne. De velger en arbeidertype (G.1X, G.2X eller G.025X for fleksibel behandling/strømming med Spark) og et antall arbeidere. For små jobber kan De bruke jobbtypen G.025X Python Shell, som bruker en kvart DPU og er svært kostnadseffektiv for enkle transformasjoner.
# 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-arbeidsflyter og utløsere
En Glue Workflow kobler crawlers og jobber sammen i en avhengighetsgraf. En crawler oppdager nye data, og ved fullføring utløser den en jobb, som deretter kan utløse en ny jobb, og så videre. Triggers kan være tidsplanlagte (cron), hendelsesbaserte (ved behov) eller betingede (utløses når en jobb lykkes eller mislykkes). Workflows gir Dem en visuell DAG for ETL-pipelinen uten en separat orkestreringstjeneste.
# 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-creationGlue Studio: Visuell ETL-bygger
Glue Studio tilbyr et dra-og-slipp-grensesnitt for grafisk utforming av ETL-jobber uten at De må skrive PySpark-kode manuelt. De kobler kildeknutepunkter (S3, Catalogue-tabeller, JDBC) gjennom transformasjonsknutepunkter (filter, join, aggregat, egendefinert Python) til målknutepunkter. Glue Studio genererer Spark-skriptet automatisk. Verktøyet tilbyr også et oversiktsdashbord for jobbkjøringer, der De kan overvåke kjøringsstatus og måleverdier for datakvalitet.
Glue Data Quality
AWS Glue Data Quality (DQDL — Data Quality Definition Language) lar Dem skrive regler for å validere data mens de flyter gjennom en ETL-jobb. Reglene kan kontrollere andelen nullverdier, verdiområder, referanseintegritet og unikhet. Hvis data ikke oppfyller kvalitetsreglene, kan Glue stanse jobben eller sende ugyldige poster til en karantenebane i S3 for manuell gjennomgang, i stedet for å slippe korrupte data videre til curated-sonen uten varsel.
# 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 sammenlignet med andre ETL-alternativer
Til SAA-C03-eksamen bør De vite når Glue bør anbefales fremfor alternativer. Bruk Glue for serverløs Spark-ETL og integrasjon med Data Catalogue. Bruk AWS Data Pipeline til orkestrering av eldre dataflyttingsoppgaver (for det meste eldre systemer). Bruk Amazon EMR når De trenger egendefinert konfigurasjon av Hadoop-/Spark-klynger eller langvarige arbeidsbelastninger. Bruk Lambda til lette, hendelsesdrevne mikrotransformasjoner på små datamengder.
JDBC- og ikke-S3-datakilder
Glue kan koble seg til relasjonsdatabaser via JDBC connections — RDS, Aurora, Redshift eller lokale databaser gjennom en Glue VPC Connection. De definerer en tilkobling med en JDBC-URL, legitimasjon fra Secrets Manager og en VPC-sikkerhetsgruppe. Glue bruker deretter et dedikert nettverksgrensesnitt som er plassert i VPC-undernettet, for å nå private databaseendepunkter uten å gå via det offentlige internett.
# 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"
}
}'Bokmerker: Inkrementell behandling
Som standard ville en Glue-jobb behandlet hver post på nytt ved hver kjøring. Glue Job Bookmarks holder oversikt over hvilke inndatafiler som allerede er behandlet, slik at senere kjøringer bare henter nye data. Bokmerker er avgjørende for S3-kilder som bare legger til data, der det kommer nye filer i det samme prefikset hver dag. Aktiver bokmerker i jobbparameterne med --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"}'Hurtigsjekk
Test forståelsen Deres av AWS Solutions Architect-konsepter (SAA-C03) fra denne leksjonen.
Oppsummering av leksjonen
I denne leksjonen lærte De at: AWS Glue tilbyr serverløs ETL via PySpark og DynamicFrame API, Glue Crawlers oppdager skjemaer automatisk og fyller ut Data Catalogue, og Glue Bookmarks muliggjør inkrementell behandling av nye S3-data. Neste tema er Amazon Athena for serverløse SQL-spørringer direkte mot S3.
Lær deg Cloud & IT Cert Prep med en AI-veileder – gratis
Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.
- Kurs
- 150
- Leksjoner
- 600
Ofte stilte spørsmål
Er leksjonen «AWS Glue: ETL og datakatalog» gratis?
Ja – hele teksten i «AWS Glue: ETL og datakatalog» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av Cloud & IT Cert Prep-kurset, kan du oppgradere til CoddyKit PRO. Kurset i Cloud & IT Cert Prep inneholder totalt 4 leksjoner.
Hva lærer jeg i «AWS Glue: ETL og datakatalog»?
Kjør serverløse ETL-jobber med AWS Glue, registrer tabellskjemaer i Glue Data Catalog, og gjennomsøk nye data automatisk Du øver på Cloud & IT Cert Prep med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.
Trenger jeg erfaring for å begynne med Cloud & IT Cert Prep?
Ingen tidligere erfaring er nødvendig. Cloud & IT Cert Prep på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 2 av 4.
Hvor lang tid tar leksjonen «AWS Glue: ETL og datakatalog»?
De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.
Kan jeg skrive og kjøre kode i denne Cloud & IT Cert Prep-leksjonen?
Ja. Alle Cloud & IT Cert Prep-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.
Alle leksjonene i dette kurset
- Bygging av en datasjø på S3
- AWS Glue: ETL og datakatalog
- Amazon Athena: Serverløs SQL på S3
- Kinesis Streams, Firehose og sanntidsanalyse