マテリアライズド ビューのレプリカを作成する

プレビュー版のサポートについては、bq-omni-customer-support@google.com までメールでお問い合わせください。

このドキュメントでは、BigQuery でマテリアライズド ビューのレプリカを作成する方法について説明します。マテリアライズド ビューのレプリカを使用すると、Amazon Simple Storage Service(Amazon S3)データをローカルで結合に使用できるようになります。

始める前に

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。

    プロジェクト セレクタに移動

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

  4. Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。

    プロジェクト セレクタに移動

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

必要な権限

このドキュメントの各タスクを実行するために必要な権限をユーザーに与える Identity and Access Management(IAM)のロールを付与します。

マテリアライズド ビューのレプリカを作成するには、次の IAM 権限が必要です。

  • bigquery.tables.create
  • bigquery.tables.get
  • bigquery.tables.getData
  • bigquery.tables.replicateData
  • bigquery.jobs.create

次の IAM 事前定義ロールには、マテリアライズド ビューの作成に必要な権限が含まれています。

  • bigquery.dataEditor
  • bigquery.dataOwner
  • bigquery.admin

BigQuery Identity and Access Management(IAM)の詳細については、BigQuery の IAM の概要をご覧ください。

前提条件

マテリアライズド ビューのレプリカを作成するには、事前に次のタスクを完了する必要があります。

  1. Amazon S3 をサポートするリージョンデータセットを作成します。
  2. ステップ 1 で作成したデータセットに、Amazon S3 BigLake テーブルを作成します。テーブルの作成時にメタデータのキャッシュ保存を有効にします。
  3. ステップ 1 で作成したデータセット内の Amazon S3 BigLake テーブルに対して、マテリアライズド ビューを作成します。Amazon S3 をサポートするリージョンにある別のデータセットにマテリアライズド ビューを作成することもできます。
  4. マテリアライズド ビューを作成したクエリで使用した Amazon S3 BigLake のソーステーブルを含むデータセットで、マテリアライズド ビューを承認します。
  5. Amazon S3 BigLake テーブルに対してメタデータ キャッシュの手動更新を構成した場合は、BQ.REFRESH_EXTERNAL_METADATA_CACHE システム プロシージャを実行してメタデータ キャッシュを更新します。
  6. BQ.REFRESH_MATERIALIZED_VIEW システム プロシージャを実行して、マテリアライズド ビューを更新します。

マテリアライズド ビューのレプリカを作成する

マテリアライズド ビューのレプリカを作成するには、CREATE MATERIALIZED VIEW AS REPLICA OF ステートメントを使用します。

CREATE MATERIALIZED VIEW PROJECT_ID.BQ_DATASET.REPLICA_NAME
OPTIONS(replication_interval_seconds=REPLICATION_INTERVAL)
AS REPLICA OF PROJECT_ID.S3_DATASET.MATERIALIZED_VIEW_NAME;

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

  • PROJECT_ID: マテリアライズド ビューのレプリカを作成するプロジェクトの名前(例: myproject)。
  • BQ_DATASET: マテリアライズド ビューのレプリカを作成する BigQuery データセットの名前(例: bq_dataset)。データセットは、ソースのマテリアライズド ビューのリージョンに対応する BigQuery リージョンに存在する必要があります。
  • REPLICA_NAME: 作成するマテリアライズド ビュー レプリカの名前(例: my_mv_replica)。
  • REPLICATION_INTERVAL: ソースのマテリアライズド ビューからレプリカにデータを複製する頻度を秒単位で指定します。60~3,600 の値にする必要があります。デフォルトは 300(5 分)です。
  • S3_DATASET: ソースのマテリアライズド ビューを含むデータセットの名前(例: s3_dataset)。
  • MATERIALIZED_VIEW_NAME: 複製するマテリアライズド ビューの名前(例: my_mv)。

次の例では、bq_datasetmv_replica というマテリアライズド ビュー レプリカが作成されます。

CREATE MATERIALIZED VIEW `myproject.bq_dataset.mv_replica`
OPTIONS(
  replication_interval_seconds=600
)
AS REPLICA OF `myproject.s3_dataset.my_s3_mv`

マテリアライズド ビューのレプリカを作成すると、レプリケーション プロセスでソースのマテリアライズド ビューに対して変更がポーリングされ、データがマテリアライズド ビューのレプリカに複製されます。データは replication_interval_seconds オプションで指定した間隔で更新されます。最初のバックフィルが完了する前にレプリカに対してクエリを実行すると、backfill in progress エラーが発生します。最初のレプリケーションの完了後、マテリアライズド ビューのレプリカのデータをクエリできるようになります。