クロスリージョン レプリケーションと障害復旧を使用する

Lakehouse for Apache Iceberg は、カタログ メタデータのクロスリージョン レプリケーションと障害復旧をサポートしています。

この構成では、 Cloud Storage デュアルリージョン バケットまたは マルチリージョン バケットでバックアップされたカタログが必要です。

始める前に

  1. プロジェクト Google Cloud に対して課金が有効になっていることを確認します

  2. BigLake API を有効にします。

    API を有効にするために必要なロール

    API を有効にするには、serviceusage.services.enable 権限が必要です。プロジェクトを作成した場合は、オーナーロール(roles/owner)を介してこの権限がすでに付与されている可能性があります。それ以外の場合は、Service Usage 管理者ロール(roles/serviceusage.serviceUsageAdmin)を介してこの権限を取得できます。ロールを付与する方法をご確認ください

    API の有効化

必要なロール

Lakehouse ランタイム カタログで Iceberg REST カタログ エンドポイントを使用するために必要な権限を取得するには、次の IAM ロールを付与するよう管理者に依頼してください。

ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。

必要な権限は、カスタム ロールや他の事前定義 ロールから取得することもできます。

レプリケーションと障害復旧のワークフロー

クロスリージョン レプリケーションと障害復旧を使用するには、次の一般的な手順を行います。

  1. レプリケーションのステータスを表示する: 現在のプライマリ リージョンとセカンダリ リージョンを特定して、フェイルオーバーのターゲット リージョンを決定します。
  2. 同期ステータスを確認する: プライマリ リージョンとセカンダリ リージョンの現在の状態を確認して、移行の準備ができていることを確認します。
  3. フェイルオーバー モードを選択する: ソフト フェイルオーバー( 計画メンテナンスに最適)またはハード フェイルオーバー(緊急 復旧に最適)を選択します。
  4. フェイルオーバーを開始する: 選択したモードに対応するコマンドを実行して、プライマリ リージョンとセカンダリ リージョンを切り替えます。

フェイルオーバーの準備

現在のプライマリ リージョンを特定し、セカンダリ リージョンの同期ステータスを確認します。その後、フェイルオーバーを開始します。

レプリケーションのステータスを表示する

カタログがレプリケートされるリージョンを特定するには、次の gcloud biglake iceberg catalogs describe コマンドを実行します。

gcloud biglake iceberg catalogs describe CATALOG_NAME

CATALOG_NAME は、カタログの名前に置き換えます。

同期ステータスを確認する

フェイルオーバーを開始する前に、 セカンダリ レプリカの同期ステータスを gcloud biglake iceberg catalogs failover コマンドを使用して確認します。

gcloud biglake iceberg catalogs failover CATALOG_NAME \
    --validate_only \
    --primary-replica PRIMARY_REPLICA_REGION

次のように置き換えます。

  • CATALOG_NAME: カタログの名前。
  • PRIMARY_REPLICA_REGION: 新しいプライマリ レプリカとして指定するリージョン。

フェイルオーバーを開始する

障害復旧機能では、メタストア レプリケーションを使用してプライマリ リージョンとセカンダリ リージョンを指定します。すべてのテーブル commit メタデータはプライマリ リージョンから提供され、セカンダリ リージョンにレプリケートされます。フェイルオーバー オペレーションを使用して、カタログのプライマリ リージョンとセカンダリ リージョンを切り替えることができます。

ソフト フェイルオーバー

ソフト フェイルオーバーを開始するには、次の gcloud biglake iceberg catalogs failover コマンドを実行します。

gcloud biglake iceberg catalogs failover CATALOG_NAME \
    --primary-replica PRIMARY_REPLICA_REGION

次のように置き換えます。

  • CATALOG_NAME: カタログの名前。
  • PRIMARY_REPLICA_REGION: 新しいプライマリ レプリカとして指定するリージョン。

ハード フェイルオーバー

ハード フェイルオーバーを開始するには、次の gcloud biglake iceberg catalogs failover コマンドを実行します。

gcloud biglake iceberg catalogs failover CATALOG_NAME \
    --primary-replica PRIMARY_REPLICA_REGION \
    --conditional-failover-replication-time=REPLICATION_TIMESTAMP

次のように置き換えます。

  • CATALOG_NAME: カタログの名前。
  • PRIMARY_REPLICA_REGION: 新しいプライマリ レプリカとして指定するリージョン。
  • REPLICATION_TIMESTAMP: レプリケーションのチェックポイントとして機能する RFC 3339 タイムスタンプ。レプリケーション プロセスでは、レプリカにこの時点までに commit されたすべてのデータが含まれていることを確認します。このタイムスタンプより前に commit されたすべてのデータがレプリカに含まれていない場合、コマンドは失敗します。レプリケーションの遅延に関係なくフェイルオーバー プロセスを強制的に実行するには、このタイムスタンプを過去の日付に設定します。 注: この機能はプレビュー版であるため、REPLICATION_TIMESTAMP は Cloud Storage ファイルではなく、カタログ メタデータのみを追跡します。データ損失の下限を維持するには、Cloud Storage のデータの可用性と 耐久性のドキュメントをご覧ください。

次のステップ