Key Visualizer の概要

Key Visualizer とは

Key Visualizer は、Spanner の使用パターンを分析する際に活用できます。行の範囲別に時系列で分類されたデータベースの視覚的なレポートが生成されます。

Key Visualizer によって、他の方法では把握することが困難な使用パターンに関する分析情報を取得できます。Key Visualizer の用途には次のものがあります。

  • スキーマを反復方式で設計し、スキーマの設計を改善する。それぞれの反復で Key Visualizer を使用して、スキーマに起因する可能性のある問題を特定し、スキーマを微調整してから再度確認を行います。
  • パフォーマンス問題のトラブルシューティングを行い、クエリとオペレーションでリソースがどのように使用されるのかを把握する。
  • Spanner に保存しているデータに、ユーザーとアプリケーションがアクセスする方法を理解する。

これらの目的で Key Visualizer を使用すると、次のことを行うことができます。

  • 読み取りまたは書き込みで、特定の行範囲でホットスポットが発生しているかどうかを確認する。
  • テーブルの行全体がバランスよくアクセスされているかどうかを確認する。

Key Visualizer にはさまざまな指標が表示されますが、Spanner のパフォーマンスに影響する可能性のある指標すべてを表示しているわけではありません。たとえば、アプリケーションと Google Cloud の間にネットワークの問題がある場合、それらの問題は表示されない場合もあれば、Key Visualizer のすべてのキーで縦方向のバンドとして表示される場合もありますが、後者の場合に得られるのは問題が発生したタイミングについてのヒントのみです。Key Visualizer スキャンでパフォーマンス問題の原因を特定できない場合は、さらにトラブルシューティングを行う必要があります。

Key Visualizer スキャン

次の画像は、Key Visualizer スキャンの画面です。スキャン結果には異なる種類の情報が含まれています。

  • ヒートマップ。行キーのグループに対するアクセス パターンが時系列で表示されます。
  • ヒートマップの各軸の平均値。平均値と一緒に合計値または最大値が表示されます。

Key Visualizer スキャンの例

Key Visualizer には、スキャン結果の分析に役立つツールが用意されています。Key Visualizer を初めて使用する場合は、Key Visualizer スタートガイドをご覧ください。使用経験のある方は、ヒートマップの確認をご覧ください。

ヒートマップ

Key Visualizer スキャンのコア部分はヒートマップです。ここには、行キーの指標値が時系列で表示されます。ヒートマップの X 軸は時間を表し、Y 軸は行の範囲を表します。ある時点で行キーグループの指標値が低い場合、指標は「コールド」状態になり、暗い色で表示されます。値が高い場合は「ホット」状態になり、明るい色で表示されます。最高値は白で表示されます。

使用パターンが異なると、ヒートマップに表示されるパターンも変わるので、問題の部分を一目で特定できます。共通パターンの例については、ヒートマップのパターンをご覧ください。

行の範囲

行範囲は、単一のテーブルまたはインデックス内の連続した行のセットです。開始キーと終了キーで定義されます。

通常、Spanner データベースは、多数のテーブルとインデックスを使用します。Key Visualizer は、データベース全体にわたるすべてのテーブルとインデックスの既存のキーに基づいて、最大 1,000 行の範囲を選択します。ヒートマップでは、各キーはまずテーブル名またはインデックス名でアルファベット順に並べ替えられます。各テーブルまたはインデックス内では、キーは主キー値順に並べ替えられます。そのため、行範囲は 1 つのテーブルまたはインデックスのキーのみで構成されます。インターリーブされたテーブルの場合、親テーブルの行範囲には、そのインターリーブされた子テーブルのキーは含まれません。

Key Visualizer で選択される行範囲は、1,000 までです。結合されたテーブルとインデックスが 1,000 を超える場合、これらのテーブルの一部は、ヒートマップで 1 つのデータポイントにロールアップされ、1 行で表示されます。テーブルは結合してダウンサンプリングされるため、想定されるホットスポットを検出するのは難しい場合があります。

テーブルとインデックスが 1,000 未満の場合、ヒートマップにはすべてのテーブルを表す行の範囲が少なくとも 1 つあります。

次のステップ