Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1
このページでは、古いレコードが Airflow データベースから自動的に削除され、Airflow データベースのサイズを維持できるように、Airflow データベースの保持ポリシーを構成する方法について説明します。
データベース保持ポリシーは、Cloud Composer 3 でのみ使用できます。
データベースの保持について
時間の経過とともに、環境の Airflow データベースに保存されるデータは増えていきます。このデータには、過去の DAG の実行やタスクなどの Airflow オペレーションに関連する情報とログが含まれます。
環境で Airflow データベースの保持期間を設定した場合:
- Cloud Composer は、指定された期間よりも古い DAG 実行とユーザー セッションに関連するレコードを削除します。
- 関連するレコードの保持期間が経過した後でも、最新の DAG 実行情報は常に保持されます。
- デフォルトの保持期間は 60 日です。カスタム保持期間は 30 ~ 730 日の範囲で設定できます。
データベース保持オペレーションは次のように機能します。
デフォルトでは、データベースの保持が有効になっています。新しい環境または既存の環境で有効または無効にできます。デフォルトの保持期間は 60 日です。
クリーンアップ オペレーションは、データベース保持を有効にしてから 24 時間以内に少なくとも 1 回自動的に実行されます。このオペレーションのカスタム スケジュールを設定することはできません。Cloud Composer は、データベースの保持を有効にした直後や保持期間を変更した直後にクリーンアップ オペレーションを実行しません。
クリーンアップ オペレーションは Airflow データベース テーブルをロックせず、中断されてもデータの整合性を維持します。
Cloud SQL のストレージ サイズを増やした後で、データベースの保持オペレーションによってストレージ サイズを減らすことはできません。データベース保持オペレーションは、Airflow データベースが時間の経過とともに増加しないようにするのに役立ちます。詳細については、対応する既知の問題をご覧ください。
始める前に
- 環境でデータベース クリーンアップ DAG がスケジュールに従って実行されている場合は、データベース保持ポリシーを構成した後に DAG を停止できます。Cloud Composer 3 では、メンテナンス 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.5-build.14 \
--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 ログの表示の詳細については、ログを表示するをご覧ください。