データベース保持ポリシーを構成する

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 は冗長な処理を行うため、停止することでリソース消費を削減できます。

新しい環境のデータベース保持を構成する

環境の作成時にデータベース保持を有効または無効にしたり、カスタムのデータベース保持期間を設定したりするには:

コンソール

[環境の作成] ページで次の操作を行います。

  1. [データベースのデータ保持ポリシー] セクションで、データベースの保持を構成します。

    • データベースの保持を有効にするには、[データベースのデータ保持ポリシーを有効にする] を選択します。

    • データベースの保持を無効にするには、[データベースのデータ保持ポリシーを無効にする] を選択します。

  2. (省略可)カスタムの保持期間を設定するには、[保持期間] フィールドで 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_configairflow_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
      }
    }

既存の環境のデータベース保持を構成する

既存の環境でデータベース保持を有効または無効にし、カスタム保持期間を設定するには:

コンソール

  1. Google Cloud コンソールで [環境] ページに移動します。

    [環境] に移動

  2. 環境のリストで、ご利用の環境の名前をクリックします。[環境の詳細] ページが開きます。

  3. [環境の設定] タブに移動します。

  4. [データベースのデータ保持ポリシー] 項目には、環境の現在のデータベースのデータ保持ポリシーが一覧表示されます。

  5. [編集] をクリックします。

  6. データベース保持のステータスを設定します。

    • データベースの保持を有効にするには、[データベースのデータ保持ポリシーを有効にする] を選択します。

    • データベースの保持を無効にするには、[データベースのデータ保持ポリシーを有効にする] の選択を解除します。

  7. (省略可)カスタムの保持期間を設定するには、[保持期間] フィールドで 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

  1. environments.patch API リクエストを作成します。

  2. このリクエストで次のように操作します。

    1. updateMask パラメータで、config.dataRetentionConfig.airflowMetadataRetentionConfig マスクを指定します。

    2. リクエスト本文で、データベース保持パラメータを指定します。

{
  "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_configairflow_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
      }
    }

データベースの保持ステータスを確認する

コンソール

  1. Google Cloud コンソールで [環境] ページに移動します。

    [環境] に移動

  2. 環境のリストで、ご利用の環境の名前をクリックします。[環境の詳細] ページが開きます。

  3. [環境の設定] タブに移動します。

  4. [データベースのデータ保持ポリシー] 項目には、環境の現在のデータベースのデータ保持ポリシーが一覧表示されます。

gcloud

gcloud composer environments describe ENVIRONMENT_NAME \
  --location LOCATION \
  --format="value(config.dataRetentionConfig.airflowMetadataRetentionConfig.retentionMode)"

データベース保持ログを表示する

データベース保持オペレーションのログは、[環境の詳細] > [ログ] > で確認できます。ログは、[すべてのログ] > [Composer ログ] > [データベース保持] にあります。

ログエントリには、オペレーションのステータスとデータベースのサイズが表示されます。

Cloud Composer ログの表示の詳細については、ログを表示するをご覧ください。

次のステップ