Configurer la règle de conservation de la base de données

Managed Airflow (3e génération) | Managed Airflow (2e génération) | Managed Airflow (ancienne 1re génération)

Cette page explique comment configurer une règle de conservation pour la base de données Airflow. Les anciens enregistrements sont ainsi automatiquement supprimés, ce qui permet de maintenir la taille de la base de données Airflow.

La règle de conservation des bases de données n'est disponible que dans Managed Airflow (3e génération).

À propos de la conservation des bases de données

Au fil du temps, la base de données Airflow de votre environnement stocke de plus en plus de données. Ces données incluent des informations et des journaux liés aux exécutions DAG, aux tâches et aux autres opérations Airflow passées.

Si vous définissez une période de conservation pour la base de données Airflow dans votre environnement :

  • Managed Airflow supprime les enregistrements liés aux exécutions de DAG et aux sessions utilisateur plus anciennes que la période spécifiée.
  • Les informations sur la dernière exécution du DAG sont toujours conservées, même après la période de conservation des enregistrements associés.
  • La période de conservation par défaut est de 60 jours. Vous pouvez définir une période de conservation personnalisée comprise entre 30 et 730 jours.

Les opérations de conservation des bases de données fonctionnent de la manière suivante :

  • Par défaut, la conservation des bases de données est activée. Vous pouvez l'activer ou la désactiver pour un environnement nouveau ou existant. La période de conservation par défaut est de 60 jours.

  • Une opération de nettoyage s'exécute automatiquement au moins une fois dans les 24 heures suivant l'activation de la conservation de la base de données. Il n'est pas possible de définir une programmation personnalisée pour cette opération. Managed Airflow n'effectue pas l'opération de nettoyage immédiatement après l'activation de la conservation de la base de données ou la modification de la période de conservation.

  • L'opération de nettoyage ne verrouille pas les tables de la base de données Airflow et maintient la cohérence des données même si elle est interrompue.

  • Il n'est pas possible de réduire la taille de stockage Cloud SQL via des opérations de conservation de la base de données après l'avoir augmentée. Les opérations de conservation de la base de données permettent uniquement d'empêcher la base de données Airflow de croître au fil du temps. Pour en savoir plus, consultez le problème connu correspondant.

  • L'opération de nettoyage évalue l'ancienneté d'une exécution de DAG en fonction de sa date logique, et non de l'heure à laquelle la tâche a été exécutée. Lorsqu'un intervalle de remplissage se situe en dehors de la période de conservation actuelle, le processus de conservation peut supprimer rapidement ces exécutions nouvellement créées, car leurs dates logiques sont antérieures à la limite de conservation. Par conséquent, ces exécutions ne sont pas visibles dans l'UI Airflow. Pour éviter cela, augmentez temporairement la limite de conservation afin de couvrir la date la plus ancienne de votre intervalle de remplissage avant d'exécuter l'opération de remplissage.

Avant de commencer

  • Si votre environnement exécute le DAG de nettoyage de la base de données selon une planification, vous pouvez arrêter le DAG après avoir configuré la règle de conservation de la base de données. L'approche des DAG de maintenance est obsolète dans Managed Airflow (3e génération). Ce DAG effectue un travail redondant. Vous pouvez réduire la consommation de ressources en l'arrêtant.

Configurer la conservation de la base de données pour un nouvel environnement

Pour activer ou désactiver la conservation de la base de données, ou définir une période de conservation personnalisée lorsque vous créez un environnement :

Console

Sur la page Créer un environnement :

  1. Dans la section Règle de conservation des données de la base de données, configurez la conservation de la base de données :

    • (Par défaut) Pour activer la conservation des données de la base de données, sélectionnez Activer la règle de conservation des données de la base de données.

    • Pour désactiver la conservation des données de la base de données, sélectionnez Désactiver la règle de conservation des données de la base de données.

  2. (Facultatif) Pour définir une durée de conservation personnalisée, spécifiez une durée comprise entre 30 et 730 jours dans le champ Durée de conservation.

gcloud

Lorsque vous créez un environnement, l'argument --airflow-database-retention-days active la conservation de la base de données et spécifie la période de conservation, en jours.

Cet argument doit toujours être spécifié explicitement :

  • La valeur 0 désactive la conservation de la base de données.
  • Spécifiez 60 pour utiliser la valeur par défaut.
  • Spécifiez une valeur pour définir une période de conservation personnalisée pour la base de données, comprise entre 30 et 730 jours.
gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --image-version composer-3-airflow-2.11.1-build.9 \
    --airflow-database-retention-days RETENTION_PERIOD

Remplacez les éléments suivants :

  • ENVIRONMENT_NAME : nom de votre environnement
  • LOCATION : région où se trouve l'environnement.
  • RETENTION_PERIOD : valeur personnalisée pour la période de conservation.

Exemple :

gcloud composer environments create example-environment \
    --location us-central1 \
    --airflow-database-retention-days 60

API

Lorsque vous créez un environnement, dans la ressource Environment > EnvironmentConfig > [DataRetentionConfig][api-res-data-retention-config] > AirflowMetadataRetentionPolicyConfig, spécifiez les paramètres de conservation de la base de données :

{
  "name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
  "config": {
    "dataRetentionConfig": {
      "airflowMetadataRetentionConfig": {
        "retentionMode": "RETENTION_MODE_ENABLED",
        "retentionDays": "RETENTION_PERIOD"
      }
    }
  }
}

Remplacez les éléments suivants :

  • ENVIRONMENT_NAME : nom de votre environnement
  • LOCATION : région où se trouve l'environnement.
  • RETENTION_PERIOD : valeur personnalisée pour la période de conservation (entre 30 et 730 jours).

Exemple :


// 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

Lorsque vous créez un environnement, le bloc airflow_metadata_retention_config dans data_retention_config spécifie les paramètres de conservation de la base de données :

  • Le champ retention_mode spécifie le mode de conservation de la base de données :

    • (Par défaut) RETENTION_MODE_ENABLED active la conservation de la base de données.
    • RETENTION_MODE_DISABLED désactive la conservation de la base de données.
  • (Facultatif) retention_days spécifie une période de conservation personnalisée. La valeur par défaut est de 60 jours.

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
      }
    }
  }
}

Remplacez les éléments suivants :

  • ENVIRONMENT_NAME : nom de votre environnement
  • LOCATION : région où se trouve l'environnement.
  • RETENTION_MODE : mode de conservation de la base de données (RETENTION_MODE_ENABLED ou RETENTION_MODE_DISABLED).
  • RETENTION_PERIOD : valeur personnalisée pour la période de conservation (entre 30 et 730 jours).

Exemple :

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
      }
    }

Configurer la conservation de la base de données pour un environnement existant

Pour activer ou désactiver la conservation de la base de données pour un environnement existant et définir une période de conservation personnalisée :

Console

  1. Dans la console Google Cloud , accédez à la page Environnements.

    Accéder à la page Environnements

  2. Dans la liste des environnements, cliquez sur le nom de votre environnement. La page Détails de l'environnement s'ouvre.

  3. Accédez à l'onglet Configuration de l'environnement.

  4. L'élément Règles de conservation des données de la base de données liste les règles de conservation des données de la base de données actuelles de votre environnement.

  5. Cliquez sur Modifier.

  6. Définissez l'état de la conservation de la base de données :

    • Pour activer la conservation de la base de données, sélectionnez Activer la règle de conservation des données de la base de données.

    • Pour désactiver la conservation des données de la base de données, décochez Activer la règle de conservation des données de la base de données.

  7. (Facultatif) Pour définir une durée de conservation personnalisée, spécifiez une durée comprise entre 30 et 730 jours dans le champ Durée de conservation.

gcloud

L'argument --airflow-database-retention-days permet la conservation de la base de données et spécifie la période de conservation en jours. La valeur 0 désactive la conservation de la base de données.

gcloud composer environments update ENVIRONMENT_NAME \
    --airflow-database-retention-days RETENTION_PERIOD

Remplacez les éléments suivants :

  • ENVIRONMENT_NAME : nom de votre environnement
  • LOCATION : région où se trouve l'environnement.
  • RETENTION_PERIOD : valeur personnalisée pour la période de conservation (entre 30 et 730 jours).

Exemple :

gcloud composer environments update example-environment \
    --location us-central1 \
    --airflow-database-retention-days 60

API

  1. Rédigez une requête API environments.patch.

  2. Dans cette requête :

    1. Dans le paramètre updateMask, spécifiez le masque config.dataRetentionConfig.airflowMetadataRetentionConfig.

    2. Dans le corps de la requête, spécifiez les paramètres de conservation de la base de données.

{
  "config": {
    "dataRetentionConfig": {
      "airflowMetadataRetentionConfig": {
        "retentionMode": "RETENTION_MODE",
        "retentionDays": "RETENTION_PERIOD"
      }
    }
  }
}

Remplacez :

  • RETENTION_MODE : RETENTION_MODE_ENABLED active la conservation de la base de données, RETENTION_MODE_DISABLED la désactive.
  • RETENTION_PERIOD : valeur personnalisée pour la période de conservation (entre 30 et 730 jours). Si ce champ est omis, la valeur par défaut (60 jours) est utilisée.

Exemple :

// 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

Le bloc airflow_metadata_retention_config du data_retention_config spécifie les paramètres de conservation de la base de données :

  • Le champ retention_mode spécifie le mode de conservation de la base de données :

    • (Par défaut) RETENTION_MODE_ENABLED active la conservation de la base de données.
    • RETENTION_MODE_DISABLED désactive la conservation de la base de données.
  • (Facultatif) retention_days spécifie une période de conservation personnalisée. La valeur par défaut est de 60 jours.

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
      }
    }
  }
}

Remplacez les éléments suivants :

  • ENVIRONMENT_NAME : nom de votre environnement
  • LOCATION : région où se trouve l'environnement.
  • RETENTION_MODE : mode de conservation de la base de données (RETENTION_MODE_ENABLED ou RETENTION_MODE_DISABLED).
  • RETENTION_PERIOD : valeur personnalisée pour la période de conservation (entre 30 et 730 jours).

Exemple :

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
      }
    }

Vérifier l'état de la conservation des données de la base de données

Console

  1. Dans la console Google Cloud , accédez à la page Environnements.

    Accéder à la page Environnements

  2. Dans la liste des environnements, cliquez sur le nom de votre environnement. La page Détails de l'environnement s'ouvre.

  3. Accédez à l'onglet Configuration de l'environnement.

  4. L'élément Règles de conservation des données de la base de données liste les règles de conservation des données de la base de données actuelles de votre environnement.

gcloud

gcloud composer environments describe ENVIRONMENT_NAME \
  --location LOCATION \
  --format="value(config.dataRetentionConfig.airflowMetadataRetentionConfig.retentionMode)"

Afficher les journaux de conservation de la base de données

Vous pouvez consulter les journaux des opérations de conservation des bases de données sur la page Détails de l'environnement > Journaux >. Les journaux se trouvent dans Tous les journaux > Journaux Composer > Conservation des bases de données.

Les entrées du journal indiquent l'état de l'opération et la taille de la base de données.

Pour en savoir plus sur l'affichage des journaux Managed Service pour Apache Airflow, consultez Afficher les journaux.

Étapes suivantes