Data Dan AI

Apache Airflow

Jalur lengkap Apache Airflow dari mental model DAG hingga operasi produksi: menulis, menjadwalkan, dan men-debug pipeline data yang dapat dipercaya.

Apache Airflow adalah platform orkestrasi yang menjadwalkan dan memantau pipeline data melalui DAG yang didefinisikan sebagai kode Python. Jalur ini membahas mental model DAG, TaskFlow API, sensor dan penjadwalan peka data, pola idempoten dan backfill, hingga operasi produksi seperti executor, monitoring, dan debugging. Seluruh contoh kode dijalankan terhadap Apache Airflow 3.x pada lingkungan pengujian, sehingga perilaku yang dijelaskan dapat direproduksi secara langsung pada instalasi lokal.

Mengenal Airflow 3 pelajaran

Modul pembuka: konsep orkestrasi, arsitektur Airflow, dan penyiapan lingkungan lokal beserta tur pertama UI.

  1. Konsep orkestrasiMengenal DAG, task, dan keterbatasan cron yang mendorong lahirnya orkestrasi pipeline khusus.
  2. Arsitektur AirflowMengurai komponen Airflow: scheduler, worker, antarmuka web, dan basis data metadata beserta perannya.
  3. Penyiapan lokalMemasang Airflow secara lokal dengan pip, menjalankan layanannya, dan menelusuri UI untuk pertama kali.
Dasar-dasar DAG 5 pelajaran

Modul dasar: DAG pertama, operator, dependensi antar task, dan penjadwalan dengan data interval.

  1. DAG pertamaMenulis DAG pertama dengan TaskFlow API, menjalankannya, dan membaca status task pada UI.
  2. Operator vs taskMembedakan operator dan task serta mengenali keluarga operator yang tersedia di core dan paket provider.
  3. Operator Bash dan PythonMenggunakan BashOperator dan PythonOperator, dua operator paling umum pada gaya klasik penulisan DAG.
  4. DependensiMengatur dependensi antar task dengan bitshift dan list, termasuk pola fan-out dan fan-in.
  5. PenjadwalanMengurai preset jadwal, cron, data interval, dan logical date hingga perilaku catchup dapat diprediksi.
Konteks task dan data 4 pelajaran

Modul konteks: variabel konteks task, XCom, templating Jinja, serta penyimpanan konfigurasi dan kredensial.

  1. Variabel konteksMembaca variabel konteks seperti ds, logical_date, dan run_id di dalam kode task.
  2. XComMengoper data kecil antar task dengan XCom, lengkap dengan batas ukuran dan praktik terbaiknya.
  3. TemplatingMerender template Jinja pada field operator untuk membangun path dan parameter dinamis.
  4. Variables dan connectionsMenyimpan konfigurasi di Variables dan kredensial di Connections dengan cara yang benar.
Penulisan task modern 4 pelajaran

Modul gaya modern: TaskFlow API, task group, dynamic task mapping, dan branching dengan trigger rule.

  1. TaskFlow APIMenulis task dengan decorator TaskFlow API dan menyimpulkan pengkabelan XCom secara otomatis.
  2. Task groupMenata DAG besar menjadi task group agar graf tetap terbaca secara visual dan logis.
  3. Dynamic task mappingMembentuk task saat runtime dari list dinamis dengan dynamic task mapping.
  4. BranchingMengarahkan alur dengan @task.branch, trigger rule, dan semantik skip pada task hilir.

Modul tentang pipeline yang menunggu data: sensor, deferrable operator, serta kebijakan timeout, retry, dan SLA per task.

  1. SensorMenunggu berkas, partisi, dan pekerjaan eksternal dengan sensor beserta mode poke dan reschedule.
  2. Deferrable operatorMenjalankan operator peka waktu tanpa menempati slot worker melalui mode deferrable.
  3. Timeout, retry, SLAMerancang kebijakan kegagalan per task: timeout, retry dengan backoff, dan SLA.
Pola rekayasa data 4 pelajaran

Modul pola data: task idempoten, pemrosesan inkremental, mekanika backfill dan catchup, serta hook basis data.

  1. Task idempotenMerancang task yang aman dijalankan ulang: operasi idempoten dan penulisan berkas terpartisi.
  2. Pemrosesan inkrementalMemproses data bertahap dengan watermark, kursor, dan batas partisi per data interval.
  3. Backfill dan catchupMemahami mekanika catchup dan menjalankan backfill untuk memuat ulang riwayat dengan aman.
  4. Hook basis dataMenyambung ke Postgres dan S3 secara bersih melalui hook beserta manajemen koneksinya.

Modul SQL: operator SQL, integrasi dbt, dan gerbang mutu data yang menghentikan data buruk di hilir.

  1. Operator SQLMenjalankan dan mentemplating SQL terhadap data warehouse dengan operator SQL.
  2. Integrasi dbtMengintegrasikan dbt melalui pola BashOperator atau Cosmos dan memahami batas perannya.
  3. Gerbang mutu dataMenempatkan pemeriksaan mutu data yang menghentikan alur sebelum data buruk menyebar ke hilir.
Airflow produksi 5 pelajaran

Modul produksi: pilihan executor, topologi deployment, monitoring, debugging, dan penjaminan mutu DAG.

  1. ExecutorMembandingkan executor Local, Celery, dan Kubernetes beserta pertimbangan arsitekturnya.
  2. Topologi deploymentMenata lingkungan dan strategi deployment DAG, termasuk pemisahan repo dan CI/CD.
  3. MonitoringMenguasai UI, health check, dan alerting atas kegagalan DAG serta task.
  4. DebuggingMembaca log task dan melakukan forensik kegagalan umum, dari kehabisan memori hingga deadlock.
  5. Mutu DAGMenjaga mutu DAG dengan linting, unit test, dan test tingkat DAG.
Pengerjaan proyek 4 pelajaran

Modul proyek terpandu: pemilihan masalah, arsitektur DAG, implementasi terintegrasi, dan penguatan operasional.

  1. Pemilihan proyekMemilih masalah platform data multi-pipeline yang sesuai sebagai proyek puncak jalur ini.
  2. Arsitektur DAGMemecah platform data menjadi beberapa DAG dengan batas tanggung jawab yang jelas.
  3. ImplementasiMengimplementasikan pipeline proyek dengan TaskFlow, sensor, dan gerbang mutu yang terintegrasi.
  4. Penguatan operasionalMemperkuat pipeline secara operasional: alert, prosedur backfill, dan dokumentasi.