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

システム変数

StarRocks は、多くのシステム変数を提供しており、要件に応じて設定や変更が可能です。このセクションでは、StarRocks がサポートする変数について説明します。これらの変数の設定は、MySQL クライアントで SHOW VARIABLES コマンドを実行することで確認できます。また、SET コマンドを使用して変数を動的に設定または変更することもできます。これらの変数は、システム全体でグローバルに、現在のセッションのみで、または単一のクエリステートメントでのみ有効にすることができます。

StarRocks の変数は MySQL の変数セットを参照していますが、一部の変数は MySQL クライアントプロトコルと互換性があるだけで、MySQL データベースでは機能しません

注意

どのユーザーも SHOW VARIABLES を実行し、セッションレベルで変数を有効にする権限を持っています。しかし、システムレベルの 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; を使用する必要があります。単一のセッションでそのような変数を設定しようとすると、エラーが返されます。

  • 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(query_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(query_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_profilefalse に設定されており、クエリが 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 データの間でデータ比較に使用されるデータ型を指定します。デフォルト値は VARCHAR で、DECIMAL も有効な値です。この変数は = および != 比較にのみ有効です。
  • データ型: 文字列
  • 導入バージョン: v2.5.14
  • 説明: クエリプランニング中に許可される候補マテリアライズドビューの最大数を指定します。
  • デフォルト: 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

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

  • 説明: group-by-count-distinct クエリにおける COUNT DISTINCT 列のバケット数。この変数は enable_distinct_column_bucketizationtrue に設定されている場合にのみ有効です。
  • デフォルト: 1024
  • 導入バージョン: v2.5

default_rowset_type (global)

コンピューティングノードのストレージエンジンで使用されるデフォルトのストレージ形式を設定するために使用されます。現在サポートされているストレージ形式は alphabeta です。

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 クライアント互換性のために使用されます。実用的な使用法はありません。

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

  • 説明: group-by-count-distinct クエリにおける 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_gin_filter

enable_group_level_query_queue (global)

  • 説明: リソースグループレベルのクエリキューを有効にするかどうか。
  • デフォルト: false、この機能は無効であることを意味します。
  • 導入バージョン: v3.1.4

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

metadata_collect_query_timeout

  • 説明: Iceberg Catalog メタデータ収集クエリのタイムアウト時間。
  • 単位: 秒
  • デフォルト: 60
  • 導入バージョン: v3.3.3

enable_insert_strict

INSERT ステートメントを使用してデータをロードする際に厳密モードを有効にするために使用されます。デフォルト値は true で、厳密モードがデフォルトで有効であることを示します。詳細は Strict mode を参照してください。

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
  • データ型: ブール値
  • 導入バージョン: v2.5

enable_short_circuit

  • 説明: クエリのショートサーキットを有効にするかどうか。デフォルト: falsetrue に設定されている場合、クエリが条件を満たすと(クエリがポイントクエリであるかどうかを評価するため)、WHERE 句の条件列がすべての主キー列を含み、WHERE 句の演算子が = または IN である場合、クエリはショートサーキットを取ります。
  • デフォルト: false
  • 導入バージョン: v3.2.3

enable_spill

  • 説明: 中間結果のスピリングを有効にするかどうか。デフォルト: falsetrue に設定されている場合、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

  • 説明: 共有データクラスタでクラウドネイティブテーブルのための並列スキャンを有効にするかどうか。
  • デフォルト: false
  • データ型: ブール値
  • 導入バージョン: v3.3.0

tablet_internal_parallel_mode

  • 説明: タブレットの内部並列スキャン戦略。有効な値:
    • auto: BE または CN ノードでスキャンされるタブレットの数が並列度 (DOP) より少ない場合、システムはタブレットの推定サイズに基づいて並列スキャンが必要かどうかを自動的に判断します。
    • force_split: タブレットを強制的に分割し、並列スキャンを実行します。
  • デフォルト: auto
  • データ型: 文字列
  • 導入バージョン: v2.5.0

enable_scan_datacache

  • 説明: データキャッシュ機能を有効にするかどうかを指定します。この機能を有効にすると、StarRocks は外部ストレージシステムから読み取ったホットデータをブロックにキャッシュし、クエリと分析を加速します。詳細は Data Cache を参照してください。バージョン 3.2 より前では、この変数は enable_scan_block_cache として名前が付けられていました。
  • デフォルト: false
  • 導入バージョン: v2.5

populate_datacache_mode

  • 説明: 外部ストレージシステムからデータブロックを読み取る際のデータキャッシュのポピュレーション動作を指定します。有効な値:
    • auto (デフォルト): システムはポピュレーションルールに基づいてデータを選択的にキャッシュします。
    • always: 常にデータをキャッシュします。
    • never: データをキャッシュしません。
  • デフォルト: auto
  • 導入バージョン: v3.3.2

enable_datacache_io_adaptor

  • 説明: データキャッシュ I/O アダプタを有効にするかどうか。これを true に設定すると、機能が有効になります。この機能が有効になると、ディスク I/O 負荷が高い場合に一部のキャッシュ要求をリモートストレージに自動的にルーティングし、ディスクの負荷を軽減します。
  • デフォルト: true
  • 導入バージョン: v3.3.0

enable_file_metacache

  • 説明: リモートストレージのファイルのメタデータキャッシュ(フッターキャッシュ)を有効にするかどうか。これを true に設定すると、機能が有効になります。フッターキャッシュは、解析されたフッターオブジェクトをメモリに直接キャッシュします。後続のクエリで同じファイルのフッターがアクセスされると、オブジェクト記述子をキャッシュから直接取得でき、繰り返しの解析を回避できます。この機能はデータキャッシュのメモリモジュールを使用してデータをキャッシュします。したがって、BE パラメータ datacache_enabletrue に設定され、datacache_mem_size に適切な値が設定されていることを確認する必要があります。
  • デフォルト: true
  • 導入バージョン: v3.3.0

enable_tablet_internal_parallel

  • 説明: タブレットの適応並列スキャンを有効にするかどうか。この機能を有効にすると、複数のスレッドを使用して 1 つのタブレットをセグメントごとにスキャンでき、スキャンの同時実行性が向上します。
  • デフォルト: true
  • 導入バージョン: v2.3

enable_query_cache

  • 説明: クエリキャッシュ機能を有効にするかどうかを指定します。有効な値:true および false。true はこの機能を有効にし、false はこの機能を無効にします。この機能が有効な場合、Query Cache のアプリケーションシナリオで指定された条件を満たすクエリに対してのみ機能します。
  • デフォルト: false
  • 導入バージョン: v2.5

enable_adaptive_sink_dop

  • 説明: データロードのための適応並行性を有効にするかどうかを指定します。この機能を有効にすると、システムは INSERT INTO および Broker Load ジョブのロード並行性を自動的に設定します。これは pipeline_dop のメカニズムと同等です。新しくデプロイされた v2.5 StarRocks クラスタでは、デフォルトで値は true です。v2.4 からアップグレードされた v2.5 クラスタでは、値は false です。
  • デフォルト: false
  • 導入バージョン: v2.5

enable_pipeline_engine

  • 説明: パイプライン実行エンジンを有効にするかどうかを指定します。true は有効を示し、false は無効を示します。デフォルト値:true
  • デフォルト: true

enable_sort_aggregate

  • 説明: ソートされたストリーミングを有効にするかどうかを指定します。true はデータストリーム内のデータをソートするためにソートされたストリーミングが有効であることを示します。
  • デフォルト: false
  • 導入バージョン: v2.5

enable_global_runtime_filter

グローバルランタイムフィルタ(RF の略)を有効にするかどうか。RF はランタイムでデータをフィルタリングします。データフィルタリングは通常、ジョイン段階で発生します。複数のテーブルジョイン中に、述語プッシュダウンなどの最適化を使用してデータをフィルタリングし、ジョインのスキャン行数とシャッフル段階の I/O を削減し、クエリを高速化します。

StarRocks は 2 種類の RF を提供します:ローカル RF とグローバル RF。ローカル RF は Broadcast Hash Join に適しており、グローバル RF は Shuffle Join に適しています。

デフォルト値:true、グローバル RF が有効であることを意味します。この機能が無効になっている場合、グローバル RF は効果を発揮しません。ローカル RF は引き続き機能します。

enable_multicolumn_global_runtime_filter

複数列のグローバルランタイムフィルタを有効にするかどうか。デフォルト値:false、複数列のグローバル RF が無効であることを意味します。

Broadcast Join および Replicated Join 以外のジョインに複数の等値ジョイン条件がある場合:

  • この機能が無効になっている場合、ローカル RF のみが機能します。
  • この機能が有効になっている場合、複数列のグローバル RF が有効になり、パーティション by 句に multi-column を含みます。

enable_write_hive_external_table

  • 説明: Hive の外部テーブルにデータをシンクすることを許可するかどうか。
  • デフォルト: false
  • 導入バージョン: v3.2

event_scheduler

MySQL クライアント互換性のために使用されます。実用的な使用法はありません。

enable_strict_type

  • 説明: すべての複合述語および WHERE 句内のすべての式に対して暗黙の変換を許可するかどうか。
  • デフォルト: false
  • 導入バージョン: v3.1

force_streaming_aggregate

集計ノードが計算のためにストリーミング集計を有効にするかどうかを制御するために使用されます。デフォルト値は false で、機能が有効でないことを意味します。

forward_to_leader

一部のコマンドを実行のためにリーダー FE に転送するかどうかを指定するために使用されます。エイリアス:forward_to_master。デフォルト値は false で、リーダー FE に転送しないことを意味します。StarRocks クラスタには複数の FE があり、そのうちの 1 つがリーダー FE です。通常、ユーザーは任意の FE に接続してフル機能の操作を行うことができます。ただし、一部の情報はリーダー FE にのみ存在します。

たとえば、SHOW BACKENDS コマンドがリーダー FE に転送されない場合、ノードが生きているかどうかなどの基本情報のみを表示できます。リーダー FE に転送することで、ノードの起動時間や最後のハートビート時間などの詳細情報を取得できます。

この変数に影響を与えるコマンドは次のとおりです:

  • SHOW FRONTENDS: リーダー FE に転送することで、ユーザーは最後のハートビートメッセージを表示できます。

  • SHOW BACKENDS: リーダー FE に転送することで、ユーザーは起動時間、最後のハートビート情報、ディスク容量情報を表示できます。

  • SHOW BROKER: リーダー FE に転送することで、ユーザーは起動時間と最後のハートビート情報を表示できます。

  • SHOW TABLET

  • ADMIN SHOW REPLICA DISTRIBUTION

  • ADMIN SHOW REPLICA STATUS: リーダー FE に転送することで、ユーザーはリーダー FE のメタデータに保存されているタブレット情報を表示できます。通常、タブレット情報は異なる FE のメタデータで同じであるべきです。エラーが発生した場合、この方法を使用して現在の FE とリーダー FE のメタデータを比較できます。

  • Show PROC: リーダー FE に転送することで、ユーザーはメタデータに保存されている PROC 情報を表示できます。これは主にメタデータの比較に使用されます。

group_concat_max_len

  • 説明: group_concat 関数によって返される文字列の最大長。
  • デフォルト: 1024
  • 最小値: 4
  • 単位: 文字
  • データ型: Long

hash_join_push_down_right_table

  • 説明: ジョインクエリで右テーブルに対するフィルタ条件を使用して左テーブルのデータをフィルタリングできるかどうかを制御するために使用されます。そうすることで、クエリ中に処理する必要があるデータ量を削減できます。 デフォルト: true は操作が許可され、システムが左テーブルをフィルタリングできるかどうかを決定することを示します。false は操作が無効であることを示します。デフォルト値は true です。

init_connect (global)

MySQL クライアント互換性のために使用されます。実用的な使用法はありません。

interactive_timeout

MySQL クライアント互換性のために使用されます。実用的な使用法はありません。

io_tasks_per_scan_operator

  • 説明: スキャンオペレーターによって発行される同時 I/O タスクの数。HDFS や S3 などのリモートストレージシステムにアクセスしたいが、レイテンシーが高い場合、この値を増やします。ただし、値が大きいほどメモリ消費が増加します。
  • デフォルト: 4
  • データ型: Int
  • 導入バージョン: v2.5

jit_level

  • 説明: 式の JIT コンパイルが有効になるレベル。有効な値:
    • 1: システムはコンパイル可能な式に対して適応的に JIT コンパイルを有効にします。
    • -1: JIT コンパイルはすべてのコンパイル可能な非定数式に対して有効です。
    • 0: JIT コンパイルは無効です。この機能にエラーが返された場合、手動で無効にすることができます。
  • デフォルト: 1
  • データ型: Int
  • 導入バージョン: -

language (global)

MySQL クライアント互換性のために使用されます。実用的な使用法はありません。

license (global)

  • 説明: StarRocks のライセンスを表示します。
  • デフォルト: Apache License 2.0

load_mem_limit

インポート操作のメモリ制限を指定します。デフォルト値は 0 で、この変数が使用されず、query_mem_limit が代わりに使用されることを意味します。

この変数は、クエリとインポートの両方を含む INSERT 操作にのみ使用されます。ユーザーがこの変数を設定しない場合、クエリとインポートのメモリ制限は exec_mem_limit に設定されます。そうでない場合、クエリのメモリ制限は exec_mem_limit に設定され、インポートのメモリ制限は load_mem_limit に設定されます。

他のインポート方法(BROKER LOADSTREAM LOAD など)は、メモリ制限に exec_mem_limit を使用します。

log_rejected_record_num (v3.1 以降)

不適格なデータ行をログに記録できる最大数を指定します。有効な値:0-1、および任意の非ゼロ正の整数。デフォルト値:0

  • 0 は、フィルタリングされたデータ行がログに記録されないことを指定します。
  • -1 は、フィルタリングされたすべてのデータ行がログに記録されることを指定します。
  • 非ゼロの正の整数 n は、各 BE でフィルタリングされた最大 n 行のデータ行がログに記録されることを指定します。

lower_case_table_names (global)

MySQL クライアント互換性のために使用されます。実用的な使用法はありません。StarRocks のテーブル名は大文字と小文字を区別します。

materialized_view_rewrite_mode (v3.2 以降)

非同期マテリアライズドビューのクエリ書き換えモードを指定します。有効な値:

  • disable: 非同期マテリアライズドビューの自動クエリ書き換えを無効にします。
  • default (デフォルト値): 非同期マテリアライズドビューの自動クエリ書き換えを有効にし、オプティマイザがコストに基づいてクエリがマテリアライズドビューを使用して書き換えられるかどうかを決定します。クエリが書き換えられない場合、ベーステーブルのデータを直接スキャンします。
  • default_or_error: 非同期マテリアライズドビューの自動クエリ書き換えを有効にし、オプティマイザがコストに基づいてクエリがマテリアライズドビューを使用して書き換えられるかどうかを決定します。クエリが書き換えられない場合、エラーが返されます。
  • force: 非同期マテリアライズドビューの自動クエリ書き換えを有効にし、オプティマイザがマテリアライズドビューを使用してクエリを書き換えることを優先します。クエリが書き換えられない場合、ベーステーブルのデータを直接スキャンします。
  • force_or_error: 非同期マテリアライズドビューの自動クエリ書き換えを有効にし、オプティマイザがマテリアライズドビューを使用してクエリを書き換えることを優先します。クエリが書き換えられない場合、エラーが返されます。

max_allowed_packet

  • 説明: JDBC 接続プール C3P0 との互換性のために使用されます。この変数は、クライアントとサーバー間で送信できるパケットの最大サイズを指定します。
  • デフォルト: 33554432 (32 MB)。クライアントが "PacketTooBigException" を報告する場合、この値を上げることができます。
  • 単位: バイト
  • データ型: Int

max_pushdown_conditions_per_column

  • 説明: 列に対してプッシュダウンできる述語の最大数。
  • デフォルト: -1、be.conf ファイルの値が使用されることを示します。この変数が 0 より大きい値に設定されている場合、be.conf の値は無視されます。
  • データ型: Int

max_scan_key_num

  • 説明: 各クエリによってセグメント化されるスキャンキーの最大数。
  • デフォルト: -1、be.conf ファイルの値が使用されることを示します。この変数が 0 より大きい値に設定されている場合、be.conf の値は無視されます。

nested_mv_rewrite_max_level

  • 説明: クエリ書き換えに使用できるネストされたマテリアライズドビューの最大レベル。
  • 値の範囲: [1, +∞)。値が 1 の場合、ベーステーブルに作成されたマテリアライズドビューのみがクエリ書き換えに使用されます。
  • デフォルト: 3
  • データ型: Int

net_buffer_length

MySQL クライアント互換性のために使用されます。実用的な使用法はありません。

net_read_timeout

MySQL クライアント互換性のために使用されます。実用的な使用法はありません。

net_write_timeout

MySQL クライアント互換性のために使用されます。実用的な使用法はありません。

new_planner_optimize_timeout

  • 説明: クエリオプティマイザのタイムアウト時間。オプティマイザがタイムアウトすると、エラーが返され、クエリが停止され、クエリパフォーマンスに影響を与えます。この変数をクエリに基づいて大きな値に設定するか、StarRocks の技術サポートに連絡してトラブルシューティングを行うことができます。タイムアウトは、クエリにジョインが多すぎる場合に発生することがよくあります。
  • デフォルト: 3000
  • 単位: ms

parallel_exchange_instance_num

上位ノードが実行計画で下位ノードからデータを受信するために使用する交換ノードの数を設定するために使用されます。デフォルト値は -1 で、交換ノードの数は下位ノードの実行インスタンスの数と等しいことを意味します。この変数が 0 より大きく、下位ノードの実行インスタンスの数より小さい場合、交換ノードの数は設定値と等しくなります。

分散クエリ実行計画では、上位ノードには通常、下位ノードの異なる BE 上の実行インスタンスからデータを受信するための 1 つ以上の交換ノードがあります。通常、交換ノードの数は下位ノードの実行インスタンスの数と等しいです。

集計後にデータ量が大幅に減少する集計クエリシナリオでは、この変数を小さい値に変更してリソースオーバーヘッドを削減することができます。例として、重複キーテーブルを使用して集計クエリを実行することが挙げられます。

parallel_fragment_exec_instance_num

各 BE でノードをスキャンするために使用されるインスタンスの数を設定するために使用されます。デフォルト値は 1 です。

クエリプランは通常、一連のスキャン範囲を生成します。このデータは複数の BE ノードに分散されています。BE ノードには 1 つ以上のスキャン範囲があり、デフォルトでは、各 BE ノードのスキャン範囲のセットは 1 つの実行インスタンスによってのみ処理されます。マシンリソースが十分な場合、この変数を増やして、効率のために 1 つのスキャン範囲を同時に処理する実行インスタンスを増やすことができます。

スキャンインスタンスの数は、上位レベルの他の実行ノード(集計ノードやジョインノードなど)の数を決定します。したがって、クエリプラン実行全体の同時実行性が向上します。この変数を変更することで効率を向上させることができますが、値が大きいほどマシンリソース(CPU、メモリ、ディスク IO など)が多く消費されます。

partial_update_mode

  • 説明: 部分更新のモードを制御するために使用されます。有効な値:

    • auto (デフォルト): システムは UPDATE ステートメントと関与する列を分析して部分更新のモードを自動的に決定します。
    • column: 部分更新に列モードを使用します。これは、少数の列と多数の行を含む部分更新に特に適しています。

    詳細は UPDATE を参照してください。

  • デフォルト: auto

  • 導入バージョン: v3.1

performance_schema (global)

MySQL JDBC バージョン 8.0.16 以降との互換性のために使用されます。実用的な使用法はありません。

prefer_compute_node

  • 説明: FEs がクエリ実行計画を CN ノードに配布するかどうかを指定します。有効な値:
    • true: FEs がクエリ実行計画を CN ノードに配布することを示します。
    • false: FEs がクエリ実行計画を CN ノードに配布しないことを示します。
  • デフォルト: false
  • 導入バージョン: v2.4

pipeline_dop

  • 説明: パイプラインインスタンスの並行性を指定し、クエリの同時実行性を調整します。デフォルト値:0、システムが各パイプラインインスタンスの並行性を自動的に調整することを示します。この変数を 0 より大きい値に設定することもできます。一般的に、物理 CPU コア数の半分の値に設定します。

    v3.0 以降、StarRocks はクエリの並行性に基づいてこの変数を適応的に調整します。

  • デフォルト: 0

  • データ型: Int

pipeline_profile_level

  • 説明: クエリプロファイルのレベルを制御します。クエリプロファイルには通常、フラグメント、フラグメントインスタンス、パイプライン、パイプラインドライバー、オペレーターの 5 つのレイヤーがあります。異なるレベルはプロファイルの異なる詳細を提供します:

    • 0: StarRocks はプロファイルのメトリクスを結合し、いくつかのコアメトリクスのみを表示します。
    • 1: デフォルト値。StarRocks はプロファイルを簡略化し、プロファイルのメトリクスを結合してプロファイルレイヤーを削減します。
    • 2: StarRocks はプロファイルのすべてのレイヤーを保持します。このシナリオではプロファイルサイズが大きくなります。特に SQL クエリが複雑な場合。この値は推奨されません。
  • デフォルト: 1

  • データ型: Int

query_cache_entry_max_bytes

  • 説明: パススルーモードをトリガーするしきい値。特定のタブレットがアクセスされたクエリの計算結果のバイト数または行数が query_cache_entry_max_bytes または query_cache_entry_max_rows で指定されたしきい値を超えると、クエリはパススルーモードに切り替わります。
  • 有効な値: 0 から 9223372036854775807
  • デフォルト: 4194304
  • 単位: バイト
  • 導入バージョン: v2.5

query_cache_entry_max_rows

  • 説明: キャッシュできる行の上限。query_cache_entry_max_bytes の説明を参照してください。デフォルト値:。
  • デフォルト: 409600
  • 導入バージョン: v2.5

query_cache_agg_cardinality_limit

  • 説明: クエリキャッシュにおける GROUP BY の基数の上限。GROUP BY によって生成される行がこの値を超える場合、クエリキャッシュは有効になりません。デフォルト値:5000000。query_cache_entry_max_bytes または query_cache_entry_max_rows が 0 に設定されている場合、関連するタブレットから計算結果が生成されていない場合でもパススルーモードが使用されます。
  • デフォルト: 5000000
  • データ型: Long
  • 導入バージョン: v2.5

query_cache_size (global)

MySQL クライアント互換性のために使用されます。実用的な使用法はありません。

query_cache_type

JDBC 接続プール C3P0 との互換性のために使用されます。実用的な使用法はありません。

query_mem_limit

  • 説明: 各 BE ノードでのクエリのメモリ制限を設定するために使用されます。デフォルト値は 0 で、制限がないことを意味します。この項目はパイプラインエンジンが有効になった後にのみ有効です。Memory Exceed Limit エラーが発生した場合、この変数を増やしてみることができます。0 に設定すると、制限が課されないことを示します。
  • デフォルト: 0
  • 単位: バイト

query_queue_concurrency_limit (global)

  • 説明: BE 上の同時クエリの上限。0 より大きい値に設定された場合にのみ有効です。0 に設定すると、制限が課されないことを示します。
  • デフォルト: 0
  • データ型: Int

query_queue_cpu_used_permille_limit (global)

  • 説明: BE 上の CPU 使用率のパーミル(CPU 使用率 * 1000)の上限。0 より大きい値に設定された場合にのみ有効です。0 に設定すると、制限が課されないことを示します。
  • 値の範囲: [0, 1000]
  • デフォルト: 0

query_queue_max_queued_queries (global)

  • 説明: キュー内のクエリの上限。このしきい値に達すると、受信クエリは拒否されます。0 より大きい値に設定された場合にのみ有効です。0 に設定すると、制限が課されないことを示します。
  • デフォルト: 1024

query_queue_mem_used_pct_limit (global)

  • 説明: BE 上のメモリ使用率の上限。0 より大きい値に設定された場合にのみ有効です。0 に設定すると、制限が課されないことを示します。
  • 値の範囲: [0, 1]
  • デフォルト: 0

query_queue_pending_timeout_second (global)

  • 説明: キュー内の保留中のクエリの最大タイムアウト。このしきい値に達すると、対応するクエリは拒否されます。
  • デフォルト: 300
  • 単位: 秒

query_timeout

  • 説明: クエリのタイムアウトを「秒」で設定するために使用されます。この変数は、現在の接続のすべてのクエリステートメントおよび INSERT ステートメントに影響を与えます。デフォルト値は 300 秒です。
  • 値の範囲: [1, 259200]
  • デフォルト: 300
  • データ型: Int
  • 単位: 秒

range_pruner_max_predicate

  • 説明: 範囲パーティションプルーニングに使用できる IN 述語の最大数。デフォルト値:100。100 より大きい値は、システムがすべてのタブレットをスキャンする可能性があり、クエリパフォーマンスを損なう可能性があります。
  • デフォルト: 100
  • 導入バージョン: v3.0

rewrite_count_distinct_to_bitmap_hll

count distinct クエリを bitmap_union_count および hll_union_agg に書き換えるかどうかを決定するために使用されます。

runtime_filter_on_exchange_node

  • 説明: GRF が Exchange オペレーターを越えて下位レベルのオペレーターにプッシュダウンされた後、Exchange ノードに GRF を配置するかどうか。デフォルト値は false で、GRF が Exchange オペレーターを越えて下位レベルのオペレーターにプッシュダウンされた後、Exchange ノードに GRF を配置しないことを意味します。これにより、GRF の繰り返し使用が防止され、計算時間が短縮されます。

ただし、GRF の配信は「最善を尽くす」プロセスです。下位レベルのオペレーターが GRF を受信できない場合、GRF が Exchange ノードに配置されていないと、データがフィルタリングされず、フィルタリングパフォーマンスが低下します。true は、GRF が Exchange オペレーターを越えて下位レベルのオペレーターにプッシュダウンされた後でも、Exchange ノードに GRF を配置することを意味します。

  • デフォルト: false

runtime_join_filter_push_down_limit

  • 説明: Bloom フィルターローカル RF が生成されるハッシュテーブルに許可される最大行数。この値を超えると、ローカル RF は生成されません。この変数は、過度に長いローカル RF の生成を防ぎます。
  • デフォルト: 1024000
  • データ型: Int

runtime_profile_report_interval

  • 説明: ランタイムプロファイルが報告される時間間隔。
  • デフォルト: 10
  • 単位: 秒
  • データ型: Int
  • 導入バージョン: v3.1.0

scan_olap_partition_num_limit

  • 説明: 実行計画で単一のテーブルに対してスキャンが許可されるパーティションの数。
  • デフォルト: 0(制限なし)
  • 導入バージョン: v3.3.9

spill_mode (3.0 以降)

中間結果のスピリングの実行モード。有効な値:

  • auto: メモリ使用量のしきい値に達したときにスピリングが自動的にトリガーされます。
  • force: StarRocks はメモリ使用量に関係なく、すべての関連オペレーターに対してスピリングを強制的に実行します。

この変数は、変数 enable_spilltrue に設定されている場合にのみ有効です。

spill_storage_volume

  • 説明: スピリングをトリガーしたクエリの中間結果を保存するために使用するストレージボリューム。詳細は Spill to object storage を参照してください。
  • デフォルト: 空の文字列
  • 導入バージョン: v3.3.0

SQL_AUTO_IS_NULL

JDBC 接続プール C3P0 との互換性のために使用されます。実用的な使用法はありません。

sql_dialect

  • 説明: 使用される SQL 方言。たとえば、set sql_dialect = 'trino'; コマンドを実行して SQL 方言を Trino に設定し、クエリで Trino 固有の SQL 構文と関数を使用できます。

    注意

    StarRocks を Trino 方言で使用するように設定した後、クエリ内の識別子はデフォルトで大文字と小文字を区別しません。したがって、データベースとテーブルの作成時に名前を小文字で指定する必要があります。データベースとテーブル名を大文字で指定すると、これらのデータベースとテーブルに対するクエリは失敗します。

  • データ型: StarRocks

  • 導入バージョン: v3.0

sql_mode

特定の SQL 方言に対応するために SQL モードを指定するために使用されます。有効な値には以下が含まれます:

  • PIPES_AS_CONCAT: パイプ記号 | を使用して文字列を連結します。例:select 'hello ' || 'world'
  • ONLY_FULL_GROUP_BY (デフォルト): SELECT リストには GROUP BY 列または集計関数のみを含めることができます。
  • ALLOW_THROW_EXCEPTION: 型変換が失敗した場合に NULL の代わりにエラーを返します。
  • FORBID_INVALID_DATE: 無効な日付を禁止します。
  • MODE_DOUBLE_LITERAL: 浮動小数点型を DECIMAL ではなく DOUBLE として解釈します。
  • SORT_NULLS_LAST: ソート後に NULL 値を最後に配置します。
  • ERROR_IF_OVERFLOW: 算術オーバーフローが発生した場合に NULL の代わりにエラーを返します。現在、このオプションは DECIMAL データ型のみサポートしています。
  • GROUP_CONCAT_LEGACY: v2.5 以前の group_concat 構文を使用します。このオプションは v3.0.9 および v3.1.6 からサポートされています。

1 つの SQL モードのみを設定できます。例:

set sql_mode = 'PIPES_AS_CONCAT';

または、複数のモードを一度に設定することもできます。例:

set sql_mode = 'PIPES_AS_CONCAT,ERROR_IF_OVERFLOW,GROUP_CONCAT_LEGACY';

sql_safe_updates

MySQL クライアント互換性のために使用されます。実用的な使用法はありません。

sql_select_limit

  • 説明: クエリによって返される最大行数を制限するために使用され、クエリが過剰なデータを返すことによるメモリ不足やネットワーク混雑などの問題を防ぐことができます。
  • デフォルト: 無制限
  • データ型: Long

statistic_collect_parallel

  • 説明: BE 上で実行できる統計収集タスクの並行性を調整するために使用されます。デフォルト値:1。この値を増やして収集タスクを高速化できます。
  • デフォルト: 1
  • データ型: Int

storage_engine

StarRocks がサポートするエンジンの種類:

  • olap (デフォルト): StarRocks システム所有のエンジン。
  • mysql: MySQL 外部テーブル。
  • broker: ブローカープログラムを通じて外部テーブルにアクセスします。
  • elasticsearch または es: Elasticsearch 外部テーブル。
  • hive: Hive 外部テーブル。
  • iceberg: Iceberg 外部テーブル、v2.1 からサポート。
  • hudi: Hudi 外部テーブル、v2.2 からサポート。
  • jdbc: JDBC 互換データベースの外部テーブル、v2.3 からサポート。

streaming_preaggregation_mode

GROUP BY の最初のフェーズの事前集計モードを指定するために使用されます。最初のフェーズでの事前集計効果が満足できない場合、ストリーミングモードを使用できます。これは、データを宛先にストリーミングする前に簡単なデータシリアル化を行います。有効な値:

  • auto: システムは最初にローカル事前集計を試みます。効果が満足できない場合、ストリーミングモードに切り替えます。これがデフォルト値です。
  • force_preaggregation: システムは直接ローカル事前集計を行います。
  • force_streaming: システムは直接ストリーミングを行います。

system_time_zone

現在のシステムのタイムゾーンを表示するために使用されます。変更できません。

time_zone

現在のセッションのタイムゾーンを設定するために使用されます。タイムゾーンは、特定の時間関数の結果に影響を与える可能性があります。

trace_log_mode

  • 説明: クエリトレースプロファイルのログを出力する場所を制御するために使用されます。有効な値:

    • command: TRACE LOGS を実行した後、クエリトレースプロファイルログを Explain String として返します。
    • file: クエリトレースプロファイルログを FE ログファイル fe.log にクラス名 FileLogTracer として返します。
  • デフォルト: command

  • データ型: 文字列

  • 導入バージョン: v3.2.0

transaction_read_only

  • 説明: MySQL 5.8 互換性のために使用されます。エイリアスは tx_read_only です。この変数はトランザクションのアクセスモードを指定します。ON は読み取り専用を示し、OFF は読み取りおよび書き込み可能を示します。
  • デフォルト: OFF
  • 導入バージョン: v2.5.18, v3.0.9, v3.1.7

tx_isolation

MySQL クライアント互換性のために使用されます。実用的な使用法はありません。エイリアスは transaction_isolation です。

use_compute_nodes

  • 説明: 使用できる CN ノードの最大数。この変数は prefer_compute_node=true の場合に有効です。有効な値:

    • -1: すべての CN ノードが使用されることを示します。
    • 0: CN ノードが使用されないことを示します。
  • デフォルト: -1

  • データ型: Int

  • 導入バージョン: v2.4

use_v2_rollup

クエリがセグメント v2 ストレージ形式のロールアップインデックスを使用してデータを取得するかどうかを制御するために使用されます。この変数は、セグメント v2 でオンラインになる際の検証に使用されます。他のケースでは推奨されません。

vectorized_engine_enable (v2.4 以降は非推奨)

クエリを実行するためにベクトル化エンジンを使用するかどうかを制御するために使用されます。true の場合、ベクトル化エンジンが使用され、そうでない場合は非ベクトル化エンジンが使用されます。デフォルトは true です。この機能は v2.4 以降でデフォルトで有効になっているため、非推奨です。

version (global)

クライアントに返される MySQL サーバーバージョン。値は FE パラメータ mysql_server_version と同じです。

version_comment (global)

StarRocks のバージョン。変更できません。

wait_timeout

  • 説明: サーバーが非対話型接続でアクティビティを待機する秒数。この時間が経過してもクライアントが StarRocks と対話しない場合、StarRocks は接続を積極的に閉じます。
  • デフォルト: 28800 (8 時間)。
  • 単位: 秒
  • データ型: Int

orc_use_column_names

  • 説明: StarRocks が Hive から ORC ファイルを読み取る際に列がどのように一致するかを指定するために使用されます。デフォルト値は false で、ORC ファイル内の列は Hive テーブル定義内の順序位置に基づいて読み取られることを意味します。この変数が true に設定されている場合、列は名前に基づいて読み取られます。
  • デフォルト: false
  • 導入バージョン: v3.1.10