SQL Digest
このトピックでは、StarRocks の SQL Digest 機能について紹介します。この機能は v3.3.6 以降でサポートされています。
概要
SQL Digest は、パラメータを削除した履歴 SQL ステートメントから生成されるフィンガープリントです。同じ構造で異なるパラメータを持つ SQL ステートメントをクラスタリングするのに役立ちます。
SQL Digest の一般的な使用例には以下があります:
- クエリ履歴で同じ構造だが異なるパラメータを持つ他の SQL ステートメントを見つける
- 同じ構造の SQL の実行頻度、累積時間、その他の統計を追跡する
- システム内で最も時間のかかる SQL パターンを特定する
StarRocks では、SQL Digest は主に監査ログ fe.audit.log を通じて記録されます。例えば、次の 2 つの SQL ステートメントを実行します:
SELECT count(*) FROM lineorder WHERE lo_orderdate > '19920101';
SELECT count(*) FROM lineorder WHERE lo_orderdate > '19920202';
2 つの同じ Digest が fe.audit.log に生成されます:
Digest=f58bb71850d112014f773717830e7f77
Digest=f58bb71850d112014f773717830e7f77
使用方法
前提条件
この機能を有効にするには、FE の設定項目 enable_sql_digest を true に設定する必要があります。
次のステートメントを実行して動的に有効にします:
ADMIN SET FRONTEND CONFIG ('enable_sql_digest'='true');
永続的に有効にするには、FE 設定ファイル fe.conf に enable_sql_digest = true を追加し、FE を再起動する必要があります。
この機能を有効にした後、AuditLoader プラグインをインストールして、SQL ステートメントの統計分析を行うことができます。