Apa Itu ETL?
ETL (Extract, Transform, Load) adalah proses mengambil data dari berbagai sumber, mentransformasinya ke format yang dibutuhkan, dan memuatnya ke sistem tujuan seperti data warehouse.
Mengapa Apache Airflow?
Airflow memungkinkan mendefinisikan pipeline sebagai DAG (Directed Acyclic Graph) dalam Python, menjadwalkan eksekusi, memantau progress, dan me-retry failure secara otomatis.
Setup Airflow dengan Docker
Download docker-compose.yaml resmi Airflow. Jalankan docker compose up airflow-init lalu docker compose up. Akses UI di http://localhost:8080.
Membuat DAG Pertama
Buat file Python di folder dags/. Definisikan DAG dengan schedule interval, tambahkan tasks (PythonOperator, BashOperator, SQLOperator), dan definisikan dependencies antar task.
Transformasi Data dengan Pandas
Dalam PythonOperator, gunakan Pandas untuk cleaning (handle missing values, type conversion), transformation (agregasi, join), dan validasi data sebelum loading.
Loading ke PostgreSQL/BigQuery
Gunakan built-in Airflow hooks (PostgresHook, BigQueryHook) atau SQLAlchemy untuk loading data. Upsert strategy (INSERT OR UPDATE) lebih aman dari INSERT murni.