継続的マテリアライズド ビューを作成して管理する
このドキュメントでは、Bigtable で継続的マテリアライズド ビューを作成してオペレーションを実行する方法について説明します。このドキュメントを読む前に、 継続的マテリアライズド ビューの概要をご覧ください。
継続的マテリアライズド ビューは、Google Cloud CLI、 コンソールの Bigtable Studio クエリ エディタ Google Cloud 、Java 用と Go 用の Bigtable クライアント ライブラリを使用して作成できます。
始める前に
gcloud CLI を使用する場合は、次の手順を行います。
-
Google Cloud CLI をインストールします。
-
フェデレーション ID(連携 ID)を使用するように gcloud CLI を構成します。
詳細については、連携 ID を使用して gcloud CLI にログインするをご覧ください。
-
gcloud CLI を初期化するには、次のコマンドを実行します:
gcloud init
必要なロール
継続的マテリアライズド ビューを作成して管理するために必要な権限を取得するには、インスタンスに対する Bigtable 管理者(roles/bigtable.admin)ロールの付与を管理者に依頼してください。
それ以外の場合は、実行するオペレーションに応じて、インスタンス レベルで次の権限をリクエストしてください。
- 作成:
bigtable.materializedViews.create - 更新:
bigtable.materializedViews.update - 削除:
bigtable.materializedViews.delete - リスト:
bigtable.materializedViews.list
継続的マテリアライズド ビューを作成するには、ソーステーブルに対する bigtable.tables.readRows 権限も必要です。
使用可能なすべてのロールと権限については、 IAM を使用した Bigtable アクセス制御をご覧ください。
継続的マテリアライズド ビューを作成する
継続的マテリアライズド ビューを作成する前に、次の操作を行います。
- 省略可: ベスト プラクティスとして、インスタンス内のクラスタで 自動スケーリングを有効にします。これにより、Bigtable が 継続的マテリアライズド ビューを処理して同期する際に、必要に応じてスケールアップし、 追加のストレージ使用量を処理できます。
- 継続的マテリアライズド ビューのソースとして使用する、読み取り権限のある Bigtable テーブルを特定します。
- 継続的マテリアライズド ビューを定義する SQL クエリを準備します。クエリの要件については、継続的マテリアライズド ビュー クエリをご覧ください。
継続的マテリアライズド ビューを作成すると、Bigtable は初期設定を完了します。このプロセスが完了すると、ビューがアクティブになり、クエリ可能になります。ビューの 指標を確認して、 進行状況をモニタリングできます。初期設定が完了する前にビューにクエリを実行する方法については、 初期設定中にデータを読み取るをご覧ください。
コンソール
コンソール Google Cloud で Bigtable インスタンスのリストを開きます。
インスタンスを選択します。
ナビゲーション パネルで [Bigtable Studio] をクリックします。
をクリックして [Editor] を選択し、新しいタブを開きます。
クエリエディタが表示されたら、クエリを入力します。クエリが有効な SQL の場合は、[有効] メッセージが表示されます。
省略可: ステートメントを SQL スタイルでフォーマットするには、[フォーマット] をクリックします。
[実行] をクリックします。クエリの結果が [結果] テーブルに表示されます。
クエリに問題がなければ、[名前を付けて保存] の展開矢印をクリックし、[マテリアライズド ビューとして保存] を選択します。
[マテリアライズド ビューを保存] ダイアログで、ビューの名前を入力し、[保存] をクリックします。
クエリ エディタの使用方法の詳細については、Bigtable Studio を使用してデータを 管理するをご覧ください。
gcloud
継続的マテリアライズド ビューを作成するには、
gcloud bigtable materialized-views create
コマンドを使用します。
gcloud bigtable materialized-views create VIEW \
--instance=INSTANCE --query=QUERY
次のように置き換えます。
VIEW: 継続的マテリアライズド ビューの一意の識別子。継続的マテリアライズド ビューにクエリを実行するときに、この ID をテーブル ID として使用します。INSTANCE: 継続的マテリアライズド ビューを作成するインスタンスの識別子。ソーステーブルと同じインスタンスにする必要があります。QUERY: 継続的マテリアライズド ビューを定義する有効な SQL ステートメント。
コマンドには、以下のフラグ(省略可能)を指定できます。
- 継続的マテリアライズド ビューの削除からの保護を有効にするには、
コマンドに
--deletion-protection=DELETION_PROTECTIONを追加します。DELETION_PROTECTIONはtrueまたはfalseに置き換えます。 - SQL クエリで 非確定的関数を使用する場合は、
コマンドに
--ignore-warningsフラグを追加します。このフラグは、これらの関数によって、同じビューに対して異なるクラスタで異なる結果が生成される可能性があることを確認します。このフラグを省略すると、 クエリの検証に失敗します。
継続的マテリアライズド ビューを更新する
継続的マテリアライズド ビューの削除からの保護を更新できます。継続的マテリアライズド ビューを定義する SQL クエリは更新できません。クエリを変更する必要がある場合は、継続的マテリアライズド ビューを削除してから、変更内容を含む新しいビューを作成する必要があります。
コンソール
コンソールで継続的マテリアライズド ビューを更新することはできません。 代わりに gcloud CLI を使用してください。
gcloud
継続的マテリアライズド ビューの削除からの保護を有効または無効にするには、
gcloud bigtable materialized-views update コマンドを使用します。
gcloud bigtable materialized-views update VIEW \
--instance=INSTANCE --deletion-protection=DELETION_PROTECTION
次のように置き換えます。
VIEW: 更新する 継続的マテリアライズド ビューの一意の識別子INSTANCE: 継続的マテリアライズド ビューを含むインスタンスの識別子DELETION_PROTECTION:trueまたはfalse
継続的マテリアライズド ビューを削除する
削除からの保護が有効になっていない継続的マテリアライズド ビューは削除できます。このオペレーションは元に戻せません。
コンソール
コンソール Google Cloud で Bigtable インスタンスのリストを開きます。
リストからインスタンスを選択します。
ナビゲーション パネルで [Bigtable Studio] をクリックします。
[マテリアライズド ビュー] を展開します。
削除するビューの横にある more_vert 操作メニューをクリックし、 [削除] をクリックします。
gcloud
継続的マテリアライズド ビューを削除するには、
gcloud bigtable materialized-views delete
コマンドを使用します。
gcloud bigtable materialized-views delete VIEW \
--instance=INSTANCE
次のように置き換えます。
VIEW: 削除する継続的マテリアライズド ビューの一意の識別子INSTANCE: 継続的マテリアライズド ビューを含むインスタンスの識別子
継続的マテリアライズド ビューのリストを取得する
インスタンスの継続的マテリアライズド ビューのリストを表示できます。
コンソール
コンソール Google Cloud で Bigtable インスタンスのリストを開きます。
リストからインスタンスを選択します。
ナビゲーション パネルで [Bigtable Studio] をクリックします。継続的マテリアライズド ビューのリストが表示されます。
省略可: インスタンス内の最初の 10 個のビューが一覧表示されます。さらに 10 個を表示するには、[もっと見る] をクリックします。
gcloud
インスタンスのすべての継続的マテリアライズド ビューを一覧表示するには、
gcloud bigtable materialized-views list コマンドを使用します。
gcloud bigtable materialized-views list --instance=INSTANCE
INSTANCE はインスタンス ID に置き換えます。