クエリの統計データを取得する

このページでは、cbt CLI を使用してクエリの統計データを取得する方法について説明します。Cloud Bigtable 用の Go クライアント ライブラリを使用してクエリの統計データを取得することもできます。

ここで説明する内容は、アプリケーション開発者を対象としています。このページを読む前に、Bigtable ストレージ モデルについて理解しておく必要があります。また、スキーマ設計のベスト プラクティスパフォーマンスについての知識も必要です。

Bigtable クエリに関する情報を取得する機能はアプリケーションを開発する際に役立ちます。クエリのパフォーマンスに関するデータを取得してクエリを調整したり、スキーマ設計を変更してクエリのパフォーマンスを微調整できます。

クエリは通常、テーブルに送信されるデータ リクエストですが、Bigtable は読み取りリクエストに対してのみ、クエリの統計データを返します。

始める前に

  1. cbt CLI をまだインストールしていない場合は、cbt CLI の概要の手順に沿ってインストールします。この手順には .cbtrc ファイルの作成手順も含まれます。
  2. cbt CLI リファレンスの行の読み取りのセクションをご覧ください。ここでは、cbt read リクエストをテーブルに送信するためのコマンドライン構文とオプションについて説明されています。cbt CLI はフィルタをサポートしていません。
  3. テーブルに対する bigtable.tables.readRows 権限、または bigtable.reader ロールのプリンシパルであることを確認します。

クエリを実行する

  1. 行の読み取りの構文を使用してクエリを作成します。

  2. 以下のコマンドを実行します。include-stats=full パラメータを使用して、クエリの統計データを返すように Bigtable に指示します。

    cbt read TABLE_ID QUERY include-stats=full
    

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

    • TABLE_ID: クエリ対象テーブルの一意の ID
    • QUERY: 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

次のステップ