Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3
Halaman ini menjelaskan data yang disimpan Cloud Composer untuk lingkungan Anda di Cloud Storage.
Saat Anda membuat lingkungan, Cloud Composer akan membuat
bucket Cloud Storage dan mengaitkan bucket tersebut
dengan lingkungan Anda. Nama bucket didasarkan pada region, nama, dan ID acak lingkungan seperti us-central1-b1-6efabcde-bucket
.
Cloud Composer menyinkronkan folder tertentu di bucket lingkungan Anda ke komponen Airflow yang berjalan di lingkungan Anda. Misalnya, saat Anda memperbarui file dengan kode DAG Airflow di bucket lingkungan, komponen Airflow juga akan menerima versi yang diperbarui. Cloud Composer menggunakan Cloud Storage FUSE untuk sinkronisasi.
Folder di bucket Cloud Storage
Folder | Jalur penyimpanan | Direktori yang dipetakan | Deskripsi |
---|---|---|---|
DAG | gs://bucket-name/dags |
/home/airflow/gcs/dags |
Menyimpan DAG untuk lingkungan Anda. |
Plugin | gs://bucket-name/plugins |
/home/airflow/gcs/plugins |
Menyimpan plugin kustom Anda, seperti operator, hook, sensor, atau antarmuka Airflow kustom buatan sendiri. |
Data | gs://bucket-name/data |
/home/airflow/gcs/data |
Menyimpan data yang dihasilkan dan digunakan tugas. |
Log | gs://bucket-name/logs |
/home/airflow/gcs/logs |
Menyimpan log Airflow untuk tugas. Log juga tersedia di antarmuka web Airflow dan di tab Logs di konsol Google Cloud. |
Cloud Composer menyinkronkan folder dags/
dan plugins/
secara satu arah. Sinkronisasi searah berarti perubahan lokal dalam folder ini di komponen Airflow akan ditimpa. Folder data/
dan logs/
disinkronkan secara dua arah.
Sinkronisasi data pada akhirnya akan konsisten. Untuk mengirim pesan dari satu operator ke operator lain, gunakan XComs.
Pertimbangan kapasitas
Data dari folder dags/
, plugins/
, dan data/
disinkronkan ke penjadwal dan pekerja
Airflow.
Di Airflow 2, konten folder plugins/
juga disinkronkan ke
server web Airflow. Di Airflow 1, folder konten dags/
dan plugins/
disinkronkan ke server web Airflow hanya jika Serialisasi DAG dinonaktifkan.
Jika tidak, sinkronisasi tidak akan dilakukan.
Makin banyak data yang dimasukkan ke folder ini, makin banyak ruang yang digunakan
dalam penyimpanan lokal komponen Airflow. Menyimpan terlalu banyak data di dags/
dan plugins/
dapat mengganggu operasi Anda dan menyebabkan masalah seperti:
Pekerja atau penjadwal kehabisan penyimpanan lokal dan dihapus karena tidak ada cukup ruang di disk lokal komponen.
Sinkronisasi file dari folder
dags/
danplugins/
ke pekerja dan penjadwal memerlukan waktu yang lama.Menyinkronkan file dari folder
dags/
danplugins/
ke pekerja dan penjadwal menjadi tidak mungkin. Misalnya, Anda menyimpan file 2 GB di folderdags/
, tetapi disk lokal pekerja Airflow hanya dapat menampung 1 GB. Selama sinkronisasi, pekerja kehabisan penyimpanan lokal dan sinkronisasi tidak dapat diselesaikan.
Folder DAG dan plugin
Untuk menghindari kegagalan pengoperasian DAG, simpan DAG, plugin, dan modul Python Anda di
folder dags/
atau plugins/
, meskipun modul Python Anda tidak berisi DAG
atau plugin.
Misalnya, Anda menggunakan DataFlowPythonOperator
yang mereferensikan pipeline Dataflow py_file
. py_file
tersebut tidak berisi DAG atau plugin, tetapi Anda tetap harus menyimpannya di folder dags/
atau plugins/
.
Folder data
Ada skenario saat file tertentu dari folder data/
disinkronkan ke komponen Airflow tertentu. Misalnya, saat
Cloud Composer mencoba membaca file tertentu untuk pertama kalinya selama:
Mengurai DAG: Saat file dibaca untuk pertama kalinya selama penguraian DAG, Cloud Composer akan menyinkronkannya ke penjadwal yang mengurai DAG.
Eksekusi DAG: Saat file dibaca untuk pertama kalinya selama eksekusi DAG, Cloud Composer akan menyinkronkannya ke pekerja yang menjalankan eksekusi.
Komponen Airflow memiliki penyimpanan lokal terbatas, jadi pertimbangkan untuk menghapus file yang didownload untuk mengosongkan ruang disk di komponen Anda. Perhatikan bahwa penggunaan penyimpanan lokal juga dapat meningkat untuk sementara jika Anda memiliki tugas serentak yang mendownload file yang sama ke satu pekerja Airflow.
Folder log
Folder logs/
disinkronkan dari pekerja Airflow ke bucket lingkungan menggunakan Cloud Storage API.
Kuota Cloud Storage API dihitung berdasarkan jumlah data yang dipindahkan, sehingga jumlah tugas Airflow yang dijalankan sistem Anda dapat meningkatkan penggunaan Cloud Storage API: semakin banyak tugas yang Anda jalankan, semakin besar file log Anda.
Sinkronisasi dengan server web
Airflow 2 menggunakan serialisasi DAG secara langsung. Folder plugins/
otomatis disinkronkan ke server web sehingga plugin dapat dimuat oleh
UI Airflow. Anda tidak dapat menonaktifkan serialisasi DAG di Airflow 2.
Di Airflow 1, serialisasi DAG didukung dan diaktifkan secara default di Cloud Composer.
- Jika serialisasi DAG diaktifkan, file dari folder
dags/
danplugins/
tidak disinkronkan ke server web. - Jika serialisasi DAG dinonaktifkan, file dari
dags/
danplugins/
akan disinkronkan ke server web.