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 스토리지 크기가 증가한 후에는 데이터베이스 보관 작업을 통해 Cloud SQL 스토리지 크기를 줄일 수 없습니다. 데이터베이스 보관 작업은 시간이 지남에 따라 Airflow 데이터베이스가 증가하지 않도록 하는 데만 도움이 됩니다. 자세한 내용은 해당 알려진 문제를 참고하세요.
시작하기 전에
- 환경에서 일정에 따라 데이터베이스 정리 DAG를 실행하는 경우 데이터베이스 보관 정책을 구성한 후 DAG를 중지할 수 있습니다. 이 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.2-build.9 \
--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.patch
API 요청을 생성합니다.이 요청의 작성 방법:
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 로그 보기에 대한 자세한 내용은 로그 보기를 참고하세요.