ヒートマップは、時間経過に伴う各パーティションにおけるクエリ活動を可視化します。各行が1つのパーティションを表し、色の輝度がクエリ頻度を示します。明るい黄色は最も高い頻度、黒は最も低い頻度を意味します。パフォーマンスボトルネックが発生する前に、ホットパーティションや不均一なデータ分散を特定するために、このヒートマップをご利用ください。
ヒートマップは、現在のインスタンスで自動パーティショニング(AUTO モード)を使用しているデータベースのみを対象とします。
前提条件
開始する前に、以下の条件を満たしていることを確認してください。
PolarDB-X V5.4.14 以降を実行しているインスタンス。 「リリースノート」および「インスタンスのバージョンを表示および更新する」をご参照ください。
初回のデータ収集を有効化するために必要な特権アカウント。詳細については、「データベースアカウントの管理」をご参照ください。
基本概念
ホットパーティション:他のパーティションと比較して、著しく高いクエリ数を受信するパーティションです。分散データベースにおいて、ホットパーティションはパフォーマンスボトルネックを引き起こす可能性があります。
パーティションのマージ:スキャン対象となる元のパーティション総数が 1,600 を超える場合、表示を管理可能にするため、システムが統計情報をマージします。このマージでは、同一のデータノード上にある同一論理テーブル内のパーティションがグループ化されます。マージは統計情報の表示にのみ影響し、基盤となるデータには影響しません。
制限事項
| 制限 | 詳細 |
|---|---|
| 単一データベースのパーティション数制限 | 単一の論理データベースに 8,000 を超えるパーティションが存在する場合、そのデータベースに対するデータ収集はデフォルトでスキップされます。制限値を引き上げるには、PARTITIONS_HEATMAP_COLLECTION_MAX_SINGLE_LOGIC_SCHEMA_COUNT カーネルパラメーターを更新してください。 |
| コレクションタスクのスキャン制限 | 各コレクションタスクは、デフォルトで最大 8,000 パーティションをスキャンします。制限値を引き上げるには、PARTITIONS_HEATMAP_COLLECTION_MAX_SCAN カーネルパラメーターを更新してください。 |
| 表示制限 | スキャンされたパーティション数が 3,200 を超える場合、ヒートマップには TOO BIG と表示されます。また、スキャンされた元のパーティション総数が 1,600 を超えると、システムが統計情報をマージします。マージ後もパーティション数が 3,200 を超える場合は、同様に TOO BIG と表示されます。 |
| データなし | まだデータが収集されていない場合、ヒートマップには NO DATA と表示されます。 |
データ収集の有効化または無効化
ヒートマップにデータを表示するには、あらかじめデータ収集を有効化する必要があります。特権アカウントを使用して、以下の SQL コマンドを実行してください。
有効化:
SET ENABLE_SET_GLOBAL = true;
SET GLOBAL ENABLE_PARTITIONS_HEATMAP_COLLECTION = true;無効化:
SET ENABLE_SET_GLOBAL = true;
SET GLOBAL ENABLE_PARTITIONS_HEATMAP_COLLECTION = false;機能を無効化する前に収集されたデータは、引き続きヒートマップ上で表示されます。
特定のデータベースまたはテーブルの統計情報の収集
デフォルトでは、システムはすべてのデータベースおよびテーブルの統計情報を収集します。収集対象を限定してオーバーヘッドを削減するには、PARTITIONS_HEATMAP_COLLECTION_ONLY パラメーターを設定してください。
構文:
SET ENABLE_SET_GLOBAL = true;
SET GLOBAL PARTITIONS_HEATMAP_COLLECTION_ONLY = '{database}#{table1}&{table2},{database2}#{table1}';例:
customer テーブルおよび order テーブル(いずれも tpcc データベース内)、および nation テーブル(tpch データベース内)の統計情報を収集する場合:
SET ENABLE_SET_GLOBAL = true;
SET GLOBAL PARTITIONS_HEATMAP_COLLECTION_ONLY = 'tpcc#customer&order,tpch#nation';tpcc および tpch のすべてのテーブルの統計情報を収集する場合:
SET ENABLE_SET_GLOBAL = true;
SET GLOBAL PARTITIONS_HEATMAP_COLLECTION_ONLY = 'tpcc,tpch';すべてのデータベースにわたる customer および order テーブルの統計情報を収集する場合:
SET ENABLE_SET_GLOBAL = true;
SET GLOBAL PARTITIONS_HEATMAP_COLLECTION_ONLY = '#customer,#order';または、同等の記述として:
SET ENABLE_SET_GLOBAL = true;
SET GLOBAL PARTITIONS_HEATMAP_COLLECTION_ONLY = '#customer&order';すべてのデータベースおよびテーブルの統計情報を収集する場合(デフォルト動作):
SET ENABLE_SET_GLOBAL = true;
SET GLOBAL PARTITIONS_HEATMAP_COLLECTION_ONLY = '';ヒートマップの表示
PolarDB-X コンソール にログインします。
画面上部のナビゲーションバーから、ご利用のインスタンスがデプロイされているリージョンを選択します。
インスタンス ページで、PolarDB-X 2.0 タブをクリックします。
インスタンス ID をクリックします。
左側のナビゲーションウィンドウで、診断と最適化 > ヒートマップ を選択します。
ヒートマップページには、以下の4つのセクションがあります。
| セクション | 内容 |
|---|---|
| 左側ヒストグラム | 論理データベース、論理テーブル、論理パーティションを表す矩形。矩形の長さはデータ量を示し、長いほどデータ量が多いことを意味します。 |
| 下部ヒストグラム | 時間軸ごとに集計されたクエリ対象行数の合計です。任意の時点をクリックすると、その時点で全パーティションに対してクエリされた行数を確認できます。 |
| 右側ヒストグラム | パーティションごとに集計されたクエリ対象行数の合計です。任意のパーティションをクリックすると、そのパーティションのクエリ総数を確認できます。 |
| ヒートマップ(中央) | 各パーティション・各時間間隔における色の輝度。明るい黄色=最も高いクエリ頻度、黒=最も低いクエリ頻度。 |
Data Node View を有効化すると、左側ヒストグラムがデータノード単位で再編成されます。このモードでは、左側ヒストグラムにストレージノード、論理データベース、論理テーブル、論理パーティションが表示されるため、クエリ負荷が物理的なデータノード間で均等に分散されているかを確認したり、ホットパーティションを保持するノードを特定したりすることが容易になります。
特定のデータポイントの確認
ヒートマップ内の任意のセルにマウスを合わせると、以下の詳細情報が表示されます。
| 項目 | 説明 |
|---|---|
| 色付きボックス | ヒートマップのセルと一致する色で、収集期間中の1分あたりのクエリ行数を示します。 |
| 開始時刻 | 収集期間の開始時刻です。 |
| 終了時刻 | 収集期間の終了時刻です。 |
| 現在の行数 | ヒートマップを開いた時点でのパーティション内の行数です(「開始時刻」または「終了時刻」時点ではありません)。 |
| データノード | 当該パーティションが配置されているデータノードです。「-」は、DDL 操作や収集中のマージなどにより、パーティションが既に存在しないことを意味します。 |
| データベース | 当該パーティションが属する論理データベースです。 |
| テーブル | 当該パーティションが属する論理テーブルです。 |
| パーティション | 当該論理パーティションの名前です。 |