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 se quiten automáticamente los registros más antiguos, lo que ayuda a mantener el tamaño de la base de datos de Airflow.

La política de retención de bases de datos solo está disponible en Cloud Composer 3 y no está habilitada de forma predeterminada.

Acerca de la retenció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 y tareas anteriores de DAG y otras operaciones de Airflow.

Si configuras un período de retención para la base de datos de Airflow en tu entorno, ocurrirá lo siguiente:

  • Cloud Composer quita los registros relacionados con las ejecuciones de DAG y las sesiones de usuario que sean anteriores al período especificado.
  • La información de la ejecución de DAG más reciente siempre se conserva, incluso después de que se pasa el período de retención para 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á inhabilitada. 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 habilitas la retención de la base de datos. No es posible establecer un programa personalizado 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. Si es necesario, puedes ejecutar esta operación a pedido.

  • 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 haya aumentado. 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 según un programa, puedes detenerlo después de configurar la política de retención de la base de datos. 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 establecer un período de retención personalizado de la base de datos 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:

    • 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 Inhabilitar la política de retención de datos de la base de datos.

  2. De manera opcional, para establecer un período de retención personalizado, especifica un período de retención de entre 30 y 730 días en el campo Período de retención.

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 base de datos personalizado de entre 30 y 730 días.
gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --image-version composer-3-airflow-2.10.2-build.9 \
    --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: 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: Un valor personalizado para el período de retención de 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:

    • RETENTION_MODE_ENABLED habilita la retención de la base de datos.
    • (Predeterminada) RETENTION_MODE_DISABLED inhabilita la retención de la base de datos.
  • De manera opcional, retention_days especifica un período de retención personalizado. El valor predeterminado es de 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: Es el modo de retención de la base de datos (RETENTION_MODE_ENABLED o RETENTION_MODE_DISABLED).
  • RETENTION_PERIOD: Un valor personalizado para el período de retención de 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

Para habilitar o inhabilitar la retención de la base de datos para un entorno existente y establecer un período de retención personalizado, sigue estos pasos:

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. En el elemento Política de retención de datos de la base de datos, se muestra la política de retención de datos de la base de datos actual 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, anula la selección de Habilitar la política de retención de datos de la base de datos.

  7. De manera opcional, para establecer un período de retención personalizado, especifica un período de retención de entre 30 y 730 días en el campo Período de retención.

gcloud

El argumento --airflow-database-retention-days habilita la retención de bases 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: Un valor personalizado para el período de retención de 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: Un valor personalizado para el período de retención de entre 30 y 730 días. Si se omite este campo, se usa 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:

    • RETENTION_MODE_ENABLED habilita la retención de la base de datos.
    • (Predeterminada) RETENTION_MODE_DISABLED inhabilita la retención de la base de datos.
  • De manera opcional, retention_days especifica un período de retención personalizado. El valor predeterminado es de 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: Es el modo de retención de la base de datos (RETENTION_MODE_ENABLED o RETENTION_MODE_DISABLED).
  • RETENTION_PERIOD: Un valor personalizado para el período de retención de 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
      }
    }

Verifica 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. En el elemento Política de retención de datos de la base de datos, se muestra la política de retenció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)"

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.

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 Visualiza los registros.

¿Qué sigue?