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 天。
資料庫保留作業的運作方式如下:
- 啟用資料庫保留功能後,系統會在 24 小時內自動執行至少一次清除作業。這項作業無法設定自訂時間表。啟用資料庫保留功能或變更保留期限後,Cloud Composer 不會立即執行清除作業。 
- 清除作業不會鎖定 Airflow 資料庫資料表,即使作業中斷,資料一致性也不會受到影響。 
- 增加 Cloud SQL 儲存空間後,無法透過資料庫保留作業縮減儲存空間。資料庫保留作業只會避免 Airflow 資料庫隨時間增加,詳情請參閱相應的已知問題。 
事前準備
- 如果環境會定期執行資料庫清除 DAG,設定資料庫保留政策後,即可停止 DAG。在 Cloud Composer 3 中,維護 DAG 方法已過時。這個 DAG 會執行多餘的工作,您可以停止 DAG 來減少資源消耗量。
為新環境設定資料庫保留功能
如要在建立環境時啟用或停用資料庫保留功能,或設定自訂資料庫保留期限,請按照下列步驟操作:
主控台
在「建立環境」頁面中:
- 在「資料庫資料保留政策」部分,設定資料庫保留政策: - (預設) 如要啟用資料庫保留功能,請選取「啟用資料庫資料保留政策」。 
- 如要停用資料庫保留功能,請選取「停用資料庫資料保留政策」。 
 
- (選用) 如要設定自訂保留期限,請在「保留期限」欄位中,指定 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.16 \
    --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_ENABLED或- RETENTION_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
      }
    }
為現有環境設定資料庫保留功能
如要為現有環境啟用或停用資料庫保留功能,以及設定自訂保留期限,請按照下列步驟操作:
主控台
- 前往 Google Cloud 控制台的「Environments」頁面。 
- 在環境清單中,按一下環境名稱。 「環境詳細資料」頁面隨即開啟。 
- 前往「環境設定」分頁。 
- 「資料庫資料保留政策」項目會列出環境目前的資料庫資料保留政策。 
- 按一下 [編輯]。 
- 設定資料庫保留狀態: - 如要啟用資料庫保留功能,請選取「啟用資料庫資料保留政策」。 
- 如要停用資料庫保留功能,請取消選取「啟用資料庫資料保留政策」。 
 
- (選用) 如要設定自訂保留期限,請在「保留期限」欄位中,指定 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
- 建構 - environments.patchAPI 要求。
- 在這個要求中: - 在 - updateMask參數中,指定- config.dataRetentionConfig.airflowMetadataRetentionConfig遮罩。
- 在要求主體中,指定資料庫保留參數。 
 
{
  "config": {
    "dataRetentionConfig": {
      "airflowMetadataRetentionConfig": {
        "retentionMode": "RETENTION_MODE",
        "retentionDays": "RETENTION_PERIOD"
      }
    }
  }
}
取代:
- RETENTION_MODE:- RETENTION_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_ENABLED或- RETENTION_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
      }
    }
查看資料庫保留狀態
主控台
- 前往 Google Cloud 控制台的「Environments」頁面。 
- 在環境清單中,按一下環境名稱。 「環境詳細資料」頁面隨即開啟。 
- 前往「環境設定」分頁。 
- 「資料庫資料保留政策」項目會列出環境目前的資料庫資料保留政策。 
gcloud
gcloud composer environments describe ENVIRONMENT_NAME \
  --location LOCATION \
  --format="value(config.dataRetentionConfig.airflowMetadataRetentionConfig.retentionMode)"
查看資料庫保留記錄
如要查看資料庫保留作業記錄,請依序前往「環境詳細資料」>「記錄」>。記錄位於「所有記錄」>「Composer 記錄」>「資料庫保留」。
記錄項目會列出作業狀態和資料庫大小。
如要進一步瞭解如何查看 Cloud Composer 記錄,請參閱「查看記錄」。