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:
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.
(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
ouRETENTION_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
No console do Google Cloud, acesse a página Ambientes.
Na lista de ambientes, clique no nome do seu ambiente. A página Detalhes do ambiente é aberta.
Acesse a guia Configuração do ambiente.
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.
Clique em Editar.
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.
(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
Crie uma solicitação de API
environments.patch
.Nesta solicitação:
No parâmetro
updateMask
, especifique a máscaraconfig.dataRetentionConfig.airflowMetadataRetentionConfig
.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
ouRETENTION_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
No console do Google Cloud, acesse a página Ambientes.
Na lista de ambientes, clique no nome do seu ambiente. A página Detalhes do ambiente é aberta.
Acesse a guia Configuração do ambiente.
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.