マテリアライズド ビューのレプリカを作成する
このドキュメントでは、BigQuery でマテリアライズド ビューのレプリカを作成する方法について説明します。マテリアライズド ビューのレプリカを使用すると、Amazon Simple Storage Service(Amazon S3)データをローカルで結合に使用できるようになります。
始める前に
- 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.
-
Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。
-
Google Cloud Console の [プロジェクト セレクタ] ページで、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 の概要をご覧ください。
前提条件
マテリアライズド ビューのレプリカを作成するには、事前に次のタスクを完了する必要があります。
- Amazon S3 をサポートするリージョンにデータセットを作成します。
- ステップ 1 で作成したデータセットに、Amazon S3 BigLake テーブルを作成します。テーブルの作成時にメタデータのキャッシュ保存を有効にします。
- ステップ 1 で作成したデータセット内の Amazon S3 BigLake テーブルに対して、マテリアライズド ビューを作成します。Amazon S3 をサポートするリージョンにある別のデータセットにマテリアライズド ビューを作成することもできます。
- マテリアライズド ビューを作成したクエリで使用した Amazon S3 BigLake のソーステーブルを含むデータセットで、マテリアライズド ビューを承認します。
- Amazon S3 BigLake テーブルに対してメタデータ キャッシュの手動更新を構成した場合は、
BQ.REFRESH_EXTERNAL_METADATA_CACHE
システム プロシージャを実行してメタデータ キャッシュを更新します。 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_dataset
に mv_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
エラーが発生します。最初のレプリケーションの完了後、マテリアライズド ビューのレプリカのデータをクエリできるようになります。