Menggunakan Apache Airflow untuk Proses Data yang Lebih Terstruktur
Komponen-komponen Airflow berikut:
- Scheduler, yang mengatur penjadwalan alur kerja (workflow) yang dijadwalkan dan mengirimkan task ke eksekutor untuk dijalankan.
- Eksekutor, yang menangani menjalankan task – task . Dalam instalasi Airflow default, semua task dijalankan di dalam scheduler, tetapi eksekutor yang cocok untuk production sebenarnya mendelegasikan eksekusi task ke worker.
- Webserver, yang menyediakan user interface yang berguna untuk memeriksa, mentrigger, dan mendebug DAG dan task.
- Folder berisi file DAG, yang dibaca oleh scheduler dan eksekutor (serta worker yang dimiliki oleh eksekutor). Metadata Database, digunakan oleh scheduler, eksekutor, dan webserver untuk menyimpan status.
Workloads
Sebuah DAG menjalankan serangkaian task, dan ada tiga jenis task pada umumnya yaitu:
- Operator, task yang telah ditentukan sebelumnya dapat di rangkai dengan cepat untuk membangun sebagian besar bagian DAG.
- Sensor, merupakan subclass dari Operator yang berfungsi untuk menunggu eksternal.
- @task yang didekorasi dengan TaskFlow, yaitu fungsi Python yang dikemas sebagai task. Secara internal, ketiganya merupakan subclass dari BaseOperator di Airflow, dan konsep Task dan Operator. Pada dasarnya, Operator dan Sensor adalah template, dan saat memanggilnya ke dalam file DAG, akan membuat sebuah Task.
Control Flow
DAGs dirancang untuk dijalankan kapan saja, dan dapat berjalan secara paralel. DAGs diberi parameter, termasuk interval waktu saat dijalankan (data interval), namun juga memiliki parameter opsional lainnya. Task memiliki ketergantungan yang dideklarasikan satu sama lain. Dalam sebuah DAG umumnya menggunakan operator >> dan <<:
Atau , menggunakan metode set_upstream dan set_downstream:
Usert Interface
Airflow dilengkapi dengan user interface yang memungkinkan pengguna melihat status DAG dan seluruh task, mentrigger DAG, melihat log, serta melakukan resolve problem dan debugging terkait DAG.
Dalam user interface Airflow, pengguna dapat melihat daftar DAG yang tersedia dan statusnya, termasuk informasi tentang DAG mana yang sedang berjalan, yang sedang menunggu, dan yang sudah selesai. Dapat juga melihat status dan log eksekusi dari setiap task dalam DAG, sehingga pengguna dapat melacak aktivitas dan mengidentifikasi masalah yang mungkin terjadi.
Fitur Utama dan Manfaat:
- Skalabilitas: Apache Airflow dirancang untuk bekerja pada skala yang besar dan dapat mengelola ratusan atau bahkan ribuan tugas dalam aliran kerja yang kompleks.
- Pengaturan Jadwal yang Fleksibel: Pengguna dapat dengan mudah mengatur jadwal eksekusi task berdasarkan waktu, interval waktu, atau aturan kustom.
- Monitoring dan Logging: Apache Airflow menyediakan antarmuka pengguna untuk memantau dan melacak status eksekusi task – task, serta menyediakan log untuk pemecahan masalah.
- Ke kayaan Integrasi: Apache Airflow dapat diintegrasikan dengan berbagai teknologi dan layanan populer seperti Hadoop, Spark, Kubernetes, dan banyak lagi.
- Ekstensibilitas: Platform ini memungkinkan pengguna untuk menulis kustom operator dan plug-in untuk memperluas fungsionalitas sesuai dengan kebutuhan spesifik mereka.