Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1
En esta página, se explica cómo configurar una política de retención para la base de datos de Airflow, de modo que los registros más antiguos se quiten automáticamente, lo que ayuda a mantener el tamaño de la base de datos de Airflow.
La política de retención de la base de datos solo está disponible en Cloud Composer 3.
Acerca de la retención de la base 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 y tareas anteriores de DAG y otras operaciones de Airflow.
Si estableces un período de retención para la base de datos de Airflow en tu entorno, ten en cuenta lo siguiente:
- Cloud Composer quita los registros relacionados con las ejecuciones de DAG y las sesiones de usuario que son anteriores al período especificado.
- La información de la ejecución del DAG más reciente siempre se conserva, incluso después de que finaliza el período de retención de los registros relacionados.
- El período de retención predeterminado es de 60 días. Puedes establecer un período de retención personalizado de 30 a 730 días.
Las operaciones de retención de bases de datos funcionan de la siguiente manera:
De forma predeterminada, la retención de la base de datos está habilitada. Puedes habilitarla o inhabilitarla para un entorno nuevo o existente. El período de retenció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 que habilites la retención de la base de datos. No es posible establecer una programación personalizada para esta operación. Cloud Composer no realiza la operación de limpieza inmediatamente después de que habilitas la retención de la base de datos o cambias el período de retención.
La operación de limpieza no bloquea las tablas de la base de datos de Airflow y mantiene la coherencia de los datos incluso si se interrumpe.
No es posible reducir el tamaño de almacenamiento de Cloud SQL a través de operaciones de retención de bases de datos después de que se aumentó. Las operaciones de retención de la base 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 comenzar
- 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 quedó obsoleto en Cloud Composer 3. Este DAG realiza un trabajo redundante, y puedes detenerlo para reducir el consumo de recursos.
Configura la retención de la base de datos para un entorno nuevo
Para habilitar o inhabilitar la retención de la base de datos, o bien establecer un período de retención personalizado cuando creas un entorno, sigue estos pasos:
Console
En la página Crear entorno:
En la sección Política de retención de datos de la base de datos, configura la retención de la base de datos:
(Opción predeterminada) Para habilitar la retención de la base de datos, selecciona Habilita la política de retención de datos de la base de datos.
Para inhabilitar la retención de la base de datos, selecciona Inhabilita la política de retención de datos de la base de datos.
(Opcional) Para establecer un período de retención personalizado, en el campo Período de retención, especifica un período de retención entre 30 y 730 días.
gcloud
Cuando creas un entorno, el argumento --airflow-database-retention-days
habilita la retención de la base de datos y especifica el período de retención en días.
Este argumento siempre se debe especificar de forma explícita:
- Un valor de
0
inhabilita la retención de la base de datos. - Especifica
60
para usar el valor predeterminado. - Especifica un valor para establecer un período de retenció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.12 \
--airflow-database-retention-days RETENTION_PERIOD
Reemplaza lo siguiente:
ENVIRONMENT_NAME
: Es el nombre de tu entorno.LOCATION
: Es la región en la que se encuentra el entorno.RETENTION_PERIOD
: Es un valor personalizado para el período de retención.
Ejemplo:
gcloud composer environments create example-environment \
--location us-central1 \
--airflow-database-retention-days 60
API
Cuando creas 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"
}
}
}
}
Reemplaza lo siguiente:
ENVIRONMENT_NAME
: Es el nombre de tu entorno.LOCATION
: Es la región en la que se encuentra el entorno.RETENTION_PERIOD
: Es un valor personalizado para el período de retención 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
en 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 retención de la base de datos. RETENTION_MODE_DISABLED
inhabilita la retención de la base de datos.
- (Predeterminado)
(Opcional)
retention_days
especifica un período de retenció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
}
}
}
}
Reemplaza lo siguiente:
ENVIRONMENT_NAME
: Es el nombre de tu entorno.LOCATION
: Es la región en la que se encuentra el entorno.RETENTION_MODE
: Modo de retención de la base de datos (RETENTION_MODE_ENABLED
oRETENTION_MODE_DISABLED
).RETENTION_PERIOD
: Es un valor personalizado para el período de retención 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
}
}
Configura la retención de la base de datos para un entorno existente
Sigue estos pasos para habilitar o inhabilitar la retención de la base de datos en un entorno existente y establecer un período de retención personalizado:
Console
En la consola de Google Cloud , ve a la página Entornos.
En la lista de entornos, haz clic en el nombre de tu entorno. Se abrirá la página Detalles del entorno.
Ve a la pestaña Configuración del entorno.
El elemento Política de retención de datos de la base de datos muestra la política de retención de datos actual de la base de datos de tu entorno.
Haz clic en Editar.
Establece el estado de la retención de la base de datos:
Para habilitar la retención de la base de datos, selecciona Habilita la política de retención de datos de la base de datos.
Para inhabilitar la retención de la base de datos, desmarca la opción Habilita la política de retención de datos de la base de datos.
(Opcional) Para establecer un período de retención personalizado, en el campo Período de retención, especifica un período de retención entre 30 y 730 días.
gcloud
El argumento --airflow-database-retention-days
habilita la retención de la base de datos y especifica el período de retención en días. Un valor de 0
inhabilita la retención de la base de datos.
gcloud composer environments update ENVIRONMENT_NAME \
--airflow-database-retention-days RETENTION_PERIOD
Reemplaza lo siguiente:
ENVIRONMENT_NAME
: Es el nombre de tu entorno.LOCATION
: Es la región en la que se encuentra el entorno.RETENTION_PERIOD
: Es un valor personalizado para el período de retención entre 30 y 730 días.
Ejemplo:
gcloud composer environments update example-environment \
--location us-central1 \
--airflow-database-retention-days 60
API
Realiza una solicitud a la API de
environments.patch
.En esta solicitud, realiza lo siguiente:
En el parámetro
updateMask
, especifica 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"
}
}
}
}
Reemplaza lo siguiente:
RETENTION_MODE
:RETENTION_MODE_ENABLED
habilita la retención de la base de datos yRETENTION_MODE_DISABLED
la inhabilita.RETENTION_PERIOD
: Es un valor personalizado para el período de retención 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
en 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 retención de la base de datos. RETENTION_MODE_DISABLED
inhabilita la retención de la base de datos.
- (Predeterminado)
(Opcional)
retention_days
especifica un período de retenció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
}
}
}
}
Reemplaza lo siguiente:
ENVIRONMENT_NAME
: Es el nombre de tu entorno.LOCATION
: Es la región en la que se encuentra el entorno.RETENTION_MODE
: Modo de retención de la base de datos (RETENTION_MODE_ENABLED
oRETENTION_MODE_DISABLED
).RETENTION_PERIOD
: Es un valor personalizado para el período de retención 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
}
}
Cómo verificar el estado de retención de la base de datos
Console
En la consola de Google Cloud , ve a la página Entornos.
En la lista de entornos, haz clic en el nombre de tu entorno. Se abrirá la página Detalles del entorno.
Ve a la pestaña Configuración del entorno.
El elemento Política de retención de datos de la base de datos muestra la política de retención de datos actual de la base de datos de tu entorno.
gcloud
gcloud composer environments describe ENVIRONMENT_NAME \
--location LOCATION \
--format="value(config.dataRetentionConfig.airflowMetadataRetentionConfig.retentionMode)"
Consulta los registros de retención de la base de datos
Puedes ver los registros de la operación de retención de la base de datos en Detalles del entorno > Registros >. Los registros se encuentran en Todos los registros > Registros de Composer > Retención de la base de datos.
Las entradas del registro indican 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 Visualiza los registros.