Configura la política de retención de la base de datos

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:

  1. 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.

  2. (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.
  • (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 o RETENTION_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

  1. En la consola de Google Cloud , ve a la página Entornos.

    Ir a Entornos

  2. En la lista de entornos, haz clic en el nombre de tu entorno. Se abrirá la página Detalles del entorno.

  3. Ve a la pestaña Configuración del entorno.

  4. 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.

  5. Haz clic en Editar.

  6. 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.

  7. (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

  1. Realiza una solicitud a la API de environments.patch.

  2. En esta solicitud, realiza lo siguiente:

    1. En el parámetro updateMask, especifica la máscara config.dataRetentionConfig.airflowMetadataRetentionConfig.

    2. 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 y RETENTION_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.
  • (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 o RETENTION_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

  1. En la consola de Google Cloud , ve a la página Entornos.

    Ir a Entornos

  2. En la lista de entornos, haz clic en el nombre de tu entorno. Se abrirá la página Detalles del entorno.

  3. Ve a la pestaña Configuración del entorno.

  4. 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.

¿Qué sigue?