Apa Itu ETL?
ETL (Extract, Transform, Load) adalah proses mengolah data dari berbagai sumber sebelum digunakan oleh sistem tujuan seperti data warehouse. Data diekstrak, dibersihkan dan diubah sesuai kebutuhan, kemudian dimuat ke database atau platform analitik.
Mengapa Menggunakan Apache Airflow?
Apache Airflow membantu mengatur workflow data dalam bentuk DAG (Directed Acyclic Graph). Pipeline dapat dibuat menggunakan Python, dijadwalkan secara otomatis, dipantau melalui dashboard, serta dikonfigurasi untuk melakukan retry ketika task mengalami kegagalan.
Setup Airflow dengan Docker
Untuk development, Airflow dapat dijalankan menggunakan Docker Compose. Gunakan file docker-compose.yaml dari dokumentasi resmi Airflow, kemudian jalankan proses inisialisasi:
docker compose up airflow-init
docker compose up
Setelah service berjalan, Airflow dapat diakses melalui http://localhost:8080.
Membuat DAG Pertama
Buat file Python di dalam folder dags/, kemudian definisikan workflow beserta jadwal eksekusinya.
Task dapat menggunakan berbagai operator seperti:
-
PythonOperator untuk menjalankan fungsi Python
-
BashOperator untuk menjalankan command
-
SQL Operator untuk menjalankan query database
Atur dependency antar-task agar proses berjalan sesuai urutan yang dibutuhkan.
Transformasi Data dengan Pandas
Untuk proses transformasi, Pandas dapat digunakan untuk membersihkan dan mempersiapkan data sebelum masuk ke sistem tujuan.
Beberapa proses yang umum dilakukan antara lain:
-
Menangani missing values
-
Mengubah tipe data
-
Melakukan filtering dan agregasi
-
Menggabungkan beberapa dataset
-
Melakukan validasi data
Pisahkan proses cleaning dan transformation ke task yang jelas agar pipeline lebih mudah dipantau dan diperbaiki.
Loading ke PostgreSQL atau BigQuery
Setelah data siap, gunakan Airflow Hooks seperti PostgresHook atau BigQueryHook untuk mengirim data ke database atau data warehouse.
Gunakan strategi upsert ketika diperlukan agar data yang sudah ada dapat diperbarui tanpa membuat duplikasi. Untuk pipeline production, proses loading juga sebaiknya dibuat idempotent sehingga aman ketika task dijalankan ulang.
Monitoring dan Error Handling
Airflow menyediakan monitoring melalui UI untuk melihat status setiap DAG dan task. Manfaatkan retry, timeout, logging, dan alerting untuk menangani kegagalan pipeline.
Dengan konfigurasi tersebut, tim dapat mengetahui ketika proses ETL gagal dan melakukan troubleshooting berdasarkan log yang tersedia.
Kesimpulan
Apache Airflow membantu membuat pipeline ETL yang terjadwal, terstruktur, dan mudah dipantau. Dengan kombinasi DAG, transformasi data, database hooks, serta mekanisme retry dan monitoring, proses pengolahan data dapat menjadi lebih konsisten dan scalable.