Airflow adalah penjadwal sumber terbuka populer yang menyediakan berbagai alat baris perintah dan antarmuka web yang mudah digunakan. Airflow dapat mengoordinasikan dan menjadwalkan berbagai alur kerja sebagai grafik asiklik terarah (DAG). Anda dapat menggunakan Airflow untuk secara cerdas mengoordinasikan pekerjaan ekstraksi, transformasi, dan pemuatan (ETL) untuk pemrosesan data offline dan data real-time di AnalyticDB for MySQL. Ini mengotomatiskan pemrosesan data dan meningkatkan efisiensi pemrosesan.
Prasyarat
Sebuah kluster Enterprise Edition, Basic Edition, atau Data Lakehouse Edition dari AnalyticDB for MySQL telah dibuat.
Airflow telah diinstal. Untuk informasi lebih lanjut, lihat Pemasangan Airflow.
Alamat IP server yang menjalankan Airflow ditambahkan ke daftar putih alamat IP dari kluster AnalyticDB for MySQL. Untuk informasi lebih lanjut, lihat Konfigurasikan daftar putih alamat IP.
Prosedur
Periksa apakah paket apache-airflow-providers-mysql ditampilkan.
Akses antarmuka web Airflow. Di bilah navigasi atas, pilih .
Di halaman Providers, periksa apakah paket apache-airflow-providers-mysql ditampilkan.
(Kondisional diperlukan) Jika paket apache-airflow-providers-mysql tidak ditampilkan, jalankan perintah berikut untuk menginstal paket apache-airflow-providers-mysql secara manual:
pip install apache-airflow-providers-mysqlPentingJika pesan kesalahan
OSError: mysql_config not foundmuncul setelah Anda menjalankan perintah sebelumnya, jalankan perintahyum install mysql-develuntuk menginstal MySQL dan kemudian jalankan kembali perintah sebelumnya untuk menginstal paket apache-airflow-providers-mysql.
Buat koneksi ke kluster AnalyticDB for MySQL.
Di bilah navigasi atas, pilih .
Klik ikon
. Di halaman Add Connections, konfigurasikan parameter yang dijelaskan dalam tabel berikut.Parameter
Deskripsi
Connection id
Nama koneksi.
Connection Type
Tipe koneksi. Pilih MySQL.
Host
Titik akhir yang digunakan untuk terhubung ke kluster AnalyticDB for MySQL. Anda bisa mendapatkan titik akhir di halaman Cluster Information dari konsol AnalyticDB for MySQL.
Login
Nama akun basis data dari kluster AnalyticDB for MySQL.
Password
Kata sandi akun basis data dari kluster AnalyticDB for MySQL.
Port
Nomor port dari kluster AnalyticDB for MySQL. Atur nilainya menjadi 3306.
CatatanParameter lainnya bersifat opsional. Konfigurasikan parameter berdasarkan kebutuhan bisnis Anda.
Pergi ke direktori instalasi Airflow dan periksa parameter dags_folder di file
airflow.cfg.Pergi ke direktori instalasi Airflow.
cd /root/airflowPeriksa parameter dags_folder di file
airflow.cfg.cat file.cfg(Kondisional diperlukan) Jika tidak ada folder di jalur yang ditentukan oleh parameter dags_folder, jalankan perintah
mkdiruntuk membuat folder.CatatanSebagai contoh, jika parameter dags_folder menentukan jalur
/root/airflow/dagsdan jalur/root/airflowtidak berisi folder bernamadags, Anda dapat membuat folder dags di jalur /root/airflow.
Tulis file DAG. Dalam contoh ini, sebuah file DAG bernama
mysql_dags.pydigunakan.from airflow import DAG from airflow.providers.mysql.operators.mysql import MySqlOperator from airflow.utils.dates import days_ago default_args = { 'owner': 'airflow', } dag = DAG( 'example_mysql', default_args=default_args, start_date=days_ago(2), tags=['example'], ) mysql_test = MySqlOperator( task_id='mysql_test', mysql_conn_id='test', sql='SHOW DATABASES;', dag=dag, ) mysql_test_task = MySqlOperator( task_id='mysql_test_task', mysql_conn_id='test', sql='SELECT * FROM test;', dag=dag, ) mysql_test >> mysql_test_task if __name__ == "__main__": dag.cli()Parameter:
mysql_conn_id: nama koneksi yang dibuat di Langkah 2.sql: pernyataan SQL spesifik bisnis.
Untuk informasi tentang parameter lainnya, lihat DAGs.
Di antarmuka web Airflow, klik tab DAGs dan klik DAG yang ingin Anda kelola. Di pojok kanan atas halaman yang muncul, klik ikon
. Setelah eksekusi berhasil, Anda dapat mengklik lingkaran hijau di sebelah kanan nama DAG untuk melihat detail eksekusi DAG.

PentingWaktu eksekusi DAG yang ditampilkan adalah 8 jam lebih awal daripada waktu yang sesuai di zona waktu UTC+8 karena penjadwal Airflow menggunakan zona waktu UTC.