設定資料庫保留政策

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 來減少資源消耗量。

為新環境設定資料庫保留功能

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

主控台

在「建立環境」頁面中:

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

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

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

  2. (選用) 如要設定自訂保留期限,請在「保留期限」欄位中,指定 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.12 \
    --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

建立環境時,請在「Environment」>「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. (選用) 如要設定自訂保留期限,請在「保留期限」欄位中,指定 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 記錄,請參閱「查看記錄」。

後續步驟