Managed Airflow(第 3 世代) | Managed Airflow(第 2 世代) | Managed Airflow(レガシー第 1 世代)
このページでは、Airflow データベースの保持ポリシーを構成して、古いレコードを自動的に削除し、Airflow データベースのサイズを維持する方法について説明します。
データベースの保持ポリシーは、Managed Airflow(第 3 世代)でのみ使用できます。
データベースの保持について
時間の経過とともに、環境の Airflow データベースに保存されるデータは増えていきます。このデータには、過去の DAG の実行やタスクなどの Airflow オペレーションに関連する情報とログが含まれます。
環境内の Airflow データベースの保持期間を設定すると、次のようになります。
- Managed Airflow は、指定した期間より古い DAG の実行とユーザー セッションに関連するレコードを削除します。
- 関連レコードの保持期間が過ぎても、最新の DAG 実行情報は常に保持されます。
- デフォルトの保持期間は 60 日です。カスタムの保持期間は 30 ~ 730 日に設定できます。
データベースの保持オペレーションは次のように機能します。
デフォルトでは、データベースの保持は有効になっています 。新しい新規または既存の環境で有効または 無効にできます。デフォルトの保持期間は 60 日です。
データベースの保持を有効にしてから 24 時間以内に、クリーンアップ オペレーションが少なくとも 1 回自動的に実行されます。このオペレーションのカスタム スケジュールを設定することはできません。データベースの保持を有効にした直後や、保持期間を変更した直後に、Managed Airflow がクリーンアップ オペレーションを実行することはありません。
クリーンアップ オペレーションは Airflow データベース テーブルをロックせず、中断されてもデータの整合性を維持します。
Cloud SQL のストレージ サイズを増やした後、データベースの保持オペレーションで減らすことはできません。データベースの保持オペレーションは、Airflow データベースが時間の経過とともに増加しないようにするのに役立ちます。詳細については、対応する既知の問題をご覧ください。
始める前に
- 環境でデータベース クリーンアップ DAG がスケジュールに従って実行されている場合は、データベースの保持ポリシーを構成した後に DAG を停止できます。メンテナンス DAG のアプローチ は廃止されています(Managed Airflow(第 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.11.1-build.5 \
--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
環境を作成するときに、airflow_metadata_retention_config ブロック
data_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
}
}
既存の環境のデータベースの保持を構成する
既存の環境でデータベースの保持を有効または無効にするには、カスタムの保持期間を設定します。
コンソール
コンソールで、[Environments] ページに移動します。 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
}
}
データベースの保持ステータスを確認する
コンソール
コンソールで、[Environments] ページに移動します。 Google Cloud
環境のリストで、ご利用の環境の名前をクリックします。[環境の詳細] ページが開きます。
[環境の設定] タブに移動します。
[データベースのデータ保持ポリシー] 項目に、環境の現在のデータベースのデータ保持ポリシーが表示されます。
gcloud
gcloud composer environments describe ENVIRONMENT_NAME \
--location LOCATION \
--format="value(config.dataRetentionConfig.airflowMetadataRetentionConfig.retentionMode)"
データベースの保持ログを表示する
データベースの保持オペレーション ログは、 [環境の詳細] > [ログ] >で確認できます。ログは、 [すべてのログ] > [Composer ログ] > [データベースの保持]にあります。
ログエントリには、オペレーションのステータスとデータベースのサイズが一覧表示されます。
Managed Service for Apache Airflow のログの表示の詳細については、 ログを表示するをご覧ください。