Configurar a política de retenção do banco de dados

Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1

Esta página explica como configurar uma política de retenção para o banco de dados do Airflow, para que os registros mais antigos sejam removidos automaticamente dele, o que ajuda a manter o tamanho do banco de dados do Airflow.

A política de retenção de banco de dados está disponível apenas no Cloud Composer 3.

Sobre a retenção de banco de dados

Com o passar do tempo, o banco de dados do Airflow do seu ambiente armazena cada vez mais dados. Esses dados incluem registros e informações relacionados a execuções anteriores de DAG, tarefas e outras operações do Airflow.

Se você definir um período de armazenamento para o banco de dados do Airflow no seu ambiente:

  • O Cloud Composer remove registros relacionados a execuções de DAG e sessões de usuário mais antigas que o período especificado.
  • As informações mais recentes da execução de DAG são sempre retidas, mesmo após o período de armazenamento dos registros relacionados.
  • O período de armazenamento padrão é de 60 dias. É possível definir um período de armazenamento personalizado de 30 a 730 dias.

As operações de retenção de banco de dados funcionam da seguinte maneira:

  • A retenção do banco de dados fica ativada por padrão. É possível ativar ou desativar esse recurso para um ambiente novo ou atual. O período de armazenamento padrão é de 60 dias.

  • Uma operação de limpeza é executada automaticamente pelo menos uma vez em até 24 horas após você ativar a retenção do banco de dados. Não é possível definir uma programação personalizada para essa operação. O Cloud Composer não executa a operação de limpeza imediatamente após ativar a retenção do banco de dados ou mudar o período de armazenamento.

  • A operação de limpeza não bloqueia as tabelas do banco de dados do Airflow e mantém a consistência dos dados, mesmo que seja interrompida.

  • Não é possível reduzir o tamanho do armazenamento do Cloud SQL com operações de retenção de banco de dados após o aumento. As operações de retenção de banco de dados servem apenas para impedir que o banco de dados do Airflow aumente com o tempo. Para mais informações, consulte o problema conhecido correspondente.

Antes de começar

  • Se o ambiente executar o DAG de limpeza do banco de dados em uma programação, você poderá interromper o DAG depois de configurar a política de retenção do banco de dados. A abordagem de DAG de manutenção está obsoleta no Cloud Composer 3. Esse DAG faz trabalho redundante, e você pode reduzir o consumo de recursos interrompendo-o.

Configurar a retenção do banco de dados para um novo ambiente

Para ativar ou desativar a retenção do banco de dados ou definir um período de retenção personalizado, faça o seguinte ao criar um ambiente:

Console

Na página Criar ambiente:

  1. Na seção Política de retenção de dados do banco de dados, configure a retenção do banco de dados:

    • (Padrão) Para ativar a retenção do banco de dados, selecione Ativar a política de retenção de dados do banco de dados.

    • Para desativar a retenção de dados do banco de dados, selecione Desativar a política de retenção de dados do banco de dados.

  2. (Opcional) Para definir um período de armazenamento personalizado, no campo Período de armazenamento, especifique um período de armazenamento entre 30 e 730 dias.

gcloud

Quando você cria um ambiente, o argumento --airflow-database-retention-days ativa a retenção do banco de dados e especifica o período de armazenamento, em dias.

Esse argumento precisa ser sempre especificado explicitamente:

  • Um valor de 0 desativa a retenção do banco de dados.
  • Especifique 60 para usar o valor padrão.
  • Especifique um valor para definir um período de armazenamento de banco de dados personalizado entre 30 e 730 dias.
gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --image-version composer-3-airflow-2.10.5-build.6 \
    --airflow-database-retention-days RETENTION_PERIOD

Substitua:

  • ENVIRONMENT_NAME: o nome do ambiente;
  • LOCATION: a região em que o ambiente está localizado.
  • RETENTION_PERIOD: um valor personalizado para o período de armazenamento.

Exemplo:

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

API

Ao criar um ambiente, no recurso Ambiente > EnvironmentConfig > [DataRetentionConfig][api-res-data-retention-config] > AirflowMetadataRetentionPolicyConfig, especifique os parâmetros de retenção do banco de dados:

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

Substitua:

  • ENVIRONMENT_NAME: o nome do ambiente;
  • LOCATION: a região em que o ambiente está localizado.
  • RETENTION_PERIOD: um valor personalizado para o período de armazenamento entre 30 e 730 dias.

Exemplo:


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

Ao criar um ambiente, o bloco airflow_metadata_retention_config no data_retention_config especifica os parâmetros de retenção do banco de dados:

  • O campo retention_mode especifica o modo de retenção do banco de dados:

    • (Padrão) RETENTION_MODE_ENABLED ativa a retenção do banco de dados.
    • RETENTION_MODE_DISABLED desativa a retenção do banco de dados.
  • (Opcional) retention_days especifica um período de armazenamento personalizado. O valor padrão é 60 dias.

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

Substitua:

  • ENVIRONMENT_NAME: o nome do ambiente;
  • LOCATION: a região em que o ambiente está localizado.
  • RETENTION_MODE: modo de retenção do banco de dados (RETENTION_MODE_ENABLED ou RETENTION_MODE_DISABLED).
  • RETENTION_PERIOD: um valor personalizado para o período de armazenamento entre 30 e 730 dias.

Exemplo:

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 a retenção do banco de dados para um ambiente atual

Para ativar ou desativar a retenção do banco de dados em um ambiente e definir um período de armazenamento personalizado:

Console

  1. No Google Cloud console, acesse a página Ambientes.

    Acessar "Ambientes"

  2. Na lista de ambientes, clique no nome do seu ambiente. A página Detalhes do ambiente é aberta.

  3. Acesse a guia Configuração do ambiente.

  4. O item Política de retenção de dados do banco de dados lista a política de retenção de dados do banco de dados atual do seu ambiente.

  5. Clique em Editar.

  6. Defina o status da retenção do banco de dados:

    • Para ativar a retenção do banco de dados, selecione Ativar a política de retenção de dados do banco de dados.

    • Para desativar a retenção de banco de dados, desmarque Ativar a política de retenção de dados do banco de dados.

  7. (Opcional) Para definir um período de armazenamento personalizado, no campo Período de armazenamento, especifique um período de armazenamento entre 30 e 730 dias.

gcloud

O argumento --airflow-database-retention-days ativa a retenção do banco de dados e especifica o período de armazenamento em dias. Um valor de 0 desativa a retenção do banco de dados.

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

Substitua:

  • ENVIRONMENT_NAME: o nome do ambiente;
  • LOCATION: a região em que o ambiente está localizado.
  • RETENTION_PERIOD: um valor personalizado para o período de armazenamento entre 30 e 730 dias.

Exemplo:

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

API

  1. Crie uma solicitação de API environments.patch.

  2. Nesta solicitação:

    1. No parâmetro updateMask, especifique a máscara config.dataRetentionConfig.airflowMetadataRetentionConfig.

    2. No corpo da solicitação, especifique os parâmetros de retenção do banco de dados.

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

Substitua:

  • RETENTION_MODE: RETENTION_MODE_ENABLED ativa a retenção do banco de dados, RETENTION_MODE_DISABLED desativa a retenção do banco de dados.
  • RETENTION_PERIOD: um valor personalizado para o período de armazenamento entre 30 e 730 dias. Se este campo for omitido, o valor padrão será usado (60 dias).

Exemplo:

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

O bloco airflow_metadata_retention_config no data_retention_config especifica os parâmetros de retenção do banco de dados:

  • O campo retention_mode especifica o modo de retenção do banco de dados:

    • (Padrão) RETENTION_MODE_ENABLED ativa a retenção do banco de dados.
    • RETENTION_MODE_DISABLED desativa a retenção do banco de dados.
  • (Opcional) retention_days especifica um período de armazenamento personalizado. O valor padrão é 60 dias.

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

Substitua:

  • ENVIRONMENT_NAME: o nome do ambiente;
  • LOCATION: a região em que o ambiente está localizado.
  • RETENTION_MODE: modo de retenção do banco de dados (RETENTION_MODE_ENABLED ou RETENTION_MODE_DISABLED).
  • RETENTION_PERIOD: um valor personalizado para o período de armazenamento entre 30 e 730 dias.

Exemplo:

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

Verificar o status de retenção do banco de dados

Console

  1. No console Google Cloud , acesse a página Ambientes.

    Acessar "Ambientes"

  2. Na lista de ambientes, clique no nome do seu ambiente. A página Detalhes do ambiente é aberta.

  3. Acesse a guia Configuração do ambiente.

  4. O item Política de retenção de dados do banco de dados lista a política de retenção de dados do banco de dados atual do seu ambiente.

gcloud

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

Conferir registros de retenção do banco de dados

É possível conferir os registros de operação de retenção de banco de dados em Detalhes do ambiente > Registros >. Eles estão localizados em Todos os registros > Registros do Composer > Retenção de banco de dados.

As entradas de registro listam o status da operação e o tamanho do banco de dados.

Para mais informações sobre como visualizar os registros do Cloud Composer, consulte Conferir registros.

A seguir