Kursus
Rasanya setiap kali Anda menggulir LinkedIn, selalu ada alat baru yang muncul di lanskap data yang sudah padat. Saat tim data terus menambah komponen ke “data stack” mereka, mereka membutuhkan cara untuk mengelola dan menghubungkan berbagai alat yang terpisah ini.
Orkestrasi data adalah proses mengembangkan, mengeksekusi, dan memantau proses yang menggabungkan, mentransformasi, dan mengatur data di seluruh ekosistem data. Untuk melakukan ini, data engineer menggunakan alat orkestrasi data. Di sini, kita akan membahas dua alat orkestrasi paling populer: Apache Airflow dan Dagster. Mari mulai!
Apa itu Airflow?
Airflow adalah standar industri untuk membangun, menjalankan, dan memantau data pipeline sebagai kode. Alat ini awalnya dikembangkan pada 2014 oleh tim Data Engineering di Airbnb. Sejak itu, proyek ini diadopsi oleh Apache Software Foundation dan menjadi penawaran paling populer di bawah lisensi mereka.
Setiap bulan, Airflow diunduh lebih dari tiga puluh juta kali dan memiliki komunitas kontributor serta pengguna yang dinamis. Di Airflow, data pipeline disebut sebagai DAG, atau directed acyclic graphs.
Anda dapat mempelajari lebih lanjut tentang Airflow dalam tutorial kami tentang memulai dengan Apache Airflow.
Apa itu Dagster?
Seperti Airflow, Dagster adalah alat orkestrasi yang memungkinkan pengguna menulis data pipeline menggunakan pendekatan as-code. Ini bersifat open-source dan awalnya diluncurkan pada 2019. Dagster menggunakan Python untuk mendefinisikan “asset” yang merupakan blok bangunan utama sebuah data pipeline.
Dagster muncul sebagai pesaing Airflow di ruang yang relatif tidak terlalu padat. Proyek ini dikelola oleh komunitas open-source dan didukung secara komersial oleh Dagster Labs.
Menghubungkan Modern Data Stack
Lalu, di mana posisi Airflow dan Dagster dalam modern data stack? Kita mulai dengan diagram arsitektur di bawah ini.

Diagram arsitektur yang memuat sampel alat umum yang digunakan dalam modern data stack.
Diagram arsitektur ini menunjukkan apa yang banyak dianggap sebagai data stack standar. Terdiri dari sistem sumber, alat data warehousing dan transformasi, serta “tujuan” hilir seperti Tableau dan Looker.
Di sini, Airflow dan Dagster adalah panah yang menghubungkan ekosistem data ini. Tanpa alat orkestrasi, sulit untuk memindahkan data dari satu alat ke alat lainnya.
Alat orkestrasi, seperti Airflow dan Dagster, juga menyediakan lapisan observabilitas yang memudahkan pemahaman di mana, bagaimana, dan kapan data dipipelinkan dari sumber ke tujuan, serta bagaimana data dimanipulasi sepanjang proses.
Dagster vs Airflow: Fitur dan Fungsionalitas Utama
Seperti yang mungkin sudah Anda duga, Airflow dan Dagster memiliki sejumlah kesamaan dalam penggunaan yang dimaksudkan serta peran yang mereka isi dalam modern data stack. Ini termasuk:
- Kemampuan menulis pipeline-as-code
- Integrasi bawaan dengan modern data stack
- Pengalaman pengembangan lokal
Namun, masing-masing memiliki seperangkat fitur dan fungsionalitas unik yang membuatnya berdiri sendiri.
Airflow
Mari mulai dengan melihat beberapa fitur utama Airflow:
Memahami Airflow dan DAG
Di Airflow, data pipeline disebut DAG—singkatan dari directed-acyclic graphs. Anggap DAG sebagai kumpulan tugas yang dihubungkan dalam urutan tertentu. Blok bangunan paling dasar dari sebuah DAG adalah task. Misalnya, dalam pipeline yang melakukan ekstraksi, transformasi, dan pemuatan (ETL), langkah "transform" akan menjadi task tersendiri.
Task ini umumnya didefinisikan menggunakan operator Airflow. Namun, seperti yang akan segera Anda lihat, ada juga cara lain untuk mendefinisikan task menggunakan TaskFlow API.
Menjadwalkan DAG di Airflow
Menjadwalkan pipeline di Airflow sangat fleksibel. Perlu menjalankan pipeline setiap hari? Tidak masalah. Ingin dijalankan pada Jumat pertama setiap bulan? Itu juga mudah. Lalu, bagaimana jika manajer Anda meminta memicu DAG ketika suatu dataset diperbarui? Airflow bisa menanganinya juga.
Airflow menawarkan banyak opsi kustomisasi saat menjadwalkan DAG Anda. Dengan fitur seperti CRON, Timetables, dan penjadwalan yang peka data, Anda dapat mengatur DAG berjalan kapan pun Anda butuhkan.
TaskFlow API
Untuk membuat penulisan DAG lebih mudah diakses oleh profesional data, komunitas Airflow memperkenalkan TaskFlow API. Alih-alih pendekatan tradisional menggunakan operator, TaskFlow API memungkinkan Anda mendefinisikan task dengan cukup mendekorasi fungsi. Ini membuat berbagi data antartask dan menetapkan dependensi task menjadi jauh lebih mudah dan intuitif.
Selain itu, alat seperti Astro SDK dibangun di atas TaskFlow API, sehingga semakin memperluas kemampuannya.
Dagster
Mari kita lihat bagaimana Dagster dibandingkan:
Pendekatan Berbasis Aset Dagster
Dagster mengambil pendekatan berbasis aset yang unik untuk membangun data pipeline. Di Dagster, setiap objek data yang disimpan di penyimpanan persisten—seperti file atau tabel—disebut aset.
Aset-aset ini didefinisikan dalam kode menggunakan fungsi Python. Saat fungsi-fungsi ini dieksekusi, Dagster secara otomatis membuat dependensi dan mematerialisasi aset tersebut. Metode yang berpusat pada aset ini membuatnya mudah melacak bagaimana data diproduksi dan dikonsumsi dalam sebuah pipeline.
Memahami Ops di Dagster
Konsep penting lainnya di Dagster adalah “ops,” yang agak mirip dengan task di Airflow. Ops merepresentasikan langkah-langkah individual dalam sebuah data pipeline, dan setiap op memiliki input dan output yang mungkin terdiri dari aset. Lebih dari itu, input dan output ini dapat diberi tipe untuk secara jelas mendefinisikan data yang diproses.
Lalu, apa hubungan antara ops dan aset? Ops pada dasarnya adalah langkah-langkah (seperti extract, transform, load) yang beroperasi pada aset, yaitu objek datanya sendiri.
Sistem Pengetikan Dagster
Untuk menghadirkan kejelasan pada data yang mengalir melalui pipeline, Dagster menggunakan sistem pengetikan yang kuat untuk memvalidasi input dan output setiap op. Sementara Airflow mendukung definisi tipe Python, Dagster menjadikan pengetikan sebagai bagian inti dari pengalaman penulisan pipeline-nya.
Tidak hanya op yang dapat diberi tipe, tetapi definisi aset juga dapat diberi tipe, memastikan bahwa data yang dihasilkan suatu aset benar dan tervalidasi.
Airflow vs Dagster: Pengalaman Pengembang
Saat memilih alat orkestrasi, hal-hal seperti kepadatan fitur, total biaya kepemilikan, dan skalabilitas mungkin menjadi bagian dari kriteria penerimaan. Meski begitu, penting untuk mengingat pengalaman pengembang. Pengalaman pengembang yang intuitif, efisien, dan andal membantu memungkinkan iterasi cepat dan secara proaktif menghadapi tantangan seperti menjalankan unit test dan mengelola dependensi.
Airflow
Komunitas Airflow
Punya pertanyaan atau bug Airflow yang sulit dipecahkan? Kemungkinan besar, itu sudah pernah diselesaikan. Airflow memiliki salah satu komunitas Slack terbesar di antara proyek Apache dan membanggakan komunitas dengan lebih dari tiga ribu kontributor. Ribuan blog, tutorial, dan kursus telah dikembangkan di sekitar proyek Airflow. Selain mendukung pengguna Airflow, komunitas juga bertanggung jawab membangun dan memelihara proyek Airflow.
Astronomer, pengembang komersial di balik proyek Apache Airflow, membawa pengalaman pengembang Airflow ke tingkat berikutnya. astro CLI menyediakan lapisan abstraksi dan fungsionalitas tambahan untuk utilitas Airflow. Astronomer juga menyediakan registry mereka dan chatbot “Ask Astro” untuk menangani semua pertanyaan Airflow yang mungkin dimiliki pengembang.
Mengembangkan dan Menguji Secara Lokal
Salah satu fitur yang membuat Airflow sangat menarik untuk orkestrasi adalah kemampuan untuk mengembangkan dan menguji secara lokal. Menggunakan airflow CLI, seorang pengembang dapat menyalakan instance Airflow hanya dalam hitungan detik. Lalu, perubahan dapat dilakukan pada kode secara lokal sebelum diuji melalui UI atau CLI. Ini memungkinkan iterasi cepat dan siklus rilis yang lebih singkat, terutama untuk tim yang banyak menggunakan Airflow.
Alat Baru untuk Mengembangkan DAG
Untuk beberapa waktu, satu-satunya cara mendefinisikan DAG Airflow adalah lewat operator tradisional. TaskFlow API dengan cepat mengubah itu, dan menyediakan alternatif untuk pembuatan DAG. Kini, alat seperti dag-factory dan gusty membuat memulai penulisan dan eksekusi DAG menjadi lebih mudah dari sebelumnya.
Dagster
Banyak pengalaman pengembangan lokal Dagster mirip dengan Airflow, termasuk kemampuan mengembangkan, menguji, dan mengeksekusi pipeline secara lokal. Keduanya mendukung praktik SDLC tingkat perusahaan yang umum, seperti CI/CD.
Namun, sulit membandingkan besarnya komunitas Airflow dengan komunitas Dagster. Jika Airflow memiliki ribuan sumber daya yang dikembangkan komunitas, Dagster masih berusaha mengejar. Saat mengembangkan dan memecahkan masalah data pipeline dengan Dagster, praktisi mungkin kesulitan menemukan sumber daya yang mereka butuhkan untuk mengimplementasikan solusi dengan mudah.
Mudah Diuji
Pendekatan berbasis aset Dagster untuk mengembangkan pipeline membuatnya cukup mudah diuji. Faktanya, pengujian adalah salah satu pilar utama proposisi nilai Dagster. Bersama dengan sistem pengetikan yang disebutkan di atas, Dagster memprioritaskan agar data pipeline diuji dengan cara yang mirip dengan pengujian produk perangkat lunak.
Dokumentasi Dagster menekankan tantangan logika bisnis yang saling terkait dalam definisi pipeline apa pun dan teknik umum untuk menanganinya saat pengujian. Ini adalah area di mana banyak orang merasa pengalaman pengembang Airflow masih kurang.
Dagster vs Airflow: Kekuatan dan Kelemahan
Mulai mendapatkan gambaran tentang penggunaan Airflow dan Dagster? Sekarang, kita akan menguraikan di mana masing-masing alat unggul dibanding yang lain, serta beberapa kekurangan yang diketahui.
Airflow
Ekstensibilitas tanpa batas
Klise, tetapi dengan Airflow, langit adalah batasnya. Ekstensibilitas proyek ini tiada tanding. Pengembang Airflow dapat membangun operator, sensor, executor, bahkan timetable mereka sendiri. Untuk tim data dengan use case unik, ini sangat menarik. Tidak ingin membangun integrasi kustom sendiri?
Jangan khawatir, kemungkinan besar Anda tidak perlu. Ada lebih dari 1.600 integrasi yang siap digunakan setelah pip install sederhana. Menjadi standar industri untuk orkestrasi data berarti Airflow diuntungkan oleh inovasi berkelanjutan, menciptakan semacam “lingkaran umpan balik positif”.
Menjalankan Airflow di produksi
Sebagai produk yang benar-benar open-source, ada banyak cara menjalankan Airflow di produksi. Dari klaster Kubernetes on-prem hingga layanan yang sepenuhnya terkelola, ribuan perusahaan menjalankan Airflow di lingkungan produksi.
Peraturan pemerintah dan pelaporan, komitmen terhadap privasi dan keamanan data, serta rimba jaringan memaksa tim data mengonfigurasi tooling dengan cara yang kadang tak terbayangkan. Untuk tim seperti ini, mereka memerlukan semua fleksibilitas dan kemampuan kustomisasi saat menjalankan alat seperti Airflow di produksi. Tim lain mungkin menginginkan penyedia layanan terkelola untuk melakukan semua pekerjaan berat bagi mereka. Dengan Airflow, kedua ekstrem ini (serta setiap opsi di antaranya) memungkinkan.
Kurva Pembelajaran
Airflow dapat diperluas dan memiliki ribuan plugin. DAG dapat didefinisikan menggunakan sejumlah teknik, pipeline dipicu menggunakan penjadwalan yang peka data, dan backend secrets kustom dapat dikonfigurasi.
Semua ini berarti memanfaatkan Airflow sepenuhnya menghasilkan sedikit kurva pembelajaran.
Bagi Data Engineer yang ingin cepat menulis dan mengeksekusi data pipeline, Airflow memiliki hambatan masuk. Sering kali, ini akan mendorong Data Engineer dan sejenisnya ke penawaran yang lebih lugas, seperti Dagster.
Dagster
Penulisan Pipeline yang Intuitif
Membangun data pipeline dengan Dagster terasa intuitif. Pendekatan berbasis aset menarik bagi praktisi data yang ingin memasukkan pipeline ke produksi dengan beban tambahan seminimal mungkin.
Dagster menghadirkan kurva pembelajaran yang jauh lebih rendah dibanding bekerja dengan operator Airflow tradisional, terutama bagi pengguna yang terbiasa menulis fungsi Python untuk membangun data pipeline mereka. Ini adalah salah satu kekuatan terbesar Dagster dan, sering kali, menjadi alasan utama mengapa tim data memilih mempercayakan Dagster untuk menjalankan data pipeline mereka.
Komunitas yang Semakin Kuat
Bersaing dengan komunitas Airflow itu sulit, bahkan bagi Dagster. Dari berkontribusi ke proyek open source hingga membangun konektor untuk tambahan terbaru dalam data stack, menjawab pertanyaan dan mengkurasi dokumentasi, hampir tidak ada yang tidak ditawarkan komunitas Airflow. Meski begitu, komunitas Dagster tumbuh, dan cepat. Di tingkat perusahaan, komunitas yang sedang tumbuh ini merupakan risiko sekaligus peluang untuk menyuntikkan pengaruh ke proyek Dagster.
Airflow vs. Dagster: Mana yang Dipilih?
Jadi, setelah kita membandingkan masing-masing alat ini, mana yang tepat untuk Anda? Pada tabel di bawah, kami menyusun perbandingan masing-masing:
|
Fitur/Aspek |
Airflow |
Dagster |
|
Konsep Pipeline |
Menggunakan Directed Acyclic Graphs (DAG) untuk merepresentasikan pipeline, dengan task sebagai unit dasar. |
Menggunakan pendekatan berbasis aset di mana setiap objek data yang disimpan disebut aset, dengan operasi yang disebut “ops”. |
|
Representasi Tugas |
Task didefinisikan menggunakan operator, atau dengan TaskFlow API untuk definisi task berbasis fungsi. |
Ops digunakan untuk merepresentasikan langkah-langkah dalam pipeline, dengan input dan output bertipe untuk kejelasan yang lebih baik. |
|
Penjadwalan |
Penjadwalan sangat fleksibel dengan CRON, timetable, dan pemicu yang peka data. |
Penjadwalan kurang ditekankan tetapi terkait dengan aset dan dependensinya. |
|
Pengembangan Lokal |
Mendukung pengembangan lokal melalui Airflow CLI untuk iterasi dan pengujian cepat. |
Juga mendukung pengembangan dan pengujian lokal, tetapi dengan sumber daya komunitas yang lebih sedikit. |
|
Sistem Pengetikan |
Mendukung petunjuk tipe Python, tetapi bukan fitur inti. |
Sistem pengetikan yang kuat untuk memvalidasi input dan output di setiap langkah, menjadi pusat desain pipeline. |
|
Ekstensibilitas |
Sangat dapat diperluas dengan 1.600+ integrasi, operator kustom, sensor, dan lainnya. |
Ekstensibilitas lebih terbatas namun intuitif bagi pengguna fungsi Python. |
|
Dukungan Komunitas |
Komunitas besar dan matang dengan ribuan kontributor dan sumber daya luas (mis., blog, tutorial). |
Komunitas lebih kecil namun tumbuh pesat, memberikan peluang untuk berpengaruh dan berkontribusi. |
|
Kemudahan Belajar |
Kurva pembelajaran lebih curam karena ekstensibilitas dan fitur kustom. |
Kurva pembelajaran lebih rendah karena penulisan pipeline yang intuitif dan pendekatan berbasis aset. |
|
Pengujian |
Pengujian dimungkinkan tetapi bukan fokus utama. |
Penekanan kuat pada pengujian, dengan pendekatan berbasis aset yang membuat pipeline lebih mudah diuji. |
|
Penerapan Produksi |
Dapat dijalankan di berbagai lingkungan, dari Kubernetes on-prem hingga layanan terkelola penuh. |
Opsi penerapan produksi kurang matang namun tetap fleksibel untuk use case enterprise. |
|
Integrasi Kustom |
Ekstensibilitas tanpa batas dengan ribuan integrasi dan kemampuan membuat komponen kustom. |
Lebih terbatas dibanding Airflow, tetapi bertumbuh seiring meluasnya komunitas. |
|
Pengalaman Pengembang |
TaskFlow API dan alat seperti dag-factory meningkatkan pengalaman pengembang. |
Lebih intuitif dengan penekanan pada kesederhanaan dan penerapan cepat, namun alat yang tersedia lebih sedikit. |
Grafik di bawah ini merangkum kesamaan dan perbedaan utama dalam fitur dan fungsionalitas Airflow dan Dagster.

Kesamaan antara Airflow dan Dagster.
Sekarang, pertanyaan jutaan dolar: alat orkestrasi mana yang harus Anda pilih untuk pekerjaan ini?
Mengapa memilih Airflow?
Singkatnya, Airflow adalah standar de facto untuk menulis dan menjalankan data pipeline di produksi. Ya, ada komponen pola desain Dagster yang mungkin secara teknis lebih unggul dari Airflow. Namun, ekstensibilitas Airflow dan komunitas yang tumbuh mendukung proyek ini menjadikannya pilihan mudah bagi tim data yang sudah mapan. Airflow menawarkan dua dunia sekaligus: pustaka tooling yang sangat besar plus kemampuan untuk membuat operator, sensor, atau hook apa pun yang dapat Anda bayangkan. Airflow telah menemukan ceruknya, dan tidak akan ke mana-mana dalam waktu dekat.
Mengapa memilih Dagster?
Untuk tim data kecil yang terbiasa menulis data pipeline buatan sendiri, Dagster mungkin adalah alat yang tepat untuk pekerjaan tersebut. Meskipun Dagster mungkin tidak memiliki semua “lonceng dan peluit” yang didukung Airflow, alat ini menawarkan jalur cepat dari ide ke produksi. Dagster memberikan dukungan kelas atas untuk hal-hal yang penting (pikirkan pengembangan lokal, unit-testing yang andal, dan kerangka kerja modular), bersama dengan banyak integrasi. Seiring proyek matang dan komunitas bertumbuh, Dagster terus menutup kesenjangan fitur antara dirinya dan Airflow sambil mempertahankan hambatan masuk yang rendah.
Kesimpulan
Membandingkan alat selalu menantang. Sulit mengatakan satu alat “lebih baik” daripada yang lain, atau memaksa alat tertentu ke basis penggunaan tertentu. Sejujurnya, kerangka dasar di balik Airflow dan Dagster sangat mirip. Praktisi data terbaik tidak mengejar fitur saat memilih alat. Sebaliknya, mereka berfokus pada bagaimana alat yang mereka integrasikan ke ekosistem berdampak pada prosesnya.
Apakah Airflow memungkinkan tim saya beriterasi lebih cepat? Akankah alat seperti Dagster membantu engineer menguji kode dengan lebih baik sebelum dikirim ke produksi? Apakah alat orkestrasi ini sesuai dengan visi yang lebih besar untuk platform data? Pertanyaan-pertanyaan seperti ini membantu mendorong nilai bagi tim data dan para pemangku kepentingan yang mereka layani.
Jika Anda siap memulai dengan Apache Airflow, lihat kursus DataCamp Introduction to Airflow in Python. Di sini, Anda akan mempelajari dasar-dasar penggunaan task, sensor, dan semua yang Anda butuhkan untuk membangun DAG Airflow pertama Anda.
Jake adalah seorang data engineer yang mengkhususkan diri dalam membangun infrastruktur data yang tangguh dan dapat diskalakan menggunakan Airflow, Databricks, dan AWS. Jake juga merupakan instruktur untuk kursus DataCamp Introduction to Data Pipelines dan Introduction to NoSQL.

