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。此 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.2-build.9 \
--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 > [DataRetentionConfig][api-res-data-retention-config] > 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 控制台中,前往环境页面。
在环境列表中,点击您的环境名称。环境详情页面会打开。
转到环境配置标签页。
“数据库数据保留政策”项会列出您环境的当前数据库数据保留政策。
点击修改。
设置数据库保留状态:
如需启用数据库保留功能,请选择启用数据库数据保留政策。
如需停用数据库保留功能,请取消选中启用数据库数据保留政策。
(可选)如需设置自定义保留期限,请在保留期限字段中指定一个介于 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 控制台中,前往环境页面。
在环境列表中,点击您的环境名称。环境详情页面会打开。
转到环境配置标签页。
“数据库数据保留政策”项会列出您环境的当前数据库数据保留政策。
gcloud
gcloud composer environments describe ENVIRONMENT_NAME \
--location LOCATION \
--format="value(config.dataRetentionConfig.airflowMetadataRetentionConfig.retentionMode)"
查看数据库保留日志
您可以依次选择环境详情 > 日志 > 查看数据库保留操作日志。日志位于所有日志 > Composer 日志 > 数据库保留。
日志条目会列出操作状态和数据库大小。
如需详细了解如何查看 Cloud Composer 日志,请参阅查看日志。