Mengonfigurasi kebijakan retensi database

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:

  1. 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.

  2. (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 0 akan menonaktifkan retensi data database.
  • Tentukan 60 untuk 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_mode menentukan mode retensi data database:

    • (Default) RETENTION_MODE_ENABLED mengaktifkan retensi data database.
    • RETENTION_MODE_DISABLED menonaktifkan retensi data database.
  • (Opsional) retention_days menentukan 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_ENABLED atau RETENTION_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

  1. Di Google Cloud konsol, buka halaman Environments.

    Buka Environments

  2. Di daftar lingkungan, klik nama lingkungan Anda. Halaman Environment details akan terbuka.

  3. Buka tab Environment configuration.

  4. Item Database data retention policy mencantumkan kebijakan retensi data database lingkungan Anda saat ini.

  5. Klik Edit.

  6. 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.

  7. (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

  1. Buat permintaan API environments.patch.

  2. Dalam permintaan ini:

    1. Di parameter updateMask, tentukan mask config.dataRetentionConfig.airflowMetadataRetentionConfig.

    2. Di isi permintaan, tentukan parameter retensi data database.

{
  "config": {
    "dataRetentionConfig": {
      "airflowMetadataRetentionConfig": {
        "retentionMode": "RETENTION_MODE",
        "retentionDays": "RETENTION_PERIOD"
      }
    }
  }
}

Ganti:

  • RETENTION_MODE: RETENTION_MODE_ENABLED mengaktifkan retensi data database, RETENTION_MODE_DISABLED menonaktifkan 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_mode menentukan mode retensi data database:

    • (Default) RETENTION_MODE_ENABLED mengaktifkan retensi data database.
    • RETENTION_MODE_DISABLED menonaktifkan retensi data database.
  • (Opsional) retention_days menentukan 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_ENABLED atau RETENTION_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

  1. Di Google Cloud konsol, buka halaman Environments.

    Buka Environments

  2. Di daftar lingkungan, klik nama lingkungan Anda. Halaman Environment details akan terbuka.

  3. Buka tab Environment configuration.

  4. 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.

Langkah berikutnya