論理ビューの作成と管理
Bigtable では、論理ビューは、他の SQL クエリでクエリできる仮想テーブルとして機能する SQL クエリの結果です。データはソーステーブルに残ります。
このドキュメントでは、論理ビューと、論理ビューの作成方法とオペレーションの実行方法について説明します。マテリアライズド ビューと承認済みビューとの比較については、テーブルとビューをご覧ください。
論理ビューを使用すると、Bigtable データに対して次のことができます。
- クエリの重複を回避する: 列マッピングとキャスト ロジックを論理ビューに保存して拡張できます。このロジックをコピーして貼り付けたり、理解したりする必要はありません。他の論理ビューで使用できます。
- リレーショナル データベースから読み取るように設計されたシステムと統合する: 論理ビューを使用すると、Bigtable データをリレーショナル データベース テーブルや Cassandra テーブルのように読み取ることができます。
- 複数のテーブルに対して同じ論理ビューを実行する:
FROM
句を変更することで、同じビューを使用して Bigtable インスタンス内の任意のテーブルをクエリできます。 - 一貫したインターフェースを提供する: ソーステーブルが変更されても、アプリケーションは論理ビューを使用できます。
論理ビューはインスタンス レベルのリソースです。論理ビューは、Google Cloud CLI またはコンソールの Bigtable Studio クエリ エディタを使用して作成できます。 Google Cloud 論理ビューに対してクエリを実行するには、Bigtable Studio クエリエディタまたは SQL をサポートする Bigtable クライアント ライブラリを使用します。
論理ビューには次の特徴があります。
- Bigtable 用の GoogleSQL でサポートされている SQL 機能を使用する必要がある
- 読み取り専用
ReadRows
の呼び出しではなく、SQL で読み取る必要がある- 定義者の権限を使用します。ソーステーブルから読み取る権限がなくても、論理ビューから読み取る権限があれば、論理ビューに対してクエリを実行できます。
始める前に
gcloud CLI を使用する場合は、次の手順を行います。
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
必要なロール
論理ビューの作成と管理に必要な権限を取得するには、インスタンスに対する Bigtable 管理者(roles/bigtable.admin
)ロールを付与するよう管理者に依頼してください。それ以外の場合は、実行するオペレーションに応じて、インスタンス レベルで次の権限をリクエストします。
- 作成:
bigtable.logicalViews.create
- 更新:
bigtable.logicalViews.update
- 削除:
roles/bigtable.logicalViews.delete
- リスト:
bigtable.logicalViews.list
- 説明:
bigtable.logicalViews.get
論理ビューを作成するには、ソーステーブルに対する bigtable.table.readRows
権限も必要です。
使用可能なすべてのロールと権限を確認するには、IAM を使用した Bigtable アクセス制御をご覧ください。
論理ビューを作成する
コンソール
Google Cloud コンソールで Bigtable インスタンスのリストを開きます。
インスタンスを選択します。
ナビゲーション パネルで [Bigtable Studio] をクリックします。
をクリックして [エディタ] を選択し、新しいタブを開きます。
クエリエディタでクエリを入力します。クエリが有効な SQL の場合は、[有効] メッセージが表示されます。
省略可: ステートメントを SQL スタイルで書式設定するには、[書式] をクリックします。
[実行] をクリックします。クエリの結果が [結果] テーブルに表示されます。
クエリに問題がなければ、[保存] をクリックして、[ビューを保存] を選択します。
Query Editor の使用方法については、Bigtable Studio を使用してデータを管理するをご覧ください。
gcloud
論理ビューを作成するには、gcloud bigtable logical-views create
コマンドを使用します。
gcloud bigtable logical-views create VIEW \
--instance=INSTANCE --query=QUERY
次のように置き換えます。
VIEW
: 新しいビューの ID(最大 128 文字)。ID は、インスタンス内のテーブル ID とビュー ID の中で一意である必要があります。QUERY
: Bigtable 用の有効な GoogleSQL クエリINSTANCE
: ビューを作成するインスタンスの ID
論理ビューを更新する
コンソール
Google Cloud コンソールで Bigtable インスタンスのリストを開きます。
リストからインスタンスを選択します。
ナビゲーション パネルで [Bigtable Studio] をクリックします。エクスプローラにビューのリストが表示されます。
省略可: インスタンス内の最初の 10 件のビューが一覧表示されます。10 件をさらに表示するには、[もっと見る] をクリックします。
更新するビューの横にある more_vert アクション メニューをクリックし、[定義を表示] をクリックします。
クエリを変更します。
[実行] をクリックします。
結果ペインにビューに含めるデータが表示されていることを確認したら、[名前を付けて保存] をクリックします。
ダイアログで、変更したビューの ID を入力します。
既存のビューが上書きされることを警告するメッセージがダイアログに表示されます。
[保存] をクリックします。
gcloud
別のクエリを実行するように論理ビューを更新するには、gcloud bigtable
logical-views update
コマンドを使用します。
gcloud bigtable logical-views update VIEW \
--instance=INSTANCE --query=QUERY
次のように置き換えます。
VIEW
: 更新する論理ビューの IDQUERY
: 有効な GoogleSQL クエリINSTANCE
: 論理ビューを含むインスタンスの ID
論理ビューを削除する
この操作を元に戻すことはできません。論理ビューを削除するには、gcloud bigtable
logical-views delete
コマンドを使用します。
gcloud bigtable logical-views delete VIEW \
--instance=INSTANCE
次のように置き換えます。
VIEW
: 更新する論理ビューの IDINSTANCE
: 論理ビューを含むインスタンスの ID
インスタンスの論理ビューのリストを取得する
インスタンスの論理ビューのリストを確認できます。
コンソール
Google Cloud コンソールで Bigtable インスタンスのリストを開きます。
リストからインスタンスを選択します。
ナビゲーション パネルで [Bigtable Studio] をクリックします。エクスプローラにビューのリストが表示されます。
省略可: インスタンス内の最初の 10 件のビューが一覧表示されます。10 件をさらに表示するには、[もっと見る] をクリックします。
gcloud
インスタンスの論理ビューのリストを表示するには、gcloud bigtable
logical-views list
コマンドを使用します。
gcloud bigtable logical-views list --instance=INSTANCE
INSTANCE
は、インスタンス ID に置き換えます。
論理ビューの説明を取得する
論理ビューの詳細を取得するには、gcloud bigtable logical-views
describe
コマンドを使用します。
gcloud bigtable logical-views describe VIEW \
--instance=INSTANCE
ターミナルに次のような詳細が表示されます。
createTime: '2025-03-07T19:49:56.316578Z'
etag: W/"/v1/17919275593532352351"
name: projects/my-project/instances/my-instance/logicalViews/my-view
query: SELECT street FROM addresses
updateTime: '2025-03-07T19:49:56.316578Z'