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 來減少資源消耗。
為新環境設定資料庫保留期限
如要在建立環境時啟用或停用資料庫保留功能,或設定自訂資料庫保留期間,請按照下列步驟操作:
主控台
在「Create environment」頁面中,執行下列操作:
在「資料庫資料保留政策」部分中,設定資料庫保留設定:
(預設) 如要啟用資料庫保留功能,請選取「啟用資料庫資料保留政策」。
如要停用資料庫保留功能,請選取「停用資料庫資料保留政策」。
(選用) 如要設定自訂保留期限,請在「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_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」頁面。
在環境清單中,按一下環境名稱。「環境詳細資料」頁面隨即開啟。
前往「環境設定」分頁。
「資料庫資料保留政策」項目會列出環境目前的資料庫資料保留政策。
按一下 [編輯]。
設定資料庫保留狀態:
如要啟用資料庫保留功能,請選取「啟用資料庫資料保留政策」。
如要停用資料庫保留功能,請取消選取「啟用資料庫資料保留政策」。
(選用) 如要設定自訂保留期限,請在「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
建構
environments.patch
API 要求。在這個要求中:
在
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 記錄,請參閱「查看記錄」一文。