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:
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.
(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.
- (Padrão)
(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
ouRETENTION_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
No Google Cloud console, 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 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
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 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.
- (Padrão)
(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
ouRETENTION_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
No console 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.