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

Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1

Nesta página, explicamos 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 e não está ativada por padrão.

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 retenção 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 do DAG são sempre retidas, mesmo após o período de retenção dos registros relacionados.
  • O período de armazenamento padrão é de 60 dias. É possível definir um período de retenção 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 desativada por padrão. É possível ativar ou desativar esse recurso em um ambiente novo ou atual. O período de retenção padrão é de 60 dias.

  • Uma operação de limpeza é executada automaticamente pelo menos uma vez em 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 depois que você ativa a retenção do banco de dados ou muda o período de retenção. É possível executar essa operação sob demanda, se necessário.

  • 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 depois que ele foi aumentado. 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. Esse DAG faz um 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:

    • 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 retenção, 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 retenção 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.2-build.9 \
    --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 retenção.

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 retenção 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:

    • RETENTION_MODE_ENABLED ativa a retenção do banco de dados.
    • (Padrão) RETENTION_MODE_DISABLED desativa a retenção do banco de dados.
  • (Opcional) retention_days especifica um período de retenção personalizado. O valor padrão é de 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 retenção 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 retenção personalizado, faça o seguinte:

Console

  1. No console do 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.

  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 retenção 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 retenção 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 retenção 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:

    • RETENTION_MODE_ENABLED ativa a retenção do banco de dados.
    • (Padrão) RETENTION_MODE_DISABLED desativa a retenção do banco de dados.
  • (Opcional) retention_days especifica um período de retenção personalizado. O valor padrão é de 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 retenção 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 do 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