クエリの統計データを取得する
このページでは、cbt
CLI を使用してクエリの統計データを取得する方法について説明します。Cloud Bigtable 用の Go クライアント ライブラリを使用してクエリの統計データを取得することもできます。
ここで説明する内容は、アプリケーション開発者を対象としています。このページを読む前に、Bigtable ストレージ モデルについて理解しておく必要があります。また、スキーマ設計のベスト プラクティスとパフォーマンスについての知識も必要です。
Bigtable クエリに関する情報を取得する機能はアプリケーションを開発する際に役立ちます。クエリのパフォーマンスに関するデータを取得してクエリを調整したり、スキーマ設計を変更してクエリのパフォーマンスを微調整できます。
クエリは通常、テーブルに送信されるデータ リクエストですが、Bigtable は読み取りリクエストに対してのみ、クエリの統計データを返します。
始める前に
cbt
CLI をまだインストールしていない場合は、cbt
CLI の概要の手順に沿ってインストールします。この手順には.cbtrc
ファイルの作成手順も含まれます。cbt
CLI リファレンスの行の読み取りのセクションをご覧ください。ここでは、cbt read
リクエストをテーブルに送信するためのコマンドライン構文とオプションについて説明されています。cbt
CLI はフィルタをサポートしていません。- テーブルに対する
bigtable.tables.readRows
権限、またはbigtable.reader
ロールのプリンシパルであることを確認します。
クエリを実行する
行の読み取りの構文を使用してクエリを作成します。
以下のコマンドを実行します。
include-stats=full
パラメータを使用して、クエリの統計データを返すように Bigtable に指示します。cbt read TABLE_ID QUERY include-stats=full
以下を置き換えます。
TABLE_ID
: クエリ対象テーブルの一意の IDQUERY
:cbt
CLI 形式のクエリ
読み取られたデータと次の統計データを含むリストがターミナルに表示されます。
rows_seen_count
: Bigtable がリクエストで処理した行数rows_returned_count
: フィルタの適用後に返された行数cells_seen_count
: リクエストで処理されたセルの数cells_returned_count
: フィルタの適用後に返されたセル数frontend_server_latency
: Bigtable フロントエンド サーバー プールから測定されたリクエスト レイテンシ(ミリ秒単位)
検索結果を解釈する
クエリ対象のセルと返されたセルの比率を確認します。
cells_seen_count
/cells_returned_count
の商が 1 または 1 に近い場合、Bigtable では、最終的に除外されたデータを処理していなません。返された行数をみてみましょう。この数字が大きいほど、Bigtable が行う作業も多くなります。この最適な数値はユースケースとレイテンシの要件によって異なりますが、一般に、返される行数が少なくなれば、クエリのレイテンシは短くなります。
例
my-table
というテーブル内の正規表現 orange:*.*
と一致する行をすべて読み取る際にクエリ統計データを取得するには、次のコマンドを実行します。
cbt read my-table regex='.*orange' columns='.*:.*' include-stats=full
出力は次のようになります。
----------------------------------------
orange
Details:Color @ 2022/09/26-14:48:01.286000
"orange"
Details:Size @ 2022/09/26-14:48:01.286000
"medium"
Request Stats
====================
rows_seen_count: 10
rows_returned_count : 1
cells_seen_count: 2
cells_returned_count: 2
frontend_server_latency: 13ms