システム変数
StarRocks は、多くのシステム変数を提供しており、要件に応じて設定や変更が可能です。このセクションでは、StarRocks がサポートする変数について説明します。これらの変数の設定を確認するには、MySQL クライアントで SHOW VARIABLES コマンドを実行します。また、SET コマンドを使用して、変数を動的に設定または変更することもできます。これらの変数は、システム全体でグローバルに、現在のセッションのみで、または単一のクエリ文でのみ有効にすることができます。
StarRocks の変数は、MySQL の変数セットを参照していますが、一部の変数は MySQL クライアントプロトコルとの互換性のみを持ち、MySQL データベースでは機能しません。
注意
どのユーザーでも SHOW VARIABLES を実行し、セッションレベルで変数を有効にする権限があります。ただし、SYSTEM レベルの OPERATE 権限を持つユーザーのみが、変数をグローバルに有効にすることができます。グローバルに有効な変数は、すべての将来のセッション(現在のセッションを除く)で有効になります。
現在のセッションの 設定変更を行い、さらにその設定変更をすべての将来のセッションに適用したい場合は、
GLOBAL修飾子を使用せずに一度、使用してもう一度変更を行うことができます。例:SET query_mem_limit = 137438953472; -- 現在のセッションに適用。
SET GLOBAL query_mem_limit = 137438953472; -- すべての将来のセッションに適用。
変数の階層と種類
StarRocks は、グローバル変数、セッション変数、SET_VAR ヒントの3種類(レベル)の変数をサポートしています。それらの階層関係は次のとおりです:
- グローバル変数はグローバルレベルで有効であり、セッション変数や
SET_VARヒントによって上書きされることがあります。 - セッション変数は現在のセッションでのみ有効であり、
SET_VARヒントによって上書きされることがあります。 SET_VARヒントは、現在のクエリ文でのみ有効です。
変数の表示
SHOW VARIABLES [LIKE 'xxx'] を使用して、すべてまたは一部の変数を表示できます。例:
-- システム内のすべての変数を表示。
SHOW VARIABLES;
-- 特定のパターンに一致する変数を表示。
SHOW VARIABLES LIKE '%time_zone%';
変数の設定
変数をグローバルまたは単一のセッションで設定
変数を グローバルに または 現在のセッションのみで 有効に設定できます。グローバルに設定すると、新しい値はすべての将来のセッションで使用されますが、現在のセッションは元の値を使用します。「現在のセッションのみ」に設定すると、変数は現在のセッションでの み有効になります。
SET <var_name> = xxx; で設定された変数は、現在のセッションでのみ有効です。例:
SET query_mem_limit = 137438953472;
SET forward_to_master = true;
SET time_zone = "Asia/Shanghai";
SET GLOBAL <var_name> = xxx; で設定された変数はグローバルに有効です。例:
SET GLOBAL query_mem_limit = 137438953472;
以下の変数はグローバルにのみ有効です。単一のセッションで有効にすることはできません。これらの変数には SET GLOBAL <var_name> = xxx; を使用する必要があります。単一のセッションでそのような変数を設定しようとすると(SET <var_name> = xxx;)、エラーが返されます。
- activate_all_roles_on_login
- character_set_database
- default_rowset_type
- enable_query_queue_select
- enable_query_queue_statistic
- enable_query_queue_load
- init_connect
- lower_case_table_names
- license
- language
- query_cache_size
- query_queue_fresh_resource_usage_interval_ms
- query_queue_concurrency_limit
- query_queue_mem_used_pct_limit
- query_queue_cpu_used_permille_limit
- query_queue_pending_timeout_second
- query_queue_max_queued_queries
- system_time_zone
- version_comment
- version
さらに、変数設定は定数式もサポートしています。例:
SET query_mem_limit = 10 * 1024 * 1024 * 1024;
SET forward_to_master = concat('tr', 'u', 'e');
単一のクエリ文で変数を設定
特定のクエリに対して変数を設定する必要がある場合があります。SET_VAR ヒントを使用することで、単一の文内でのみ有効なセッション変数を設定できます。
StarRocks は、以下の文で SET_VAR の使用をサポートしています:
- SELECT
- INSERT (v3.1.12 および v3.2.0 以降)
- UPDATE (v3.1.12 および v3.2.0 以降)
- DELETE (v3.1.12 および v3.2.0 以降)
SET_VAR は、上記のキーワードの後にのみ配置され、/*+...*/ で囲まれます。
例:
SELECT /*+ SET_VAR(query_mem_limit = 8589934592) */ name FROM people ORDER BY name;
SELECT /*+ SET_VAR(query_timeout = 1) */ sleep(3);
UPDATE /*+ SET_VAR(insert_timeout=100) */ tbl SET c1 = 2 WHERE c1 = 1;
DELETE /*+ SET_VAR(query_mem_limit = 8589934592) */
FROM my_table PARTITION p1
WHERE k1 = 3;
INSERT /*+ SET_VAR(insert_timeout = 10000000) */
INTO insert_wiki_edit
SELECT * FROM FILES(
"path" = "s3://inserttest/parquet/insert_wiki_edit_append.parquet",
"format" = "parquet",
"aws.s3.access_key" = "XXXXXXXXXX",
"aws.s3.secret_key" = "YYYYYYYYYY",
"aws.s3.region" = "us-west-2"
);
単一の文で複数の変数を設定することもできます。例:
SELECT /*+ SET_VAR
(
exec_mem_limit = 515396075520,
query_timeout=10000000,
batch_size=4096,
parallel_fragment_exec_instance_num=32
)
*/ * FROM TABLE;
ユーザーのプロパティとして変数を設定
ALTER USER を 使用して、セッション変数をユーザーのプロパティとして設定できます。この機能は v3.3.3 からサポートされています。
例:
-- ユーザー jack に対してセッション変数 `query_timeout` を `600` に設定。
ALTER USER 'jack' SET PROPERTIES ('session.query_timeout' = '600');
変数の説明
変数は アルファベット順 に説明されています。global ラベルが付いた変数はグローバルにのみ有効です。他の変数はグローバルまたは単一のセッションで有効にすることができます。
activate_all_roles_on_login (global)
- 説明: StarRocks ユーザーが StarRocks クラスタに接続する際に、すべてのロール(デフォルトロールと付与されたロールを含む)を有効にするかどうか。
- 有効にすると(
true)、ユーザーのすべてのロールがログイン時にアクティブになります。これは SET DEFAULT ROLE で設定されたロールよりも優先されます。 - 無効にすると(
false)、SET DEFAULT ROLE で設定されたロールがアクティブになります。
- 有効にすると(
- デフォルト: false
- 導入バージョン: v3.0
セッションで割り当てられたロールをアクティブにしたい場合は、SET ROLE コマンドを使用してください。
auto_increment_increment
MySQL クライアント互換性のために使用されます。実際の用途はありません。
autocommit
MySQL クライアント互換性のために使用されます。実際の用途はありません。
chunk_size
- 説明: クエリ実行中に各ノードが送信する単一パケットの行数を指定するために使用されます。デフォルトは 4096 で、ソースノードが生成したデータの 4096 行ごとにパッケージ化され、宛先ノードに送信されます。行数が多いほど、大量データシナリオでのクエリスループットが向上しますが、小量データシナリオでのクエリ遅延が増加する可能性があります。また、クエリのメモリオーバーヘッドが増加する可能性があります。
batch_sizeを 1024 から 4096 の間に設定することをお勧めします。 - デフォルト: 4096
big_query_profile_threshold
-
説明: 大規模なクエリのしきい値を設定するために使用されます。セッション変数
enable_profileがfalseに設定されており、クエリの実行時間が変数big_query_profile_thresholdで指定されたしきい値を超えた場合、そのクエリのプロファイルが生成されます。注: v3.1.5 から v3.1.7、および v3.2.0 から v3.2.2 では、大規模なクエリのしきい値を設定するために
big_query_profile_second_thresholdを導入しました。v3.1.8、v3.2.3、およびそれ以降のリリースでは、このパラメータはbig_query_profile_thresholdに置き換えられ、より柔軟な設定オプションを提供します。 -
デフォルト: 0
-
単位: 秒
-
データ型: 文字列
-
導入バージョン: v3.1
catalog
- 説明: セッションが属するカタログを指定するために使用されます。
- デフォルト: default_catalog
- データ型: 文字列
- 導入バージョン: v3.2.4
cbo_decimal_cast_string_strict
- 説明: CBO が DECIMAL 型から STRING 型にデータを変換する方法を制御します。この変数が
trueに設定されている場合、v2.5.x 以降のバージョンで組み込まれたロジックが優先され、システムは厳密な変換を実行します(つまり、生成 された文字列を切り捨て、スケールの長さに基づいて 0 を埋めます)。この変数がfalseに設定されている場合、v2.5.x より前のバージョンで組み込まれたロジックが優先され、システムはすべての有効な桁を処理して文字列を生成します。 - デフォルト: true
- 導入バージョン: v2.5.14
cbo_enable_low_cardinality_optimize
- 説明: 低基数最適化を有効にするかどうか。この機能を有効にすると、STRING 列のクエリパフォーマンスが約 3 倍向上します。
- デフォルト: true
cbo_eq_base_type
- 説明: DECIMAL データと STRING データの間でデータ比較に使用されるデータ型を指定します。デフォルト値は
DECIMALであり、VARCHAR も有効な値です。この変数は=および!=比較にのみ有効です。 - データ型: 文字列
- 導入バージョン: v2.5.14
cbo_json_v2_dict_opt
- 説明: JSON v2 のパス書き換えで生成される Flat JSON の文字列サブカラムに対して、低カーディナリティ辞書最適化を有効にするかどうか。有効にすると、オプティマイザはそれらのサブカラムにグローバル辞書を構築・利用し、文字列式、GROUP BY、JOIN などを高速化できます。
- デフォルト: true
- データ型: Boolean
cbo_json_v2_rewrite
- 説明: オプティマイザで JSON v2 のパス書き換えを有効にするかどうか。有効にすると、JSON 関数(
get_json_*など)を Flat JSON のサブカラムへの直接アクセスに書き換え、述語プッシュダウン、カラムプルーニング、辞書最適化を有効化します。 - デフォルト: true
- データ型: Boolean
cbo_materialized_view_rewrite_related_mvs_limit
- 説明: クエリプランニング中に許可される候補マテリアライズドビューの最大数を指定します。
- デフォルト: 64
- 導入バージョン: v3.1.9, v3.2.5
cbo_prune_subfield
- 説明: JSON サブフィールドプルーニングを有効にするかどうか。この変数は、BE 動的パラメータ
enable_json_flatと一緒に使用する必要があります。そうでない場合、JSON データクエリのパフォーマンスが低下する可能性があります。 - デフォルト: false
- データ型: Int
- 導入バージョン: v3.3.0
enable_sync_materialized_view_rewrite
- 説明: 同期マテリアライズドビューに基づくクエリの書き換えを有効にするかどうか。
- デフォルト: true
- 導入バージョン: v3.1.11, v3.2.5
query_including_mv_names
- 説明: クエリ実行に含める非同期マテリアライズドビューの名前を指定します。この変数を使用して、候補マテリアライズドビューの数を制限し、オ プティマイザでのクエリ書き換えパフォーマンスを向上させることができます。この項目は
query_excluding_mv_namesより優先されます。 - デフォルト: 空
- データ型: 文字列
- 導入バージョン: v3.1.11, v3.2.5
query_excluding_mv_names
- 説明: クエリ実行から除外する非同期マテリアライズドビューの名前を指定します。この変数を使用して、候補マテリアライズドビューの数を制限し、オプティマイザでのクエリ書き換え時間を短縮することができます。
query_including_mv_namesはこの項目より優先されます。 - デフォルト: 空
- データ型: 文字列
- 導入バージョン: v3.1.11, v3.2.5
optimizer_materialized_view_timelimit
- 説明: マテリアライズドビューの書き換えルールが消費できる最大時間を指定します。しきい値に達すると、このルールはクエリ書き換えに使用されません。
- デフォルト: 1000
- 単位: ms
- 導 入バージョン: v3.1.9, v3.2.5
enable_materialized_view_agg_pushdown_rewrite
- 説明: マテリアライズドビュークエリ書き換えのための集計プッシュダウンを有効にするかどうか。
trueに設定されている場合、集計関数はクエリ実行中に Scan Operator にプッシュダウンされ、Join Operator が実行される前にマテリアライズドビューによって書き換えられます。これにより、Join によるデータ拡張が軽減され、クエリパフォーマンスが向上します。この機能のシナリオと制限の詳細については、Aggregation pushdown を参照してください。 - デフォルト: false
- 導入バージョン: v3.3.0
enable_materialized_view_text_match_rewrite
- 説明: テキストベースのマテリアライズドビュー書き換えを有効にするかどうか。この項目が
trueに設定されている場合、オプティマイザはクエリを既存のマテリアライズドビューと比較します。マテリアライズドビューの定義の抽象構文ツリーがクエリまたはそのサブクエリと一致する場合、クエリは書き換えられます。 - デフォルト: true
- 導入バージョン: v3.2.5, v3.3.0
materialized_view_subuqery_text_match_max_count
- 説明: クエリのサブクエリがマテリアライズドビューの定義と一致するかどうかをシステムがチェックする最大回数を指定します。
- デフォルト: 4
- 導入バージョン: v3.2.5, v3.3.0
enable_force_rule_based_mv_rewrite
- 説明: オプティマイザのルールベース最適化フェーズで複数テーブルに対するクエリの書き換えを有効にするかどうか。この機能を有効にすると、クエリ書き換えの堅牢性が向上します。ただし、クエリがマテリアライズドビューを見逃した場合、時間消費が増加します。
- デフォルト: true
- 導入バージョン: v3.3.0
enable_view_based_mv_rewrite
- 説明: ビューに基づくマテリアライズドビューのクエリ書き換えを有効にするかどうか。この項目が
trueに設定されている場合、ビューは統一されたノードとして使用され、クエリのパフォーマンスを向上させるために自身に対するクエリを書き換えます。この項目がfalseに設定されている場合、システムはビューに対するクエリを物理テーブルまたはマテリアライズドビューに対するクエリに書き換えます。 - デフォルト: false
- 導入バージョン: v3.1.9, v3.2.5, v3.3.0
enable_materialized_view_union_rewrite
- 説明: マテリアライズドビューのユニオン書き換えを有効にするかどうか。この項目が
trueに設定されている場合、マテリアライズドビューの述語がクエリの述語を満たさない場合、システムは UNION ALL を使用して述語を補完しようとします。 - デフォルト: true
- 導入バージョン: v2.5.20, v3.1.9, v3.2.7, v3.3.0
enable_materialized_view_plan_cache
- 説明: マテリアライズドビューのプランキャッシュを有効にするかどうか。これにより、マテリアライズドビューの自動書き換えパフォーマンスが最適化されます。
trueに設定すると、有効になります。 - デフォルト: true
- 導入バージョン: v2.5.13, v3.0.7, v3.1.4, v3.2.0, v3.3.0
enable_cbo_based_mv_rewrite
- 説明: CBO フェーズでマテリアライズドビューの書き換えを有効にするかどうか。これにより、クエリ書き換えの成功率を最大化できます(例:マテリアライズドビューとクエリの結合順序が異なる場合)が、オプティマイザフェーズの実行時間が増加します。
- デフォルト: true
- 導入バージョン: v3.5.5, v4.0.1
enable_parquet_reader_bloom_filter
- 説明: パフォーマンスを向上させるために Parquet ファイルのブルームフィルタ ーを有効にするかどうかを制御するブール値。
trueはブルームフィルタを有効にすることを示し、falseは無効にすることを示す。BE 設定parquet_reader_bloom_filter_enableを使用して、システムレベルでこの動作を制御することもできます。Parquet におけるブルームフィルタは、各行グループ内のカラムレベルで管理されます。Parquet ファイルに特定の列に対するブルームフィルタが含まれている場合、クエリはそれらの列に対する述語を使用して行グループを効率的にスキップすることができます。 - デフォルト: true
- 導入バージョン: v3.5
enable_plan_advisor
- 説明: 遅いクエリや手動でマークされたクエリに対するクエリフィードバック機能を有効にするかどうか。
- デフォルト: true
- 導入バージョン: v3.4.0
enable_plan_analyzer
- 説明: すべてのクエリに対するクエリフィードバック機能を有効にするかどうか。この変数は
enable_plan_advisorがtrueに設定されている場合にのみ有効です。 - デフォルト: false
- 導入バージョン: v3.4.0
enable_parquet_reader_bloom_filter
- デフォルト: true
- データ型: Boolean
- 単位: -
- 説明: Parquet ファイルの読み込み時にブルームフィルターの最適化を有効にするかどうか。
true(デフォルト): Parquet ファイルの読み込み時にブルームフィルタの最適化を有効にする。false: Parquet ファイルの読み込み時にブルームフィルターの最適化を有効にしない。
- 導入バージョン: v3.5.0
enable_parquet_reader_page_index
- デフォルト: true
- データ型: Boolean
- 単位: -
- 説明: Parquet ファイルの読み込み時にページインデックスの最適化を有効にするかどうか。
true(デフォルト): Parquet ファイルの読み込み時にページインデックスの最適化を有効にする。false: Parquet ファイルの読み込み時にページイ ンデックスの最適化を有効にしない。
- 導入バージョン: v3.5.0
follower_query_forward_mode
-
説明: クエリ文がどの FE ノードにルーティングされるかを指定します。
-
有効な値:
default: クエリ文を Leader FE または Follower FEs にルーティングします。Follower の再生進行状況に応じて、Follower FE ノードが再生進行を完了していない場合、クエリは Leader FE ノードにルーティングされます。再生進行が完了している場合、クエリは優先的に Follower FE ノードにルーティングされます。leader: クエリ文を Leader FE にルーティングします。follower: クエリ文を Follower FE にルーティングします。
-
-
デフォルト: default
-
データ型: 文字列
-
導入バージョン: v2.5.20, v3.1.9, v3.2.7, v3.3.0
character_set_database (global)
- データ型: 文字列 StarRocks がサポートする文字セット。UTF8 (
utf8) のみがサポートされています。 - デフォルト: utf8
- データ型: 文字列
connector_io_tasks_per_scan_operator
- 説明: 外部テーブルクエリ中にスキャンオペレーターによって発行される最大同時 I/O タスク数。値は整数です。現在、StarRocks は外部テーブルをクエリする際に同時 I/O タスクの数を適応的に調整できます。この機能は、デフォルトで有効になっている変数
enable_connector_adaptive_io_tasksによって制御されます。 - デフォルト: 16
- データ型: Int
- 導入バージョン: v2.5
connector_sink_compression_codec
- 説明: Hive テーブルまたは Iceberg テーブルにデータを書き込む際、または Files() でデータをエクスポートする際に使用される圧縮アルゴリズムを指定します。
- 有効な値:
uncompressed,snappy,lz4,zstd, およびgzip。 - デフォルト: uncompressed
- データ型: 文字列
- 導入バージョ ン: v3.2.3
connector_sink_target_max_file_size
- 説明: Hive テーブルまたは Iceberg テーブルにデータを書き込む際、または Files() でデータをエクスポートする際のターゲットファイルの最大サイズを指定します。この制限は厳密ではなく、ベストエフォートで適用されます。
- 単位: バイト
- デフォルト: 1073741824
- データ型: Long
- 導入バージョン: v3.3.0
count_distinct_column_buckets
- 説明: グループバイカウントディスティンクトクエリでの COUNT DISTINCT 列のバケット数。この変数は
enable_distinct_column_bucketizationがtrueに設定されている場合にのみ有効です。 - デフォルト: 1024
- 導入バージョン: v2.5
default_rowset_type (global)
コン ピューティングノードのストレージエンジンで使用されるデフォルトのストレージ形式を設定するために使用されます。現在サポートされているストレージ形式は alpha と beta です。
default_table_compression
-
説明: テーブルストレージのデフォルト圧縮アルゴリズム。サポートされている圧縮アルゴリズムは
snappy, lz4, zlib, zstdです。CREATE TABLE 文で
compressionプロパティを指定した場合、compressionで指定された圧縮アルゴリズムが有効になります。 -
デフォルト: lz4_frame
-
導入バージョン: v3.0
disable_colocate_join
- 説明: Colocation Join を有効にするかどうかを制御するために使用されます。デフォルト値は
falseで、機能が有効です。この機能が無効になっている場合、クエリプランニングは Colocation Join を実行しようとしません。 - デフォルト: false
disable_streaming_preaggregations
ストリーミング事前集計を有効にするために使用されます。デフォルト値は false で、機能が有効です。
div_precision_increment
MySQL クライアント互換性のために使用されます。実際の用途はありません。
dynamic_overwrite
- 説明: パーティションテーブルを使用した INSERT OVERWRITE の Dynamic Overwrite セマンティクスを有効にするかどうか。有効な値:
true: Dynamic Overwrite を有効にします。false: Dynamic Overwrite を無効にし、デフォルトのセマンティクスを使用します。
- デフォルト: false
- 導入バージョン: v3.4.0
enable_datacache_async_populate_mode
- 説明: デー タキャッシュを非同期モードでポピュレートするかどうか。デフォルトでは、システムは同期モードを使用してデータキャッシュをポピュレートします。つまり、データをクエリしながらキャッシュをポピュレートします。
- デフォルト: false
- 導入バージョン: v3.2.7
enable_connector_adaptive_io_tasks
- 説明: 外部テーブルをクエリする際に同時 I/O タスクの数を適応的に調整するかどうか。デフォルト値は
trueです。この機能が有効でない場合、変数connector_io_tasks_per_scan_operatorを使用して同時 I/O タスクの数を手動で設定できます。 - デフォルト: true
- 導入バージョン: v2.5
enable_distinct_column_bucketization
-
説明: グループバイカウントディスティンクトクエリで COUNT DISTINCT 列のバケット化を有効にするかどうか。クエリ
select a, count(distinct b) from t group by a;を例にとります。GROUP BY 列aが低基数列で、COUNT DISTINCT 列bが高基数列でデータスキューが激しい場合、パフォーマンスボトルネックが発生します。この状況では、COUNT DISTINCT 列のデータを複数のバケットに分割してデータをバランスさせ、データスキューを防ぐことができます。この変数は、変数count_distinct_column_bucketsと一緒に使用する必要があります。クエリに
skewヒントを追加することで、COUNT DISTINCT 列のバケット化を有効にすることもできます。例:select a,count(distinct [skew] b) from t group by a;。 -
デフォルト: false、つまりこの機能は無効です。
-
導入バージョン: v2.5
enable_group_by_compressed_key
- 説明: GROUP BY キー列を圧縮するために正確な統計情報を使用するかどうか。有効な値:
trueとfalse。 - デフォルト: true
- 導入バージョン: v4.0
enable_gin_filter
- 説明: クエリ中に全文逆インデックスを利用するかどうか。
- デフォルト: true
- 導入バージョン: v3.3.0
enable_group_level_query_queue (global)
- 説明: リソースグループレベルのクエリキューを有効にするかどうか。
- デフォルト: false、つまりこの機能は無効です。
- 導入バージョン: v3.1.4
enable_insert_partial_update
- 説明:主キーテーブルに対するINSERTステートメントの部分更新を有効化するかどうか。この項目が
true(デフォルト)に設定されている場合、INSERT ステートメントで指定された列がサブセット(テーブル内のすべての非生成列の数より少ない)であるとき、システムは部分更新を実行し、指定された列のみを更新しながら他の列の既存値を保持します。falseに設定すると、システムは既存の値を保持する代わりに、指定されていない列に対してデフォルト値を使用します。この機能は、主キーテーブルの特定の列を更新する際に他の列の値に影響を与えない場合に特に有用です。 - デフォルト値:true
- 導入バージョン:v3.3.20、v3.4.9、v3.5.8、v4.0.2
enable_iceberg_metadata_cache
- 説明: Iceberg テーブルのポインタとパーティション名をキャッシュするかどうか。v3.2.1 から v3.2.3 では、メタストアサービスに関係なく、このパラメータはデフォルトで
trueに設定されています。v3.2.4 以降では、Iceberg クラスタがメタストアとして AWS Glue を使用している場合、このパラメータはデフォルトでtrueに設定されています。ただし、Iceberg クラスタが Hive メタストアなどの他のメタストアサービスを使用している場合、このパラメータはデフォルトでfalseに設定されています。 - 導入バージョン: v3.2.1
enable_metadata_profile
- 説明: Iceberg Catalog のメタデータ収集クエリに対して Profile を有効にするかどうか。
- デフォルト: true
- 導入バージョン: v3.3.3
plan_mode
- 説明: Iceberg Catalog のメタデータ取得戦略。詳細は Iceberg Catalog metadata retrieval strategy を参照してください。有効な値:
auto: システムが自動的に取得プランを選択します。local: ローカルキャッシュプランを使用します。distributed: 分散プランを使用します。
- デフォルト: auto
- 導入バージョン: v3.3.3
enable_iceberg_column_statistics
- 説明: 列の統計情報(
min、max、null count、row size、およびndv(puffin ファイルが存在する場合))を取得するかどうか。この項目をfalseに設定すると、行数情報のみが収集されます。 - デフォルト: false
- 導入バージョン: v3.4
metadata_collect_query_timeout
- 説明: Iceberg Catalog メタデータ収集クエリのタイムアウト時間。
- 単位: 秒
- デフォルト: 60
- 導入バージョン: v3.3.3
enable_insert_strict
- 説明: Files() からの INSERT を使用してデータをロードする際に厳密モードを有効にするかどうか。有効な値:
trueおよびfalse(デフォルト)。厳密モードが有効な場合、システムは資格のある行のみをロードします。不適格な行をフィルタリングし、不適格な行の詳細を返します。詳細は Strict mode を参照してください。v3.4.0 より前のバージョンでは、enable_insert_strictがtrueに設定されている場合、不適格な行があると INSERT ジョブが失敗します。 - デフォルト: true
insert_max_filter_ratio
- 説明: Files() からの INSERT の最大エラー許容率。データ品質が不十分なためにフィルタリングされるデータレコードの最大比率です。不適格なデータレコードの比率がこのしきい値に達すると、ジョブは失敗します。範囲: [0, 1]。
- デフォルト: 0
- 導入バージョン: v3.4.0
insert_timeout
- 説明: INSERT ジョブのタイムアウト時間。単位: 秒。v3.4.0 以降、
insert_timeoutは INSERT に関与する操作(例: UPDATE、DELETE、CTAS、マテリアライズドビューのリフレッシュ、統計収集、PIPE)に適用され、query_timeoutを置き換えます。 - デフォルト: 14400
- 導入バージョン: v3.4.0
enable_materialized_view_for_insert
- 説明: StarRocks が INSERT INTO SELECT 文でクエリを書き換えることを許可するかどうか。
- デフォルト: false、つまりそのようなシナリオでのクエリ書き換えはデフォルトで無効です。
- 導入バージョン: v2.5.18, v3.0.9, v3.1.7, v3.2.2
enable_rule_based_materialized_view_rewrite
- 説明: ルールベースのマテリアライズドビュークエリ書き換えを有効にするかどうかを制御します。この変数は主に単一テーブルクエリ書き換えに使用されます。
- デフォルト: true
- データ型: Boolean
- 導入バージョン: v2.5
enable_short_circuit
- 説明: クエリのショートサーキットを有効にするかどうか。デフォルト:
false。trueに設定されている場合、クエリが条件を満たすとき(クエリがポイントクエリであるかどうかを評価するための条件)、WHERE 句の条件列がすべての主キー列を含み、WHERE 句の演算子が=またはINの場合、クエリはショートサーキットを取ります。 - デフォルト: false
- 導入バージョン: v3.2.3
enable_spm_rewrite
- 説明: SQL Plan Manager (SPM) クエリ改写を有効にするかどうか。有効にすると、StarRocks は自動的にクエリを拘束されたクエリプランに改写し、クエリのパフォーマンスと安定性を向上させます。
- デフォルト: false
enable_spill
- 説明: 中間結果のスピルを有効にするかどうか。デフォルト:
false。trueに設定されている場合、StarRocks はクエリ内の集計、ソート、またはジョインオペレーターを処理する際にメモリ使用量を削減するために中間結果をディスクにスピルします。 - デフォルト: false
- 導入バージョン: v3.0
enable_spill_to_remote_storage
- 説明: 中間結果をオブジェクトストレージにスピルするかどうか。
trueに設定されている場合、StarRocks はローカルディスクの容量制限に達した後、spill_storage_volumeで指定されたストレージボリュームに中間結果をスピルします。詳細については、Spill to object storage を参照してください。 - デフォルト: false
- 導入バージョン: v3.3.0
enable_strict_order_by
- 説明: ORDER BY で参照される列名が曖昧であるかどうかをチェックするために使用されます。この変数がデフォルト値
TRUEに設定されてい る場合、次のようなクエリパターンに対してエラーが報告されます:クエリの異なる式で重複したエイリアスが使用され、このエイリアスが ORDER BY のソートフィールドでもある場合、例:select distinct t1.* from tbl1 t1 order by t1.k1;。このロジックは v2.3 およびそれ以前と同じです。この変数がFALSEに設定されている場合、緩やかな重複排除メカニズムが使用され、そのようなクエリを有効な SQL クエリとして処理します。 - デフォルト: true
- 導入バージョン: v2.5.18 および v3.1.7
enable_profile
-
説明: クエリのプロファイルを分析のために送信するかどうかを指定します。デフォルト値は
falseで、プロファイルは必要ありません。デフォルトでは、クエリエラーが BE で発生した場合にのみプロファイルが FE に送信されます。プロファイルの送信はネットワークオーバーヘッドを引き起こし、高い並行性に影響を与えます。
クエリのプロファイルを分析する必要がある場合、この変数を
trueに設定できます。クエリが完了した後、現在接続されている FE のウェブページ(アドレス:fe_host:fe_http_port/query)でプロファイルを表示できます。このページには、enable_profileがオンになっている最新の 100 件のクエリのプロファイルが表示されます。 -
デフォルト: false
enable_query_queue_load (global)
- 説明: ロードタスクのクエリキューを有効にするためのブール値。
- デフォルト: false
enable_query_queue_select (global)
- 説明: SELECT クエリのクエリキューを有効にするかどうか。
- デフォルト: false
enable_query_queue_statistic (global)
- 説明: 統計クエリのクエリキューを有効にするかどうか。
- デフォルト: false
enable_query_tablet_affinity
-
説明: 同じタブレットに対する複数のクエリを固定レプリカに 向けるかどうかを制御するためのブール値。
クエリするテーブルに多数のタブレットがあるシナリオでは、この機能によりクエリパフォーマンスが大幅に向上します。なぜなら、タブレットのメタ情報とデータがメモリにより迅速にキャッシュされるからです。
ただし、ホットスポットタブレットがある場合、この機能はクエリパフォーマンスを低下させる可能性があります。なぜなら、クエリを同じ BE に向けるため、高い並行性シナリオで複数の BE のリソースを十分に活用できなくなるからです。
-
デフォルト: false、つまりシステムは各クエリに対してレプリカを選択します。
-
導入バージョン: v2.5.6, v3.0.8, v3.1.4, および v3.2.0
enable_lake_tablet_internal_parallel
- 説明: 共有データクラスタ内のクラウドネイティブテーブルに対する並列スキャンを有効にするかどうか。
- デフォルト: true
- データ型: Boolean
- 導入バージョン: v3.3.0