0Pricing
AWS Solutions Architect · Pelajaran

AWS Glue: ETL dan Katalog Data

Jalankan pekerjaan ETL tanpa server dengan AWS Glue, daftarkan skema tabel di Glue Data Catalogue, lalu telusuri data baru secara otomatis.

AWS Glue: ETL dan Katalog Data adalah pelajaran AWS Solutions Architect gratis di CoddyKit. Ini adalah pelajaran 2 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar AWS Solutions Architect, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus AWS Solutions Architect mencakup 4 pelajaran total.

Apa Itu AWS Glue?

AWS Glue adalah layanan ETL (Extract, Transform, Load) nirserver yang dikelola sepenuhnya. Anda tidak perlu menyediakan atau mengelola server apa pun — Glue secara otomatis mengalokasikan pekerja Spark atau Python saat pekerjaan dijalankan. Glue terdiri dari dua komponen utama: mesin ETL untuk pekerjaan transformasi data dan Data Catalogue untuk menyimpan metadata tentang sumber dan target data Anda.

Penjelasan Glue Data Catalogue

Glue Data Catalogue adalah repositori metadata terpusat yang kompatibel dengan Apache Hive Metastore. Repositori ini menyimpan basis data, tabel, definisi kolom, tipe data, dan informasi partisi. Layanan seperti Athena, Redshift Spectrum, dan EMR semuanya menggunakan Data Catalogue yang sama, sehingga menjadi sumber kebenaran tunggal mengenai data yang tersedia dan lokasinya di 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: Menemukan Skema secara Otomatis

Glue Crawler terhubung ke penyimpanan data (S3, JDBC, DynamoDB), mengambil sampel data, lalu secara otomatis menyimpulkan skema dan struktur partisi. Setelah itu, crawler menulis atau memperbarui definisi tabel di Data Catalogue. Crawler dapat dijalankan sesuai jadwal atau dipicu sesuai permintaan. Crawler mendukung crawling inkremental sehingga pada proses berikutnya hanya memproses partisi baru.

# 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

Menulis Pekerjaan Glue ETL

Pekerjaan Glue ETL adalah skrip PySpark atau Scala Spark yang membaca dari sumber, menerapkan transformasi menggunakan API DynamicFrame, lalu menulis ke target. DynamicFrames memperluas Spark DataFrames dengan fleksibilitas skema: DynamicFrames menangani tipe data yang tidak konsisten dan JSON bertingkat secara otomatis. Anda dapat membuat skrip pekerjaan dasar dari editor visual 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')

Pekerja Glue dan DPU

Glue mengalokasikan kapasitas dalam Data Processing Units (DPUs). Satu DPU setara dengan 4 vCPU dan memori 16 GB. Anda memilih tipe pekerja (G.1X, G.2X, atau G.025X untuk flex/spark streaming) dan jumlah pekerja. Untuk pekerjaan kecil, gunakan tipe pekerjaan Python Shell G.025X yang menggunakan seperempat DPU dan sangat hemat biaya untuk transformasi sederhana.

# 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'

Alur Kerja dan Pemicu Glue

Glue Workflow menghubungkan crawler dan pekerjaan ke dalam graf dependensi. Crawler menemukan data baru, lalu setelah selesai memicu sebuah pekerjaan, kemudian pekerjaan lain, dan seterusnya. Pemicu dapat dijadwalkan (cron), berbasis peristiwa (sesuai permintaan), atau bersyarat (dijalankan saat suatu pekerjaan berhasil atau gagal). Alur kerja menyediakan DAG visual untuk pipeline ETL tanpa layanan orkestrasi terpisah.

# 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: Pembuat ETL Visual

Glue Studio menyediakan antarmuka seret dan lepas untuk merancang pekerjaan ETL secara grafis tanpa menulis kode PySpark secara manual. Anda menghubungkan simpul sumber (S3, tabel Catalogue, JDBC) melalui simpul transformasi (filter, gabung, agregasi, Python khusus) ke simpul target. Glue Studio membuat skrip Spark secara otomatis. Glue Studio juga menyediakan dasbor proses pekerjaan untuk memantau status eksekusi dan metrik kualitas data.

Kualitas Data Glue

AWS Glue Data Quality (DQDL — Data Quality Definition Language) memungkinkan Anda menulis aturan untuk memvalidasi data saat mengalir melalui pekerjaan ETL. Aturan dapat memeriksa tingkat nilai null, rentang nilai, integritas referensial, dan keunikan. Jika data gagal memenuhi aturan kualitas, Glue dapat menghentikan pekerjaan atau mengarahkan rekaman yang bermasalah ke jalur karantina di S3 untuk ditinjau secara manual, alih-alih meneruskan data rusak secara diam-diam ke zona curated.

# 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 dibandingkan Opsi ETL Lain

Untuk ujian SAA-C03, ketahui kapan harus merekomendasikan Glue dibandingkan alternatifnya. Gunakan Glue untuk ETL Spark nirserver dan integrasi Data Catalogue. Gunakan AWS Data Pipeline untuk mengorkestrasi tugas pemindahan data lama (umumnya sistem warisan). Gunakan Amazon EMR saat Anda memerlukan konfigurasi klaster Hadoop/Spark khusus atau beban kerja yang berjalan lama. Gunakan Lambda untuk transformasi mikro yang ringan dan digerakkan oleh peristiwa pada muatan kecil.

Sumber Data JDBC dan Non-S3

Glue dapat terhubung ke basis data relasional melalui koneksi JDBC — RDS, Aurora, Redshift, atau basis data lokal melalui Glue VPC Connection. Anda menentukan koneksi dengan URL JDBC, kredensial dari Secrets Manager, dan grup keamanan VPC. Glue kemudian menggunakan antarmuka jaringan khusus yang ditempatkan di dalam subnet VPC Anda untuk menjangkau endpoint basis data privat tanpa melewati internet publik.

# 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"
    }
  }'

Bookmark: Pemrosesan Inkremental

Secara default, pekerjaan Glue akan memproses ulang setiap rekaman pada setiap proses. Glue Job Bookmarks melacak file input yang telah diproses, sehingga proses berikutnya hanya mengambil data baru. Bookmark sangat penting untuk sumber S3 append-only yang menerima file baru setiap hari pada prefiks yang sama. Aktifkan bookmark dalam parameter pekerjaan dengan --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"}'

Pemeriksaan Singkat

Uji pemahaman Anda tentang konsep AWS Solutions Architect (SAA-C03) dari pelajaran ini.

Ringkasan Pelajaran

Dalam pelajaran ini, Anda mempelajari bahwa: AWS Glue menyediakan ETL nirserver melalui PySpark dan API DynamicFrame, Glue Crawlers menemukan skema secara otomatis dan mengisi Data Catalogue, serta Glue Bookmarks memungkinkan pemrosesan inkremental data S3 yang baru. Selanjutnya, kita akan mempelajari Amazon Athena untuk kueri SQL nirserver langsung pada S3.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “AWS Glue: ETL dan Katalog Data” gratis?

Ya — teks lengkap “AWS Glue: ETL dan Katalog Data” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus AWS Solutions Architect, upgrade ke CoddyKit PRO. Kursus AWS Solutions Architect mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “AWS Glue: ETL dan Katalog Data”?

Jalankan pekerjaan ETL tanpa server dengan AWS Glue, daftarkan skema tabel di Glue Data Catalogue, lalu telusuri data baru secara otomatis. Kamu berlatih AWS Solutions Architect dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai AWS Solutions Architect?

Tidak diperlukan pengalaman sebelumnya. AWS Solutions Architect di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 2 dari 4.

Berapa lama pelajaran “AWS Glue: ETL dan Katalog Data” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran AWS Solutions Architect ini?

Ya. Setiap pelajaran AWS Solutions Architect menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Membangun Danau Data di S3
  2. AWS Glue: ETL dan Katalog Data
  3. Amazon Athena: SQL Tanpa Server di S3
  4. Kinesis Streams, Firehose, dan Analitik Waktu Nyata
← Kembali ke AWS Solutions Architect