Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1
이 페이지에서는 Airflow 데이터베이스의 보관 정책을 구성하여 오래된 레코드가 자동으로 삭제되도록 하는 방법을 설명합니다. 이렇게 하면 Airflow 데이터베이스의 크기를 유지하는 데 도움이 됩니다.
데이터베이스 보관 정책은 Cloud Composer 3에서만 사용할 수 있습니다.
데이터베이스 보관 정보
시간이 지남에 따라 환경의 Airflow 데이터베이스에는 더 많은 데이터가 저장됩니다. 이 데이터에는 과거 DAG 실행, 태스크, 기타 Airflow 작업과 관련된 정보 및 로그가 포함됩니다.
환경에서 Airflow 데이터베이스의 보관 기간을 설정하는 경우:
- Cloud Composer는 지정된 기간보다 오래된 DAG 실행 및 사용자 세션과 관련된 레코드를 삭제합니다.
- 관련 레코드의 보관 기간이 지난 후에도 가장 최근의 DAG 실행 정보는 항상 유지됩니다.
- 기본 보관 기간은 60일입니다. 30~730일의 맞춤 보관 기간을 설정할 수 있습니다.
데이터베이스 보관 작업은 다음과 같이 작동합니다.
- 기본적으로 데이터베이스 보관이 사용 설정되어 있습니다. 새 환경 또는 기존 환경에 대해 사용 설정하거나 사용 중지할 수 있습니다. 기본 보관 기간은 60일입니다. 
- 정리 작업은 데이터베이스 보관을 사용 설정한 후 24시간 이내에 한 번 이상 자동으로 실행됩니다. 이 작업에 대한 맞춤 일정을 설정할 수 없습니다. 데이터베이스 보존을 사용 설정하거나 보존 기간을 변경한 후 Cloud Composer에서 정리 작업을 즉시 실행하지는 않습니다. 
- 정리 작업은 Airflow 데이터베이스 테이블을 잠그지 않으며 중단되더라도 데이터 일관성을 유지합니다. 
- Cloud SQL 스토리지 크기가 증가한 후에는 데이터베이스 보관 작업을 통해 스토리지 크기를 줄일 수 없습니다. 데이터베이스 보관 작업은 시간이 지남에 따라 Airflow 데이터베이스가 증가하지 않도록 하는 데만 도움이 됩니다. 자세한 내용은 해당 알려진 문제를 참고하세요. 
시작하기 전에
- 환경에서 데이터베이스 정리 DAG를 일정에 따라 실행하는 경우 데이터베이스 보관 정책을 구성한 후 DAG를 중지할 수 있습니다. 유지보수 DAG 접근 방식은 Cloud Composer 3에서 지원되지 않습니다. 이 DAG는 중복 작업을 실행하므로 중지하면 리소스 소비를 줄일 수 있습니다.
새 환경의 데이터베이스 보관 구성
환경을 만들 때 데이터베이스 보관을 사용 설정 또는 중지하거나 맞춤 데이터베이스 보관 기간을 설정하려면 다음 단계를 따르세요.
콘솔
환경 만들기 페이지에서 다음을 수행합니다.
- 데이터베이스 데이터 보관 정책 섹션에서 데이터베이스 보관을 구성합니다. - (기본값) 데이터베이스 보관을 사용 설정하려면 데이터베이스 데이터 보관 정책 사용 설정을 선택합니다. 
- 데이터베이스 보관을 사용 중지하려면 데이터베이스 데이터 보관 정책 사용 중지를 선택합니다. 
 
- (선택사항) 맞춤 보관 기간을 설정하려면 보관 기간 필드에 30~730일의 보관 기간을 지정합니다. 
gcloud
환경을 만들 때 --airflow-database-retention-days 인수는 데이터베이스 보관을 사용 설정하고 보관 기간(일)을 지정합니다.
이 인수는 항상 명시적으로 지정해야 합니다.
- 값이 0이면 데이터베이스 보관이 사용 중지됩니다.
- 기본값을 사용하려면 60를 지정합니다.
- 30~730일 사이의 맞춤 데이터베이스 보관 기간을 설정할 값을 지정합니다.
gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --image-version composer-3-airflow-2.10.5-build.16 \
    --airflow-database-retention-days RETENTION_PERIOD
다음을 바꿉니다.
- ENVIRONMENT_NAME: 환경의 이름입니다.
- LOCATION: 환경이 위치한 리전
- RETENTION_PERIOD: 보관 기간의 맞춤 값입니다.
예:
gcloud composer environments create example-environment \
    --location us-central1 \
    --airflow-database-retention-days 60
API
환경을 만들 때 Environment > EnvironmentConfig > [DataRetentionConfig][api-res-data-retention-config] > AirflowMetadataRetentionPolicyConfig 리소스에서 데이터베이스 보관 매개변수를 지정합니다.
{
  "name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
  "config": {
    "dataRetentionConfig": {
      "airflowMetadataRetentionConfig": {
        "retentionMode": "RETENTION_MODE_ENABLED",
        "retentionDays": "RETENTION_PERIOD"
      }
    }
  }
}
다음을 바꿉니다.
- ENVIRONMENT_NAME: 환경의 이름입니다.
- LOCATION: 환경이 위치한 리전
- RETENTION_PERIOD: 30~730일 사이의 보관 기간에 대한 맞춤 값입니다.
예:
// 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
환경을 만들 때 data_retention_config의 airflow_metadata_retention_config 블록은 데이터베이스 보관 매개변수를 지정합니다.
- retention_mode필드는 데이터베이스 보관 모드를 지정합니다.- (기본값) RETENTION_MODE_ENABLED는 데이터베이스 보관을 사용 설정합니다.
- RETENTION_MODE_DISABLED은 데이터베이스 보관을 사용 중지합니다.
 
- (기본값) 
- (선택사항) - retention_days는 맞춤 보관 기간을 지정합니다. 기본값은 60일입니다.
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
      }
    }
  }
}
다음을 바꿉니다.
- ENVIRONMENT_NAME: 환경의 이름입니다.
- LOCATION: 환경이 위치한 리전
- RETENTION_MODE: 데이터베이스 보관 모드(- RETENTION_MODE_ENABLED또는- RETENTION_MODE_DISABLED)입니다.
- RETENTION_PERIOD: 30~730일 사이의 보관 기간에 대한 맞춤 값입니다.
예:
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
      }
    }
기존 환경의 데이터베이스 보관 구성
기존 환경의 데이터베이스 보관을 사용 설정 또는 사용 중지하고 맞춤 보관 기간을 설정하려면 다음 단계를 따르세요.
콘솔
- Google Cloud 콘솔에서 환경 페이지로 이동합니다. 
- 환경 목록에서 환경 이름을 클릭합니다. 환경 세부정보 페이지가 열립니다. 
- 환경 구성 탭으로 이동합니다. 
- 데이터베이스 데이터 보관 정책 항목에는 환경의 현재 데이터베이스 데이터 보관 정책이 표시됩니다. 
- 수정을 클릭합니다. 
- 데이터베이스 보관 상태를 설정합니다. - 데이터베이스 보관을 사용 설정하려면 데이터베이스 데이터 보관 정책 사용 설정을 선택합니다. 
- 데이터베이스 보관을 사용 중지하려면 데이터베이스 데이터 보관 정책 사용 설정을 선택 해제합니다. 
 
- (선택사항) 맞춤 보관 기간을 설정하려면 보관 기간 필드에 30~730일의 보관 기간을 지정합니다. 
gcloud
--airflow-database-retention-days 인수는 데이터베이스 보관을 사용 설정하고 보관 기간을 일수로 지정합니다. 값이 0이면 데이터베이스 보관이 사용 중지됩니다.
gcloud composer environments update ENVIRONMENT_NAME \
    --airflow-database-retention-days RETENTION_PERIOD
다음을 바꿉니다.
- ENVIRONMENT_NAME: 환경의 이름입니다.
- LOCATION: 환경이 위치한 리전
- RETENTION_PERIOD: 30~730일 사이의 보관 기간에 대한 맞춤 값입니다.
예:
gcloud composer environments update example-environment \
    --location us-central1 \
    --airflow-database-retention-days 60
API
- environments.patchAPI 요청을 생성합니다.
- 이 요청의 작성 방법: - updateMask매개변수에서- config.dataRetentionConfig.airflowMetadataRetentionConfig마스크를 지정합니다.
- 요청 본문에서 데이터베이스 보관 매개변수를 지정합니다. 
 
{
  "config": {
    "dataRetentionConfig": {
      "airflowMetadataRetentionConfig": {
        "retentionMode": "RETENTION_MODE",
        "retentionDays": "RETENTION_PERIOD"
      }
    }
  }
}
다음과 같이 바꿉니다.
- RETENTION_MODE:- RETENTION_MODE_ENABLED은 데이터베이스 보관을 사용 설정하고- RETENTION_MODE_DISABLED은 데이터베이스 보관을 사용 중지합니다.
- RETENTION_PERIOD: 30~730일 사이의 보관 기간에 대한 맞춤 값입니다. 이 필드를 생략하면 기본값(60일)이 사용됩니다.
예:
// 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
data_retention_config의 airflow_metadata_retention_config 블록은 데이터베이스 보관 매개변수를 지정합니다.
- retention_mode필드는 데이터베이스 보관 모드를 지정합니다.- (기본값) RETENTION_MODE_ENABLED는 데이터베이스 보관을 사용 설정합니다.
- RETENTION_MODE_DISABLED은 데이터베이스 보관을 사용 중지합니다.
 
- (기본값) 
- (선택사항) - retention_days는 맞춤 보관 기간을 지정합니다. 기본값은 60일입니다.
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
      }
    }
  }
}
다음을 바꿉니다.
- ENVIRONMENT_NAME: 환경의 이름입니다.
- LOCATION: 환경이 위치한 리전
- RETENTION_MODE: 데이터베이스 보관 모드(- RETENTION_MODE_ENABLED또는- RETENTION_MODE_DISABLED)입니다.
- RETENTION_PERIOD: 30~730일 사이의 보관 기간에 대한 맞춤 값입니다.
예:
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
      }
    }
데이터베이스 보관 상태 확인
콘솔
- Google Cloud 콘솔에서 환경 페이지로 이동합니다. 
- 환경 목록에서 환경 이름을 클릭합니다. 환경 세부정보 페이지가 열립니다. 
- 환경 구성 탭으로 이동합니다. 
- 데이터베이스 데이터 보관 정책 항목에는 환경의 현재 데이터베이스 데이터 보관 정책이 표시됩니다. 
gcloud
gcloud composer environments describe ENVIRONMENT_NAME \
  --location LOCATION \
  --format="value(config.dataRetentionConfig.airflowMetadataRetentionConfig.retentionMode)"
데이터베이스 보관 로그 보기
환경 세부정보 > 로그 >에서 데이터베이스 보관 작업 로그를 확인할 수 있습니다. 로그는 모든 로그 > Composer 로그 > 데이터베이스 보관에 있습니다.
로그 항목에는 작업 상태와 데이터베이스 크기가 나열됩니다.
Cloud Composer 로그 보기에 대한 자세한 내용은 로그 보기를 참고하세요.