Managed Airflow (Generasi 3) | Managed Airflow (Generasi 2) | Managed Airflow (Generasi 1 Lama)
Halaman ini menjelaskan cara mengonfigurasi kebijakan retensi data untuk database Airflow, sehingga data lama akan otomatis dihapus dari database tersebut, yang membantu mempertahankan ukuran database Airflow.
Kebijakan retensi data hanya tersedia di Managed Airflow (Generasi 3).
Tentang retensi data database
Seiring waktu, database Airflow di lingkungan Anda akan menyimpan semakin banyak data. Data ini mencakup informasi dan log yang terkait dengan eksekusi DAG, tugas, dan operasi Airflow sebelumnya.
Jika Anda menetapkan periode retensi data untuk database Airflow di lingkungan Anda:
- Managed Airflow akan menghapus data yang terkait dengan eksekusi DAG dan sesi pengguna yang lebih lama dari periode waktu yang ditentukan.
- Informasi eksekusi DAG terbaru akan selalu dipertahankan, bahkan setelah periode retensi data berakhir untuk data terkait.
- Periode retensi data default adalah 60 hari. Anda dapat menetapkan periode retensi data kustom dari 30 hingga 730 hari.
Operasi retensi data database berfungsi dengan cara berikut:
Secara default, retensi data database diaktifkan. Anda dapat mengaktifkan atau menonaktifkannya untuk lingkungan baru atau yang sudah ada. Periode retensi data default adalah 60 hari.
Operasi pembersihan akan berjalan secara otomatis setidaknya sekali dalam waktu 24 jam setelah Anda mengaktifkan retensi data database. Anda tidak dapat menetapkan jadwal kustom untuk operasi ini. Managed Airflow tidak akan menjalankan operasi pembersihan segera setelah Anda mengaktifkan retensi data database atau mengubah periode retensi data.
Operasi pembersihan tidak mengunci tabel database Airflow, dan mempertahankan konsistensi data meskipun terganggu.
Anda tidak dapat mengurangi ukuran penyimpanan Cloud SQL melalui operasi retensi data database setelah ukuran penyimpanan ditingkatkan. Operasi retensi data database hanya membantu mencegah database Airflow bertambah seiring waktu. Untuk mengetahui informasi selengkapnya, lihat masalah umum yang sesuai.
Operasi pembersihan mengevaluasi usia eksekusi DAG berdasarkan tanggal logisnya, bukan waktu jam dinding saat tugas dieksekusi. Jika interval backfill berada di luar periode retensi data saat ini, proses retensi data mungkin akan segera menghapus eksekusi yang baru dibuat ini karena tanggal logisnya lebih lama dari batas retensi data. Akibatnya, eksekusi ini tidak terlihat di UI Airflow. Untuk mencegah hal ini, tingkatkan batas retensi data untuk sementara agar mencakup tanggal terlama interval backfill Anda sebelum menjalankan operasi backfill.
Sebelum memulai
- Jika lingkungan Anda menjalankan DAG pembersihan database sesuai jadwal, Anda dapat menghentikan DAG setelah mengonfigurasi kebijakan retensi data database. Pendekatan DAG pemeliharaan sudah tidak digunakan lagi di Managed Airflow (Generasi 3). DAG ini melakukan pekerjaan yang berlebihan dan Anda dapat mengurangi penggunaan resource dengan menghentikannya.
Mengonfigurasi retensi data database untuk lingkungan baru
Untuk mengaktifkan atau menonaktifkan retensi data database atau menetapkan periode retensi data database kustom saat Anda membuat lingkungan:
Konsol
Di halaman Create environment:
Di bagian Database data retention policy, konfigurasikan retensi data database:
(Default) Untuk mengaktifkan retensi data database, pilih Enable database data retention policy.
Untuk menonaktifkan retensi data database, pilih Disable database data retention policy.
(Opsional) Untuk menetapkan periode retensi data kustom, di kolom Retention period, tentukan periode retensi data antara 30 dan 730 hari.
gcloud
Saat Anda membuat lingkungan, argumen --airflow-database-retention-days akan mengaktifkan retensi data database dan menentukan periode retensi data, dalam hitungan hari.
Argumen ini harus selalu ditentukan secara eksplisit:
- Nilai
0akan menonaktifkan retensi data database. - Tentukan
60untuk menggunakan nilai default. - Tentukan nilai untuk menetapkan periode retensi data database kustom antara 30 dan 730 hari.
gcloud composer environments create ENVIRONMENT_NAME \
--location LOCATION \
--image-version composer-3-airflow-2.11.1-build.20 \
--airflow-database-retention-days RETENTION_PERIOD
Ganti kode berikut:
ENVIRONMENT_NAME: nama lingkungan Anda.LOCATION: region tempat lingkungan berada.RETENTION_PERIOD: nilai kustom untuk periode retensi data.
Contoh:
gcloud composer environments create example-environment \
--location us-central1 \
--airflow-database-retention-days 60
API
Saat Anda membuat lingkungan, di resource Environment > EnvironmentConfig > [DataRetentionConfig][api-res-data-retention-config] > AirflowMetadataRetentionPolicyConfig, tentukan parameter retensi data database:
{
"name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
"config": {
"dataRetentionConfig": {
"airflowMetadataRetentionConfig": {
"retentionMode": "RETENTION_MODE_ENABLED",
"retentionDays": "RETENTION_PERIOD"
}
}
}
}
Ganti kode berikut:
ENVIRONMENT_NAME: nama lingkungan Anda.LOCATION: region tempat lingkungan berada.RETENTION_PERIOD: nilai kustom untuk periode retensi data antara 30 dan 730 hari.
Contoh:
// POST https://composer.googleapis.com/v1/{parent=projects/*/locations/*}/environments
{
"name": "projects/example-project/locations/us-central1/environments/example-environment",
"config": {
"dataRetentionConfig": {
"airflowMetadataRetentionConfig": {
"retentionMode": "RETENTION_MODE_ENABLED",
"retentionDays": "90"
}
}
}
}
Terraform
Saat Anda membuat lingkungan, blok airflow_metadata_retention_config
di data_retention_config akan menentukan parameter retensi data database:
Kolom
retention_modemenentukan mode retensi data database:- (Default)
RETENTION_MODE_ENABLEDmengaktifkan retensi data database. RETENTION_MODE_DISABLEDmenonaktifkan retensi data database.
- (Default)
(Opsional)
retention_daysmenentukan periode retensi data kustom. Nilai defaultnya adalah 60 hari.
resource "google_composer_environment" "example" {
provider = google-beta
name = "ENVIRONMENT_NAME"
region = "LOCATION"
config {
data_retention_config {
airflow_metadata_retention_config {
retention_mode = "RETENTION_MODE"
retention_days = RETENTION_PERIOD
}
}
}
}
Ganti kode berikut:
ENVIRONMENT_NAME: nama lingkungan Anda.LOCATION: region tempat lingkungan berada.RETENTION_MODE: mode retensi data database (RETENTION_MODE_ENABLEDatauRETENTION_MODE_DISABLED).RETENTION_PERIOD: nilai kustom untuk periode retensi data antara 30 dan 730 hari.
Contoh:
resource "google_composer_environment" "example" {
provider = google-beta
name = "example-environment"
region = "us-central1"
config {
data_retention_config {
airflow_metadata_retention_config {
retention_mode = "RETENTION_MODE_ENABLED"
retention_days = 90
}
}
Mengonfigurasi retensi data database untuk lingkungan yang sudah ada
Untuk mengaktifkan atau menonaktifkan retensi data database untuk lingkungan yang sudah ada dan menetapkan periode retensi data kustom:
Konsol
Di Google Cloud konsol, buka halaman Environments.
Di daftar lingkungan, klik nama lingkungan Anda. Halaman Environment details akan terbuka.
Buka tab Environment configuration.
Item Database data retention policy mencantumkan kebijakan retensi data database lingkungan Anda saat ini.
Klik Edit.
Tetapkan status retensi data database:
Untuk mengaktifkan retensi data database, pilih Enable database data retention policy.
Untuk menonaktifkan retensi data database, hapus centang Enable database data retention policy.
(Opsional) Untuk menetapkan periode retensi data kustom, di kolom Retention period, tentukan periode retensi data antara 30 dan 730 hari.
gcloud
Argumen --airflow-database-retention-days akan mengaktifkan retensi data database dan menentukan periode retensi data, dalam hitungan hari. Nilai 0 akan menonaktifkan retensi data database.
gcloud composer environments update ENVIRONMENT_NAME \
--airflow-database-retention-days RETENTION_PERIOD
Ganti kode berikut:
ENVIRONMENT_NAME: nama lingkungan Anda.LOCATION: region tempat lingkungan berada.RETENTION_PERIOD: nilai kustom untuk periode retensi data antara 30 dan 730 hari.
Contoh:
gcloud composer environments update example-environment \
--location us-central1 \
--airflow-database-retention-days 60
API
Buat permintaan API
environments.patch.Dalam permintaan ini:
Di parameter
updateMask, tentukan maskconfig.dataRetentionConfig.airflowMetadataRetentionConfig.Di isi permintaan, tentukan parameter retensi data database.
{
"config": {
"dataRetentionConfig": {
"airflowMetadataRetentionConfig": {
"retentionMode": "RETENTION_MODE",
"retentionDays": "RETENTION_PERIOD"
}
}
}
}
Ganti:
RETENTION_MODE:RETENTION_MODE_ENABLEDmengaktifkan retensi data database,RETENTION_MODE_DISABLEDmenonaktifkan retensi data database.RETENTION_PERIOD: nilai kustom untuk periode retensi data antara 30 dan 730 hari. Jika kolom ini dihilangkan, nilai default akan digunakan (60 hari).
Contoh:
// PATCH https://composer.googleapis.com/v1/projects/example-project/
// locations/us-central1/environments/example-environment?updateMask=
// config.dataRetentionConfig.airflowMetadataRetentionConfig
{
"config": {
"dataRetentionConfig": {
"airflowMetadataRetentionConfig": {
"retentionMode": "RETENTION_MODE_ENABLED",
"retentionMode": "90"
}
}
}
}
Terraform
Blok airflow_metadata_retention_config
di data_retention_config akan menentukan parameter retensi data database:
Kolom
retention_modemenentukan mode retensi data database:- (Default)
RETENTION_MODE_ENABLEDmengaktifkan retensi data database. RETENTION_MODE_DISABLEDmenonaktifkan retensi data database.
- (Default)
(Opsional)
retention_daysmenentukan periode retensi data kustom. Nilai defaultnya adalah 60 hari.
resource "google_composer_environment" "example" {
provider = google-beta
name = "ENVIRONMENT_NAME"
region = "LOCATION"
config {
data_retention_config {
airflow_metadata_retention_config {
retention_mode = "RETENTION_MODE"
retention_days = RETENTION_PERIOD
}
}
}
}
Ganti kode berikut:
ENVIRONMENT_NAME: nama lingkungan Anda.LOCATION: region tempat lingkungan berada.RETENTION_MODE: mode retensi data database (RETENTION_MODE_ENABLEDatauRETENTION_MODE_DISABLED).RETENTION_PERIOD: nilai kustom untuk periode retensi data antara 30 dan 730 hari.
Contoh:
resource "google_composer_environment" "example" {
provider = google-beta
name = "example-environment"
region = "us-central1"
config {
data_retention_config {
airflow_metadata_retention_config {
retention_mode = "RETENTION_MODE_ENABLED"
retention_days = 90
}
}
Memeriksa status retensi data database
Konsol
Di Google Cloud konsol, buka halaman Environments.
Di daftar lingkungan, klik nama lingkungan Anda. Halaman Environment details akan terbuka.
Buka tab Environment configuration.
Item Database data retention policy mencantumkan kebijakan retensi data database lingkungan Anda saat ini.
gcloud
gcloud composer environments describe ENVIRONMENT_NAME \
--location LOCATION \
--format="value(config.dataRetentionConfig.airflowMetadataRetentionConfig.retentionMode)"
Melihat log retensi data database
Anda dapat melihat log operasi retensi data database di Environment details > Logs >. Log berada di All logs > Composer logs > Database retention.
Entri log mencantumkan status operasi, dan ukuran database.
Untuk mengetahui informasi selengkapnya tentang cara melihat log Managed Service untuk Apache Airflow, lihat Melihat log.