設定資料庫保留政策

Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1

本頁說明如何為 Airflow 資料庫設定保留政策,自動移除較舊的記錄,以便維護 Airflow 資料庫的大小。

資料庫保留政策僅適用於 Cloud Composer 3。

關於資料庫保留

隨著時間流逝,環境的 Airflow 資料庫會儲存越來越多資料。這類資料包括與過去 DAG 執行作業、工作和其他 Airflow 作業相關的資訊和記錄。

如果您在環境中為 Airflow 資料庫設定保留期限,請注意:

  • Cloud Composer 會移除超過指定時間範圍的 DAG 執行作業和使用者工作階段相關記錄。
  • 即使相關記錄的保留期限已過,系統仍會保留最新的 DAG 執行資訊。
  • 預設保留期限為 60 天。您可以設定自訂保留期限,從 30 天到 730 天不等。

資料庫保留作業的運作方式如下:

  • 資料庫保留功能預設為啟用。您可以為現有環境啟用或停用此功能。預設保留期限為 60 天。

  • 啟用資料庫保留功能後,系統會在 24 小時內自動執行至少一次清除作業。您無法為這項作業設定自訂時間表。啟用資料庫保留功能或變更保留期限後,Cloud Composer 不會立即執行清理作業。

  • 清理作業不會鎖定 Airflow 資料庫資料表,即使作業中斷,也能維持資料一致性。

  • 資料庫儲存空間容量增加後,就無法透過資料庫保留作業來縮減 Cloud SQL 儲存空間。資料庫保留作業只會避免 Airflow 資料庫隨著時間增加。詳情請參閱相應的已知問題

事前準備

  • 如果您的環境會依時程表執行資料庫清理 DAG,您可以在設定資料庫保留政策後停止 DAG。在 Cloud Composer 3 中,維護 DAG 方法已淘汰。這個 DAG 會執行重複的工作,您可以停止該 DAG 來減少資源消耗。

為新環境設定資料庫保留期限

如要在建立環境時啟用或停用資料庫保留功能,或設定自訂資料庫保留期間,請按照下列步驟操作:

主控台

在「Create environment」頁面中,執行下列操作:

  1. 在「資料庫資料保留政策」部分中,設定資料庫保留設定:

    • (預設) 如要啟用資料庫保留功能,請選取「啟用資料庫資料保留政策」

    • 如要停用資料庫保留功能,請選取「停用資料庫資料保留政策」

  2. (選用) 如要設定自訂保留期限,請在「Retention period」欄位中指定 30 到 730 天的保留期限。

gcloud

建立環境時,--airflow-database-retention-days 引數會啟用資料庫保留功能,並指定保留期限 (以天為單位)。

這個引數必須一律明確指定:

  • 值為 0 時,系統會停用資料庫保留功能。
  • 如要使用預設值,請指定 60
  • 指定值,設定自訂資料庫保留期限 (30 到 730 天)。
gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --image-version composer-3-airflow-2.10.5-build.6 \
    --airflow-database-retention-days RETENTION_PERIOD

更改下列內容:

  • ENVIRONMENT_NAME:環境名稱。
  • LOCATION:環境所在的區域。
  • RETENTION_PERIOD:保留期間的自訂值。

範例:

gcloud composer environments create example-environment \
    --location us-central1 \
    --airflow-database-retention-days 60

API

建立環境時,請在「環境」>「EnvironmentConfig」EnvironmentConfig>「DataRetentionConfig」[api-res-data-retention-config]>「AirflowMetadataRetentionPolicyConfig」AirflowMetadataRetentionPolicyConfig資源中,指定資料庫保留參數:

{
  "name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
  "config": {
    "dataRetentionConfig": {
      "airflowMetadataRetentionConfig": {
        "retentionMode": "RETENTION_MODE_ENABLED",
        "retentionDays": "RETENTION_PERIOD"
      }
    }
  }
}

更改下列內容:

  • ENVIRONMENT_NAME:環境名稱。
  • LOCATION:環境所在的地區。
  • RETENTION_PERIOD:保留期限的自訂值,介於 30 到 730 天之間。

範例:


// 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

建立環境時,data_retention_config 中的 airflow_metadata_retention_config 區塊會指定資料庫保留參數:

  • retention_mode 欄位會指定資料庫保留模式:

    • (預設) RETENTION_MODE_ENABLED 會啟用資料庫保留功能。
    • RETENTION_MODE_DISABLED 會停用資料庫保留作業。
  • (選用) retention_days 可指定自訂保留期限。預設值為 60 天。

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
      }
    }
  }
}

更改下列內容:

  • ENVIRONMENT_NAME:環境名稱。
  • LOCATION:環境所在的地區。
  • RETENTION_MODE:資料庫保留模式 (RETENTION_MODE_ENABLEDRETENTION_MODE_DISABLED)。
  • RETENTION_PERIOD:保留期限的自訂值,介於 30 到 730 天之間。

範例:

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
      }
    }

為現有環境設定資料庫保留設定

如要為現有環境啟用或停用資料庫保留功能,並設定自訂保留期限,請按照下列步驟操作:

主控台

  1. 前往 Google Cloud 控制台的「Environments」頁面。

    前往「環境」

  2. 在環境清單中,按一下環境名稱。「環境詳細資料」頁面隨即開啟。

  3. 前往「環境設定」分頁。

  4. 「資料庫資料保留政策」項目會列出環境目前的資料庫資料保留政策。

  5. 按一下 [編輯]

  6. 設定資料庫保留狀態:

    • 如要啟用資料庫保留功能,請選取「啟用資料庫資料保留政策」

    • 如要停用資料庫保留功能,請取消選取「啟用資料庫資料保留政策」

  7. (選用) 如要設定自訂保留期限,請在「Retention period」欄位中指定 30 到 730 天的保留期限。

gcloud

--airflow-database-retention-days 引數可啟用資料庫保留功能,並指定保留期限 (以天為單位)。值為 0 時,系統會停用資料庫保留功能。

gcloud composer environments update ENVIRONMENT_NAME \
    --airflow-database-retention-days RETENTION_PERIOD

更改下列內容:

  • ENVIRONMENT_NAME:環境名稱。
  • LOCATION:環境所在的地區。
  • RETENTION_PERIOD:保留期限的自訂值,介於 30 到 730 天之間。

範例:

gcloud composer environments update example-environment \
    --location us-central1 \
    --airflow-database-retention-days 60

API

  1. 建構 environments.patch API 要求。

  2. 在這個要求中:

    1. updateMask 參數中指定 config.dataRetentionConfig.airflowMetadataRetentionConfig 遮罩。

    2. 在要求主體中指定資料庫保留參數。

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

取代:

  • RETENTION_MODERETENTION_MODE_ENABLED 會啟用資料庫保留功能,RETENTION_MODE_DISABLED 會停用資料庫保留功能。
  • RETENTION_PERIOD:保留期限的自訂值,介於 30 到 730 天之間。如果省略這個欄位,系統會使用預設值 (60 天)。

範例:

// 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

data_retention_config 中的 airflow_metadata_retention_config 區塊會指定資料庫保留參數:

  • retention_mode 欄位會指定資料庫保留模式:

    • (預設) RETENTION_MODE_ENABLED 會啟用資料庫保留功能。
    • RETENTION_MODE_DISABLED 會停用資料庫保留作業。
  • (選用) retention_days 可指定自訂保留期限。預設值為 60 天。

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
      }
    }
  }
}

更改下列內容:

  • ENVIRONMENT_NAME:環境名稱。
  • LOCATION:環境所在的地區。
  • RETENTION_MODE:資料庫保留模式 (RETENTION_MODE_ENABLEDRETENTION_MODE_DISABLED)。
  • RETENTION_PERIOD:保留期限的自訂值,介於 30 到 730 天之間。

範例:

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
      }
    }

查看資料庫保留狀態

主控台

  1. 前往 Google Cloud 控制台的「Environments」頁面。

    前往「環境」

  2. 在環境清單中,按一下環境名稱。「環境詳細資料」頁面隨即開啟。

  3. 前往「環境設定」分頁。

  4. 「資料庫資料保留政策」項目會列出環境目前的資料庫資料保留政策。

gcloud

gcloud composer environments describe ENVIRONMENT_NAME \
  --location LOCATION \
  --format="value(config.dataRetentionConfig.airflowMetadataRetentionConfig.retentionMode)"

查看資料庫保留記錄

您可以依序前往「環境詳細資料」>「記錄」>,查看資料庫保留作業記錄。記錄位於「所有記錄」>「Composer 記錄」>「資料庫保留」

記錄項目會列出作業狀態和資料庫大小。

如要進一步瞭解如何查看 Cloud Composer 記錄,請參閱「查看記錄」一文。

後續步驟