Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1
En esta página se explica cómo configurar una política de conservación para la base de datos de Airflow, de forma que los registros antiguos se eliminen automáticamente. Esto ayuda a mantener el tamaño de la base de datos de Airflow.
La política de conservación de bases de datos solo está disponible en Cloud Composer 3.
Acerca de la conservación de bases de datos
Con el tiempo, la base de datos de Airflow de tu entorno almacena cada vez más datos. Estos datos incluyen información y registros relacionados con ejecuciones de DAG, tareas y otras operaciones de Airflow anteriores.
Si defines un periodo de conservación para la base de datos de Airflow en tu entorno:
- Cloud Composer elimina los registros relacionados con las ejecuciones de DAG y las sesiones de usuario que sean anteriores al periodo especificado.
- La información más reciente de la ejecución de DAG siempre se conserva, incluso después de que haya transcurrido el periodo de conservación de los registros relacionados.
- El periodo de conservación predeterminado es de 60 días. Puede definir un periodo de conservación personalizado de entre 30 y 730 días.
Las operaciones de conservación de bases de datos funcionan de la siguiente manera:
De forma predeterminada, la retención de bases de datos está habilitada. Puedes habilitarlo o inhabilitarlo en un entorno nuevo o en uno ya creado. El periodo de conservación predeterminado es de 60 días.
Una operación de limpieza se ejecuta automáticamente al menos una vez en un plazo de 24 horas después de habilitar la conservación de la base de datos. No se puede definir una programación personalizada para esta operación. Cloud Composer no realiza la operación de limpieza inmediatamente después de habilitar la conservación de la base de datos o de cambiar el periodo de conservación.
La operación de limpieza no bloquea las tablas de la base de datos de Airflow y mantiene la coherencia de los datos aunque se interrumpa.
No es posible reducir el tamaño del almacenamiento de Cloud SQL mediante operaciones de conservación de bases de datos después de que se haya aumentado. Las operaciones de conservación de bases de datos solo ayudan a evitar que la base de datos de Airflow aumente con el tiempo. Para obtener más información, consulta el problema conocido correspondiente.
Antes de empezar
- Si tu entorno ejecuta el DAG de limpieza de la base de datos de forma programada, puedes detener el DAG después de configurar la política de retención de la base de datos. El enfoque de DAG de mantenimiento está obsoleto en Cloud Composer 3. Este DAG realiza un trabajo redundante y puedes reducir el consumo de recursos deteniéndolo.
Configurar la conservación de bases de datos en un entorno nuevo
Para habilitar o inhabilitar la conservación de bases de datos, o bien para definir un periodo de conservación de bases de datos personalizado al crear un entorno, sigue estos pasos:
Consola
En la página Crear entorno, haz lo siguiente:
En la sección Política de conservación de datos de la base de datos, configura la conservación de la base de datos:
(Predeterminado) Para habilitar la conservación de la base de datos, selecciona Habilitar la política de conservación de datos de la base de datos.
Para inhabilitar la conservación de la base de datos, selecciona Inhabilitar la política de conservación de datos de la base de datos.
(Opcional) Para definir un periodo de conservación personalizado, en el campo Periodo de conservación, especifica un periodo de entre 30 y 730 días.
gcloud
Cuando creas un entorno, el argumento --airflow-database-retention-days
habilita la conservación de la base de datos y especifica el periodo de conservación en días.
Este argumento siempre se debe especificar explícitamente:
- El valor
0
inhabilita la conservación de la base de datos. - Especifique
60
para usar el valor predeterminado. - Especifica un valor para definir un periodo de conservación de la base de datos personalizado entre 30 y 730 días.
gcloud composer environments create ENVIRONMENT_NAME \
--location LOCATION \
--image-version composer-3-airflow-2.10.5-build.11 \
--airflow-database-retention-days RETENTION_PERIOD
Haz los cambios siguientes:
ENVIRONMENT_NAME
: el nombre de tu entorno.LOCATION
: la región en la que se encuentra el entorno.RETENTION_PERIOD
: un valor personalizado para el periodo de conservación.
Ejemplo:
gcloud composer environments create example-environment \
--location us-central1 \
--airflow-database-retention-days 60
API
Cuando crees un entorno, en el recurso Environment > EnvironmentConfig > [DataRetentionConfig][api-res-data-retention-config] > AirflowMetadataRetentionPolicyConfig, especifica los parámetros de retención de la base de datos:
{
"name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
"config": {
"dataRetentionConfig": {
"airflowMetadataRetentionConfig": {
"retentionMode": "RETENTION_MODE_ENABLED",
"retentionDays": "RETENTION_PERIOD"
}
}
}
}
Haz los cambios siguientes:
ENVIRONMENT_NAME
: el nombre de tu entorno.LOCATION
: la región en la que se encuentra el entorno.RETENTION_PERIOD
: un valor personalizado para el periodo de conservación, que debe estar entre 30 y 730 días.
Ejemplo:
// 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
Cuando creas un entorno, el bloque airflow_metadata_retention_config
de data_retention_config
especifica los parámetros de conservación de la base de datos:
El campo
retention_mode
especifica el modo de retención de la base de datos:- (Predeterminado)
RETENTION_MODE_ENABLED
habilita la conservación de la base de datos. RETENTION_MODE_DISABLED
inhabilita la conservación de la base de datos.
- (Predeterminado)
(Opcional)
retention_days
especifica un periodo de conservación personalizado. El valor predeterminado es 60 días.
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
}
}
}
}
Haz los cambios siguientes:
ENVIRONMENT_NAME
: el nombre de tu entorno.LOCATION
: la región en la que se encuentra el entorno.RETENTION_MODE
: modo de conservación de la base de datos (RETENTION_MODE_ENABLED
oRETENTION_MODE_DISABLED
).RETENTION_PERIOD
: un valor personalizado para el periodo de conservación, que debe estar entre 30 y 730 días.
Ejemplo:
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
}
}
Configurar la conservación de bases de datos en un entorno
Para habilitar o inhabilitar la conservación de bases de datos en un entorno y definir un periodo de conservación personalizado, sigue estos pasos:
Consola
En la Google Cloud consola, ve a la página Entornos.
En la lista de entornos, haz clic en el nombre del entorno. Se abrirá la página Detalles del entorno.
Ve a la pestaña Configuración del entorno.
El elemento Política de conservación de datos de la base de datos muestra la política de conservación de datos de la base de datos actual de tu entorno.
Haz clic en Editar.
Define el estado de la conservación de la base de datos:
Para habilitar la retención de bases de datos, selecciona Habilitar política de retención de datos de bases de datos.
Para inhabilitar la conservación de la base de datos, desmarca Habilitar la política de conservación de datos de la base de datos.
(Opcional) Para definir un periodo de conservación personalizado, en el campo Periodo de conservación, especifica un periodo de entre 30 y 730 días.
gcloud
El argumento --airflow-database-retention-days
habilita la conservación de la base de datos y especifica el periodo de conservación en días. El valor 0
inhabilita la conservación de la base de datos.
gcloud composer environments update ENVIRONMENT_NAME \
--airflow-database-retention-days RETENTION_PERIOD
Haz los cambios siguientes:
ENVIRONMENT_NAME
: el nombre de tu entorno.LOCATION
: la región en la que se encuentra el entorno.RETENTION_PERIOD
: un valor personalizado para el periodo de conservación, que debe estar entre 30 y 730 días.
Ejemplo:
gcloud composer environments update example-environment \
--location us-central1 \
--airflow-database-retention-days 60
API
Crea una solicitud de la API
environments.patch
.En esta solicitud:
En el parámetro
updateMask
, especifique la máscaraconfig.dataRetentionConfig.airflowMetadataRetentionConfig
.En el cuerpo de la solicitud, especifica los parámetros de retención de la base de datos.
{
"config": {
"dataRetentionConfig": {
"airflowMetadataRetentionConfig": {
"retentionMode": "RETENTION_MODE",
"retentionDays": "RETENTION_PERIOD"
}
}
}
}
Sustituye:
RETENTION_MODE
:RETENTION_MODE_ENABLED
habilita la conservación de la base de datos.RETENTION_MODE_DISABLED
inhabilita la conservación de la base de datos.RETENTION_PERIOD
: un valor personalizado para el periodo de conservación, que debe estar entre 30 y 730 días. Si se omite este campo, se usará el valor predeterminado (60 días).
Ejemplo:
// 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
El bloque airflow_metadata_retention_config
de data_retention_config
especifica los parámetros de retención de la base de datos:
El campo
retention_mode
especifica el modo de retención de la base de datos:- (Predeterminado)
RETENTION_MODE_ENABLED
habilita la conservación de la base de datos. RETENTION_MODE_DISABLED
inhabilita la conservación de la base de datos.
- (Predeterminado)
(Opcional)
retention_days
especifica un periodo de conservación personalizado. El valor predeterminado es 60 días.
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
}
}
}
}
Haz los cambios siguientes:
ENVIRONMENT_NAME
: el nombre de tu entorno.LOCATION
: la región en la que se encuentra el entorno.RETENTION_MODE
: modo de conservación de la base de datos (RETENTION_MODE_ENABLED
oRETENTION_MODE_DISABLED
).RETENTION_PERIOD
: un valor personalizado para el periodo de conservación, que debe estar entre 30 y 730 días.
Ejemplo:
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
}
}
Comprobar el estado de retención de la base de datos
Consola
En la Google Cloud consola, ve a la página Entornos.
En la lista de entornos, haz clic en el nombre del entorno. Se abrirá la página Detalles del entorno.
Ve a la pestaña Configuración del entorno.
El elemento Política de conservación de datos de la base de datos muestra la política de conservación de datos de la base de datos actual de tu entorno.
gcloud
gcloud composer environments describe ENVIRONMENT_NAME \
--location LOCATION \
--format="value(config.dataRetentionConfig.airflowMetadataRetentionConfig.retentionMode)"
Ver los registros de retención de bases de datos
Puedes ver los registros de operaciones de conservación de bases de datos en Detalles del entorno > Registros >. Los registros se encuentran en Todos los registros > Registros de Composer > Conservación de bases de datos.
En las entradas de registro se indica el estado de la operación y el tamaño de la base de datos.
Para obtener más información sobre cómo ver los registros de Cloud Composer, consulta Ver registros.