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 時間以内に少なくとも 1 回自動的に実行されます。このオペレーションにカスタム スケジュールを設定することはできません。
Cloud Composer は、データベースの保持を有効にしたり、保持期間を変更したりした直後にクリーンアップ オペレーションを実行しません。必要に応じて、このオペレーションをオンデマンドで実行できます。
クリーンアップ オペレーションは Airflow データベース テーブルをロックせず、中断されてもデータの整合性を維持します。
増加した後、データベース保持オペレーションで 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 ログの表示の詳細については、ログを表示するをご覧ください。