Configure a política de retenção da base de dados

Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1

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

A política de retenção da base de dados só está disponível no Cloud Composer 3.

Acerca da retenção de bases de dados

À medida que o tempo passa, a base de dados do Airflow do seu ambiente armazena cada vez mais dados. Estes dados incluem informações e registos relacionados com execuções de DAG anteriores, tarefas e outras operações do Airflow.

Se definir um período de retenção para a base de dados do Airflow no seu ambiente:

  • O Cloud Composer remove registos relacionados com execuções de DAGs e sessões de utilizadores com mais tempo do que o período especificado.
  • As informações de execução do DAG mais recentes são sempre retidas, mesmo após o período de retenção para registos relacionados.
  • O período de retenção predefinido é de 60 dias. Pode definir um período de retenção personalizado de 30 a 730 dias.

As operações de retenção da base de dados funcionam da seguinte forma:

  • Por predefinição, a retenção da base de dados está ativada. Pode ativá-lo ou desativá-lo para um ambiente novo ou existente. O período de retenção predefinido é de 60 dias.

  • Uma operação de limpeza é executada automaticamente, pelo menos, uma vez no prazo de 24 horas após ativar a retenção da base de dados. Não é possível definir um agendamento personalizado para esta operação. O Cloud Composer não executa a operação de limpeza imediatamente após ativar a retenção da base de dados ou alterar o período de retenção.

  • A operação de limpeza não bloqueia as tabelas da base 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 através de operações de retenção da base de dados depois de ter sido aumentado. As operações de retenção da base de dados só ajudam a evitar que a base de dados do Airflow aumente ao longo do tempo. Para mais informações, consulte o problema conhecido correspondente.

Antes de começar

  • Se o seu ambiente executar o DAG de limpeza da base de dados de acordo com um horário, pode parar o DAG depois de configurar a política de retenção da base de dados. A abordagem DAG de manutenção está obsoleta no Cloud Composer 3. Este DAG faz trabalho redundante e pode reduzir o consumo de recursos parando-o.

Configure a retenção da base de dados para um novo ambiente

Para ativar ou desativar a retenção da base de dados ou definir um período de retenção da base de dados personalizado quando cria um ambiente:

Consola

Na página Criar ambiente:

  1. Na secção Política de retenção de dados da base de dados, configure a retenção da base de dados:

    • (Predefinição) Para ativar a retenção da base de dados, selecione Ativar política de retenção de dados da base de dados.

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

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

gcloud

Quando cria um ambiente, o argumento --airflow-database-retention-days permite a retenção da base de dados e especifica o período de retenção, em dias.

Este argumento tem de ser sempre especificado explicitamente:

  • Um valor de 0 desativa a retenção da base de dados.
  • Especifique 60 para usar o valor predefinido.
  • Especifique um valor para definir um período de retenção da base 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.11 \
    --airflow-database-retention-days RETENTION_PERIOD

Substitua o seguinte:

  • ENVIRONMENT_NAME: o nome do seu ambiente.
  • LOCATION: a região onde 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

Quando cria um ambiente, no Environment > EnvironmentConfig > [DataRetentionConfig][api-res-data-retention-config] > AirflowMetadataRetentionPolicyConfig recurso, especifique os parâmetros de retenção da base de dados:

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

Substitua o seguinte:

  • ENVIRONMENT_NAME: o nome do seu ambiente.
  • LOCATION: a região onde 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

Quando cria um ambiente, o bloco airflow_metadata_retention_config no ficheiro data_retention_config especifica os parâmetros de retenção da base de dados:

  • O campo retention_mode especifica o modo de retenção da base de dados:

    • (Predefinição) RETENTION_MODE_ENABLED ativa a retenção da base de dados.
    • RETENTION_MODE_DISABLED desativa a retenção da base de dados.
  • (Opcional) retention_days especifica um período de retenção personalizado. O valor predefinido é 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 o seguinte:

  • ENVIRONMENT_NAME: o nome do seu ambiente.
  • LOCATION: a região onde o ambiente está localizado.
  • RETENTION_MODE: modo de retenção da base 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
      }
    }

Configure a retenção da base de dados para um ambiente existente

Para ativar ou desativar a retenção da base de dados para um ambiente existente e definir um período de retenção personalizado:

Consola

  1. Na Google Cloud consola, aceda à página Ambientes.

    Aceder a Ambientes

  2. Na lista de ambientes, clique no nome do seu ambiente. É apresentada a página Detalhes do ambiente.

  3. Aceda ao separador Configuração do ambiente.

  4. O item Política de retenção de dados da base de dados apresenta a política de retenção de dados da base de dados atual do seu ambiente.

  5. Clique em Edit.

  6. Defina o estado da retenção da base de dados:

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

    • Para desativar a retenção da base de dados, desmarque a opção Ativar política de retenção de dados da base de dados.

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

gcloud

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

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

Substitua o seguinte:

  • ENVIRONMENT_NAME: o nome do seu ambiente.
  • LOCATION: a região onde 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. Construa um pedido de API environments.patch.

  2. Neste pedido:

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

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

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

Substituir:

  • RETENTION_MODE: RETENTION_MODE_ENABLED ativa a retenção da base de dados, RETENTION_MODE_DISABLED desativa a retenção da base de dados.
  • RETENTION_PERIOD: um valor personalizado para o período de retenção entre 30 e 730 dias. Se este campo for omitido, é usado o valor predefinido (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 da base de dados:

  • O campo retention_mode especifica o modo de retenção da base de dados:

    • (Predefinição) RETENTION_MODE_ENABLED ativa a retenção da base de dados.
    • RETENTION_MODE_DISABLED desativa a retenção da base de dados.
  • (Opcional) retention_days especifica um período de retenção personalizado. O valor predefinido é 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 o seguinte:

  • ENVIRONMENT_NAME: o nome do seu ambiente.
  • LOCATION: a região onde o ambiente está localizado.
  • RETENTION_MODE: modo de retenção da base 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
      }
    }

Verifique o estado de retenção da base de dados

Consola

  1. Na Google Cloud consola, aceda à página Ambientes.

    Aceder a Ambientes

  2. Na lista de ambientes, clique no nome do seu ambiente. É apresentada a página Detalhes do ambiente.

  3. Aceda ao separador Configuração do ambiente.

  4. O item Política de retenção de dados da base de dados apresenta a política de retenção de dados da base de dados atual do seu ambiente.

gcloud

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

Veja os registos de retenção da base de dados

Pode ver os registos de operações de retenção da base de dados em Detalhes do ambiente > Registos >. Os registos estão localizados em Todos os registos > Registos do Composer > Retenção da base de dados.

As entradas do registo indicam o estado da operação e o tamanho da base de dados.

Para mais informações sobre a visualização dos registos do Cloud Composer, consulte o artigo Ver registos.

O que se segue?