メインコンテンツまでスキップ
バージョン: Latest-3.4

CREATE ANALYZE

説明

CBO 統計を収集するための自動収集タスクをカスタマイズします。

デフォルトでは、StarRocks はテーブルの完全な統計を自動的に収集します。データの更新を5分ごとにチェックし、データの変更が検出されると、データ収集が自動的にトリガーされます。自動の完全収集を使用したくない場合は、FE の設定項目 enable_collect_full_statisticfalse に設定し、収集タスクをカスタマイズできます。

動作の違い:

  • バージョン 3.2.12 および 3.3.4 以前では、カスタムの自動収集タスクを作成するには、自動の完全収集を無効にする必要があります (enable_collect_full_statistic = false)。そうしないと、カスタムタスクは効果を発揮しません。
  • これらのバージョン以降では、analyze ジョブを作成し、システムタスクを保持できます。ユーザーが作成したタスクは、競合がある場合にシステムタスクを上書きします。

このステートメントは v2.4 からサポートされています。

構文

-- すべてのデータベースの統計を自動的に収集します。
CREATE ANALYZE [FULL|SAMPLE] ALL PROPERTIES (property [,property])

-- データベース内のすべてのテーブルの統計を自動的に収集します。
CREATE ANALYZE [FULL|SAMPLE] DATABASE db_name
PROPERTIES (property [,property])

-- テーブル内の指定された列の統計を自動的に収集します。
CREATE ANALYZE [FULL|SAMPLE] TABLE tbl_name (col_name [,col_name])
PROPERTIES (property [,property])

パラメーターの説明

  • 収集タイプ

    • FULL: 完全収集を示します。
    • SAMPLE: サンプル収集を示します。
    • 収集タイプが指定されていない場合、デフォルトでサンプル収集が使用されます。
  • col_name: 統計を収集する列。複数の列はカンマ (,) で区切ります。このパラメーターが指定されていない場合、テーブル全体が収集されます。

  • PROPERTIES: カスタムパラメーター。PROPERTIES が指定されていない場合、fe.conf のデフォルト設定が使用されます。実際に使用されるプロパティは、SHOW ANALYZE JOB の出力の Properties 列で確認できます。

PROPERTIESTypeDefault valueDescription
statistic_auto_collect_ratioFLOAT0.8自動収集の統計が健全かどうかを判断するためのしきい値。このしきい値を下回る場合、自動収集がトリガーされます。
statistics_max_full_collect_data_sizeINT100自動収集がデータを収集する最大パーティションサイズ。単位: GB。この値を超えるパーティションの場合、完全収集は破棄され、サンプル収集が代わりに実行されます。
statistic_sample_collect_rowsINT200000収集する最小行数。このパラメーター値がテーブルの実際の行数を超える場合、完全収集が実行されます。

例 1: 自動完全収集

-- すべてのデータベースの完全な統計を自動的に収集します。
CREATE ANALYZE ALL;

-- データベースの完全な統計を自動的に収集します。
CREATE ANALYZE DATABASE db_name;

-- データベース内のすべてのテーブルの完全な統計を自動的に収集します。
CREATE ANALYZE FULL DATABASE db_name;

-- テーブル内の指定された列の完全な統計を自動的に収集します。
CREATE ANALYZE TABLE tbl_name(c1, c2, c3);

例 2: 自動サンプル収集

-- デフォルト設定を使用してデータベース内のすべてのテーブルの統計を自動的に収集します。
CREATE ANALYZE SAMPLE DATABASE db_name;

-- 統計の健全性と収集する行数を指定して、テーブル内の指定された列の統計を自動的に収集します。
CREATE ANALYZE SAMPLE TABLE tbl_name(c1, c2, c3) PROPERTIES(
"statistic_auto_collect_ratio" = "0.5",
"statistic_sample_collect_rows" = "1000000"
);

参考文献

SHOW ANALYZE JOB: カスタム収集タスクのステータスを表示します。

DROP ANALYZE: カスタム収集タスクを削除します。

KILL ANALYZE: 実行中のカスタム収集タスクをキャンセルします。

CBO の統計収集に関する詳細は、Gather statistics for CBO を参照してください。