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:
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.
(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.
- (Predefinição)
(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
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
}
}
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
Na Google Cloud consola, aceda à página Ambientes.
Na lista de ambientes, clique no nome do seu ambiente. É apresentada a página Detalhes do ambiente.
Aceda ao separador Configuração do ambiente.
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.
Clique em Edit.
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.
(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
Construa um pedido de API
environments.patch
.Neste pedido:
No parâmetro
updateMask
, especifique a máscaraconfig.dataRetentionConfig.airflowMetadataRetentionConfig
.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.
- (Predefinição)
(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
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
}
}
Verifique o estado de retenção da base de dados
Consola
Na Google Cloud consola, aceda à página Ambientes.
Na lista de ambientes, clique no nome do seu ambiente. É apresentada a página Detalhes do ambiente.
Aceda ao separador Configuração do ambiente.
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.