Lewati ke konten utama

Memulai dengan AWS Glue: Panduan Langkah demi Langkah

Pelajari cara menyiapkan AWS Glue, membuat crawler, mengatalogkan data Anda, dan menjalankan job untuk mengonversi file CSV menjadi format Parquet, sehingga mengoptimalkan proses ETL Anda.
Diperbarui 28 Sep 2026  · 10 mnt Baca

Jelajahi bersama AI

ChatGPTClaudePerplexity

Solusi cloud-native semakin populer di berbagai industri karena keamanannya, fleksibilitasnya, dan skalabilitasnya. Salah satu solusinya adalah AWS Glue, yang menyederhanakan pemrosesan data—komponen inti dalam pengambilan keputusan yang tepat dan pengoptimalan operasi bisnis.

Dalam tutorial ini, kita akan menggunakan AWS Glue untuk mendemonstrasikan tugas ETL (Extract, Transform, Load) yang umum: mengonversi file CSV yang disimpan di bucket S3 menjadi format Parquet. Menggunakan Parquet meningkatkan efisiensi pemrosesan data dan kinerja kueri.

Kami akan memperkenalkan AWS Glue, fitur utamanya, dan manfaat otomatisasi penyiapan data. Selanjutnya, kami akan memandu Anda menyiapkan akun AWS, membuat peran IAM, dan mengonfigurasi akses ke bucket S3 Anda. Terakhir, kami akan membimbing Anda membuat Glue crawler untuk memindai dataset dan menghasilkan file Parquet.

Apa Itu AWS Glue?

Sebelum melanjutkan ke langkah praktis, mari pahami terlebih dahulu apa itu AWS Glue dan mengapa layanan ini bermanfaat untuk tugas pemrosesan data.

AWS Glue adalah layanan ETL terkelola penuh yang memudahkan penyiapan dan pemuatan data untuk analitik. Layanan ini menyediakan lingkungan tanpa server untuk membuat, menjalankan, dan memantau job ETL. AWS Glue secara otomatis menemukan dan memprofilkan data Anda melalui AWS Glue Data Catalog, merekomendasikan dan menghasilkan kode ETL, serta menyediakan penjadwal fleksibel untuk menangani resolusi dependensi, pemantauan job, dan upaya ulang.

Mengapa Menggunakan AWS Glue?

Memahami manfaat AWS Glue akan membantu Anda menghargai nilainya dalam alur kerja pemrosesan data. Ada beberapa alasan kuat untuk menggunakan AWS Glue dan sebagian di antaranya digambarkan di bawah ini:

Why choose AWS Glue

Mengapa memilih AWS Glue? Gambar oleh penulis

  • Tanpa server (serverless): Tidak perlu menyediakan atau mengelola server, sehingga mengurangi beban operasional.
  • Pembuatan kode otomatis: AWS Glue dapat secara otomatis menghasilkan kode Python atau Scala untuk job ETL.
  • Penjadwalan dan pemantauan job bawaan: Kemampuan ini memudahkan penjadwalan dan pemantauan job ETL.
  • Penemuan dan pengkatalogan data: Crawler AWS Glue dapat secara otomatis menemukan, mengkatalogkan, dan menyiapkan data untuk analisis.
  • Integrasi dengan layanan AWS lainnya: Bekerja mulus dengan layanan seperti Amazon S3, Amazon RDS, dan Amazon Redshift.
  • Hemat biaya: Anda hanya membayar sumber daya yang digunakan saat job ETL berjalan.

AWS Glue: Panduan Langkah demi Langkah

Ini bagian yang menarik: mari pelajari cara menggunakan Glue untuk tugas pemrosesan data yang sangat umum: mengonversi file CSV ke Parquet.

Bagi yang baru menggunakan AWS, langkah pertama adalah membuat akun dan kemudian masuk ke konsol manajemen.

  • Buka AWS dan daftar.
  • Setelah memiliki akun, masuk ke AWS Management Console.

AWS Identity and Access Management (IAM) memungkinkan pengguna mengelola akses ke layanan dan sumber daya AWS secara aman.

Kita perlu membuat peran IAM untuk memungkinkan Glue mengakses layanan terkait. Dalam kasus kita, layanan utama yang diakses adalah S3, yang menampung file CSV kita.

The AWS Storage Tutorial adalah cara yang bagus bagi pengguna AWS baru untuk mempelajari lebih lanjut tentang sistem seperti S3. 

Langkah utama untuk membuat peran IAM tersebut dijelaskan di bawah, dimulai dari Management Console:

  • Arahkan ke layanan IAM.
  • Klik "Roles" di bilah sisi kiri, lalu klik "Create role".
  • Di bawah "Choose a use case," pilih "Glue" dan klik "Next: Permissions."
  • Cari dan pilih kebijakan berikut:
    • AWSGlueServiceRole
    • AmazonS3FullAccess (Catatan: Di lingkungan produksi, Anda sebaiknya membuat kebijakan yang lebih ketat).
  • Beri nama peran Anda (misalnya, "GlueETLRole"), dan jika perlu berikan deskripsi, namun tidak wajib. Terakhir, klik "Create role".

Steps to create an IAM role in the AWS console

Langkah membuat peran IAM di konsol AWS. Gambar oleh penulis

The Complete Guide to AWS IAM membahas langkah-langkah menggunakan IAM untuk mengamankan lingkungan AWS, mengelola akses dengan pengguna, grup, dan peran, serta menguraikan praktik terbaik untuk keamanan yang tangguh.

Kita akan menyimpan file CSV input dan file Parquet output di Amazon S3.

Data input untuk contoh ini dibuat untuk tujuan ilustrasi dan dapat ditemukan di repositori GitHub penulis:

  • athletes.csv: Berisi informasi tentang atlet, termasuk ID, nama, negara, cabang olahraga, dan usia.
  • events.csv: Mencantumkan berbagai event, termasuk ID event, cabang olahraga, nama event, tanggal, dan lokasi.
  • medals.csv: Mencatat informasi medali, menghubungkan event dan atlet dengan medali yang mereka menangkan.

Sekarang, kita dapat menyiapkan bucket S3 sebagai berikut:

  • Buka layanan S3 di AWS Management Console.
  • Klik "Create bucket" dan beri nama yang unik (misalnya, "my-glue-csv-etl-bucket").
  • Biarkan pengaturan default bucket demi kesederhanaan dan buat bucket.
  • Buat dua folder di dalam bucket Anda: "input" dan "output."

AWS S3 bucket and folder creations

Alur pembuatan bucket dan folder S3. Gambar oleh penulis 

Setelah membuat dua folder, konten bucket Anda seharusnya terlihat seperti ini:

View of folders inside an S3 bucket

Tampilan folder di dalam bucket S3. Gambar oleh penulis

Sekarang, kita dapat mengunggah file CSV input ini ke folder "input".

Files in an S3 bucket

Isi folder "input" pada bucket S3. Gambar oleh penulis

Glue crawler digunakan untuk menemukan dan mengkatalogkan data kita secara otomatis. Bagian ini menjelaskan cara membuat crawler yang memindai semua file CSV input. 

Langkah-langkah utamanya dijelaskan di bawah ini:

  • Buka layanan AWS Glue di AWS Management Console.
  • Di bilah sisi kiri, di bawah "Data catalog," klik "Crawlers."
  • Klik "Create crawler".
  • Beri nama crawler Anda (misalnya, "CSV-to-Parquet-Crawler") dan biarkan kolom deskripsi kosong, lalu klik "Next."
  • Kita perlu menentukan "S3" sebagai sumber data, yang dilakukan dengan memilih "Add data source " sebagai tipe sumber crawler dan mengklik "Next."

AWS Glue crawler creation flow in the console

Alur pembuatan AWS Glue crawler di konsol - bagian 1. Gambar oleh penulis

  • Pilih "S3" sebagai data store dan tentukan path bucket S3 Anda, yang dapat dilakukan dengan memilih "Browse S3." Lalu klik "Next."
  • Pilih "Crawl all sub-folders"
  • Pilih "Add an S3 data source", lalu klik "Next."
  • Sebelum lanjut, centang tipe data "S3", lalu "Next."

AWS Glue crawler creation flow in the console

Alur pembuatan AWS Glue crawler di konsol - bagian 2. Gambar oleh penulis

Setelah kita menghubungkan bucket S3, kita perlu menghubungkan peran IAM yang sebelumnya dibuat untuk memungkinkan Glue mengakses bucket S3. Nama peran kita adalah "GlueETLRole."

  • Pilih nama peran dari kolom "Existing IAM role".
  • Klik "Next."

AWS Glue crawler creation flow in the console

Alur pembuatan AWS Glue crawler di konsol - bagian 3. Gambar oleh penulis

Langkah berikutnya adalah membuat database. Database "paris_olympics_db" yang akan kita buat berfungsi sebagai repositori pusat di AWS Glue Data Catalog untuk menyimpan dan mengatur metadata tentang file CSV kita. 

Katalog tersebut akan memungkinkan penemuan data yang efisien dan menyederhanakan proses ETL kita untuk menggabungkan dan mengonversi data atlet, event, dan medali ke dalam format Parquet.

Saat ini, kita belum memiliki database, dan langkah pembuatannya digambarkan di bawah ini:

  • Pilih "Add database," yang akan membuka jendela baru untuk membuat database kita. Beri nama "paris_olympics_db" sambil membiarkan yang lain tetap default, lalu klik "Create database."

AWS Glue crawler creation flow in the console

Alur pembuatan AWS Glue crawler di konsol - bagian 4. Gambar oleh penulis

Dari tab asli tempat kita menghubungkan database, segarkan bagian "Target database" dan pilih database yang baru dibuat. Lalu klik "Next."

AWS Glue crawler creation flow in the console

Alur pembuatan AWS Glue crawler di konsol - bagian 5. Gambar oleh penulis

Terakhir, tinjau semuanya dan klik "Create crawler."

AWS Glue crawler review and create view

Tampilan "Review and create" AWS Glue crawler. Gambar oleh penulis

Setelah tindakan sebelumnya untuk membuat crawler, kita akan melihat hasil berikut yang mengonfirmasi pembuatannya:

Glue crawler successful creation message

Pembuatan Glue crawler berhasil. Gambar oleh penulis

Sekarang kita telah membuat crawler, saatnya menjalankannya dan melihat bagaimana crawler mengatalogkan data kita.

AWS Glue run crawler button

Tombol "Run crawler" Glue. Gambar oleh penulis

  • Pilih crawler Anda dari daftar.
  • Klik "Run crawler."
  • Tunggu hingga crawler selesai. Ini mungkin memakan waktu beberapa menit.
  • Setelah selesai, buka "Databases" di bawah "Data catalog" di bilah sisi kiri.
  • Klik pada database yang dibuat.
  • Anda akan melihat tabel yang merepresentasikan struktur data CSV Anda.

View of tables created in the database from Glue crawler execution

Tampilan tabel yang dibuat di database dari eksekusi Glue crawler. Gambar oleh penulis

Dengan katalog data yang telah dibuat, kini kita dapat membuat Glue job untuk menggabungkan file CSV dan mengonversinya ke format Parquet. Bagian ini memandu Anda membuat Glue job dan menyediakan kode Python yang diperlukan.

  • Buka "Jobs" di bawah "ETL" pada konsol AWS Glue di bilah sisi kiri.
  • Pilih Script editor untuk membuka editor menulis kode Python, dan klik "Create script."

Creating and running an AWS Glue job

Membuat dan menjalankan Glue job - bagian 1. Gambar oleh penulis

Tindakan membuat skrip membuka tab skrip berikut tempat kita dapat memberi nama job, yaitu "CS" dalam kasus kita.

  • Di bagian kode, tempelkan kode berikut, lalu klik "Save."

Creating and running a Glue job

Membuat dan menjalankan Glue job - bagian 2. Gambar oleh penulis

Kode Python terkait diberikan di bawah ini:

import sys
from awsglue.transforms import *
from awsglue.utils import getResolvedOptions
from pyspark.context import SparkContext
from awsglue.context import GlueContext
from awsglue.job import Job
from pyspark.sql.functions import col, to_date

# Initialize the Spark and Glue contexts
sc = SparkContext()
glueContext = GlueContext(sc)
spark = glueContext.spark_session
job = Job(glueContext)

# Set Spark configurations for optimization
spark.conf.set("spark.sql.adaptive.enabled", "true")
spark.conf.set("spark.sql.adaptive.coalescePartitions.enabled", "true")

# Get job parameters
args = getResolvedOptions(sys.argv, ['JOB_NAME'])

# Set the input and output paths
input_path = "s3://glue-csv-etl-bucket/input/"
output_path = "s3://glue-csv-etl-bucket/output/"

# Function to read CSV and write Parquet
def csv_to_parquet(input_file, output_file):
    try:
        # Read CSV
        df = spark.read.option("header", "true") \
                       .option("inferSchema", "true") \
                       .option("mode", "PERMISSIVE") \
                       .option("columnNameOfCorruptRecord", "_corrupt_record") \
                       .csv(input_file)
        
        # Print schema for debugging
        print(f"Schema for {input_file}:")
        df.printSchema()
        
        # Convert date column if it exists (assuming it's in the format M/d/yyyy)
        if "date" in df.columns:
            df = df.withColumn("date", to_date(col("date"), "M/d/yyyy"))
        
        # Write Parquet
        df.write.mode("overwrite").parquet(output_file)
        
        print(f"Successfully converted {input_file} to Parquet at {output_file}")
        print(f"Number of rows processed: {df.count()}")
    except Exception as e:
        print(f"Error processing {input_file}: {str(e)}")

# List of files to process
files = ["athletes", "events", "medals"]

# Process each file
for file in files:
    input_file = f"{input_path}{file}.csv"
    output_file = f"{output_path}{file}_parquet"
    csv_to_parquet(input_file, output_file)

job.commit()
print("Job completed.")

Mari kita pahami secara singkat apa yang terjadi dalam kode:

  1. Impor: Mengimpor pustaka yang diperlukan dari AWS Glue, PySpark, dan pustaka standar Python.
  2. Inisialisasi: Menginisialisasi konteks Spark dan Glue serta menetapkan konfigurasi Spark untuk optimasi.
  3. Parameter job: Mengambil parameter job, khususnya nama job, dari argumen baris perintah.
  4. Path: Mendefinisikan path input dan output untuk file CSV dan Parquet di bucket S3.
  5. Definisi fungsi: Mendefinisikan fungsi csv_to_parquet() untuk membaca file CSV, mencetak skemanya, mengonversi kolom tanggal jika ada, dan menulis data sebagai file Parquet. Menangani pengecualian selama pemrosesan.
  6. Pemrosesan file: Memproses daftar file (athletes, events, medals) dengan memanggil fungsi csv_to_parquet() pada setiap file.
  7. Komit job: Melakukan commit job dan mencetak pesan penyelesaian.

Sebelum menjalankan job, kita perlu mengisi konfigurasi tambahan berikut di bagian "Job details":

  • Sediakan peran IAM yang sebelumnya kita buat untuk memungkinkan eksekusi job.
  • Atur "Type" Job menjadi "Spark," biarkan kolom lainnya default, lalu "Save".
  • Kemudian, jalankan job!

Creating and running a Glue job

Membuat dan menjalankan Glue job - bagian 3. Gambar oleh penulis

Setelah berhasil menjalankan job, kita dapat melihat lebih banyak detail tentang status eksekusi:

AWS Glue job run details view

Tampilan detail run AWS Glue job. Gambar oleh penulis

Akses dan pemantauan detail run penting untuk mempertahankan pipeline data yang efisien dan andal. Metrik ini memberikan wawasan berharga dan membantu kita dalam hal berikut:

  • Optimasi kinerja: Lacak waktu eksekusi untuk meningkatkan efisiensi job dan alokasi sumber daya.
  • Manajemen biaya: Pantau penggunaan sumber daya (DPU, worker) agar selaras dengan anggaran dan mengoptimalkan pengeluaran.
  • Perencanaan kapasitas: Gunakan metrik eksekusi untuk memproyeksikan kebutuhan sumber daya dan merencanakan skalabilitas.

Eksekusi job yang berhasil ini mengonversi setiap file CSV menjadi file Parquet yang sesuai dan menyimpannya di folder "output" seperti ditunjukkan di bawah:

  • Di sebelah kiri, terdapat folder dengan nama yang sama seperti file CSV asli.
  • Bagian kanan berisi file Parquet untuk setiap file CSV.

Contents of the output folder inside the S3 bucket

Isi folder output di dalam bucket S3. Gambar oleh penulis

Kesimpulan dan Langkah Selanjutnya

Tutorial ini membahas AWS Glue dan fitur-fiturnya. Tutorial ini memandu Anda menyiapkan lingkungan AWS dan mengeksplorasi antarmuka AWS Glue. Tutorial ini juga menunjukkan cara membangun dan menjalankan Glue crawler untuk mengatalogkan data, membuat Glue job untuk mentransformasikannya, dan berhasil mengonversi file CSV ke format Parquet.

Anda dapat mengembangkan apa yang telah dipelajari dengan menyiapkan trigger untuk mengotomatiskan alur kerja, menerapkan penanganan error dan logging, serta mengoptimalkan file Parquet untuk kinerja yang lebih baik lagi. Anda juga dapat mengeksplorasi kueri data Anda dengan AWS Athena atau Amazon Redshift Spectrum.

Selain itu, pantau penggunaan dan biaya AWS Anda serta bersihkan sumber daya saat tidak lagi diperlukan untuk menghindari biaya yang tidak perlu.

Kursus Introduction to AWS dan AWS Cloud Technology and Services dapat menjadi langkah lanjutan yang sangat baik untuk belajar lebih jauh! 

Yang pertama menawarkan dasar-dasar AWS dan komputasi awan yang solid, ideal bagi pemula atau mereka yang ingin menyegarkan konsep kunci. Yang kedua berfokus pada pembelajaran praktis, membantu Anda memperdalam pengetahuan praktis tentang layanan AWS.

FAQs

Apa praktik terbaik untuk mengoptimalkan kinerja file Parquet?

Untuk mengoptimalkan kinerja file Parquet, pertimbangkan untuk menyesuaikan ukuran file (128 MB hingga 1 GB adalah ideal), melakukan partisi data untuk kueri yang efisien, dan menetapkan codec kompresi yang tepat (seperti Snappy atau Gzip). Strategi ini mengurangi I/O dan meningkatkan kecepatan kueri saat bekerja dengan dataset besar di alat seperti AWS Athena.

Bagaimana saya dapat menerapkan penanganan error dan logging di AWS Glue job?

AWS Glue terintegrasi dengan Amazon CloudWatch, memungkinkan Anda melacak status job, error, dan log kustom. Anda dapat mengonfigurasi Glue job untuk menulis log ke CloudWatch, sehingga lebih mudah memantau kinerja, menelusuri masalah, dan memastikan eksekusi proses ETL berjalan lancar.

Apa saja use case umum untuk AWS Glue selain konversi CSV ke Parquet?

AWS Glue serbaguna dan dapat menangani tugas seperti deduplikasi data, pengayaan data, dan transformasi skema. Layanan ini umum digunakan untuk mengintegrasikan data dari berbagai sumber (misalnya, RDS, S3, Redshift) ke dalam format terpadu, menyiapkan data untuk model pembelajaran mesin, dan melakukan transformasi data lake.

Bagaimana perbandingan AWS Glue dengan alat ETL lain seperti Apache Airflow atau Databricks?

AWS Glue adalah layanan ETL terkelola penuh dan tanpa server, sedangkan Apache Airflow adalah alat orkestrasi workflow open-source yang memerlukan lebih banyak konfigurasi dan pengelolaan infrastruktur. Sementara itu, Databricks dibangun untuk analitik data skala besar dan pembelajaran mesin. AWS Glue unggul dalam kemudahan penggunaan dan integrasi dengan layanan AWS lainnya, tetapi untuk workflow yang sangat kompleks, alat seperti Airflow atau Databricks mungkin menawarkan fleksibilitas lebih.

Bagaimana saya dapat mengotomatiskan AWS Glue job dengan trigger?

Trigger di AWS Glue memungkinkan Anda mengotomatiskan workflow ETL dengan menjadwalkan job untuk berjalan pada waktu tertentu atau setelah peristiwa tertentu, seperti saat data baru tiba di bucket S3. Anda dapat mengatur trigger berbasis waktu atau peristiwa melalui konsol AWS Glue, sehingga pemrosesan data berjalan mulus tanpa intervensi manual.


Zoumana Keita 's photo
Author
Zoumana Keita
LinkedIn
Twitter

Seorang data scientist serbabisa yang senang berbagi pengetahuan dan memberi dampak bagi orang lain, Zoumana adalah pembuat konten di YouTube dan penulis teknologi teratas di Medium. Ia menikmati berbicara di depan umum, ngoding, dan mengajar. Zoumana meraih dua gelar magister: yang pertama di bidang ilmu komputer dengan fokus Machine Learning di Paris, Prancis, dan yang kedua di bidang Data Science dari Texas Tech University di AS. Kariernya dimulai sebagai Pengembang Perangkat Lunak di Groupe OPEN, Prancis, lalu bergabung dengan IBM sebagai Konsultan Machine Learning, di mana ia mengembangkan solusi AI end-to-end untuk perusahaan asuransi. Zoumana kemudian bergabung dengan Axionable, startup AI Berkelanjutan pertama yang berbasis di Paris dan Montreal. Di sana, ia berperan sebagai Data Scientist dan mengimplementasikan produk AI, terutama use case NLP, untuk klien dari Prancis, Montreal, Singapura, dan Swiss. Selain itu, 5% dari waktunya didedikasikan untuk Riset dan Pengembangan. Saat ini, ia bekerja sebagai Senior Data Scientist di IFC - World Bank Group.

Topik
AWS
Rekayasa Data

Pelajari lebih lanjut tentang AWS dan data engineering dengan kursus-kursus ini!

Kursus

Konsep Keamanan dan Manajemen Biaya AWS

3 jam
11.2K
Kuasai keamanan AWS, tata kelola, dan optimasi biaya untuk mempersiapkan diri menghadapi sertifikasi Cloud Practitioner.
Lihat DetailRight Arrow
Mulai Kursus
Lihat SelengkapnyaRight Arrow
Terkait

blogs

40 Pertanyaan Wawancara DBMS Teratas di 2026

Kuasai pertanyaan wawancara basis data, dari konsep SQL dasar hingga skenario desain sistem tingkat lanjut. Panduan mendalam ini mencakup semua yang Anda perlukan untuk sukses di wawancara DBMS dan meraih peran berikutnya.
Dario Radečić's photo

Dario Radečić

15 mnt

blogs

Spaghetti Plot dan Jalur Badai

Temukan alasan mengapa Anda sebaiknya (tidak) menggunakan spaghetti plot untuk menyampaikan ketidakpastian jalur prediksi badai serta dampaknya terhadap interpretasi.
Hugo Bowne-Anderson's photo

Hugo Bowne-Anderson

13 mnt

blogs

Tutorial Korelasi di R

Dapatkan pengenalan dasar-dasar korelasi di R: pelajari lebih lanjut tentang koefisien korelasi, matriks korelasi, plotting korelasi, dan sebagainya.
David Woods's photo

David Woods

13 mnt

blogs

12 Alternatif ChatGPT Terbaik yang Bisa Anda Coba pada 2026

Artikel ini menyajikan daftar alternatif ChatGPT yang akan meningkatkan produktivitas Anda.
Javier Canales Luna's photo

Javier Canales Luna

14 mnt

Lihat SelengkapnyaLihat Selengkapnya