BE 設定
BE の設定項目の中には、BE ノードがオンラインのときに対話 的に設定できる動的パラメータがあります。それ以外は静的パラメータです。BE ノードの静的パラメータは、対応する設定ファイル be.conf を変更し、BE ノードを再起動して変更を有効にすることでのみ設定できます。
BE の設定項目を表示する
次のコマンドを使用して BE の設定項目を表示できます。
SELECT * FROM information_schema.be_configs WHERE NAME LIKE "%<name_pattern>%"
BE パラメータを設定する
BE の動的パラメータを設定する
BE ノードの動的パラメータは、information_schema.be_configs 内の値を更新することで設定できます。
警告
無効な値を設定すると、予期しない動作を引き起こす可能性があります。設定を更新するコマンドを実行する前に、必ず再確認してください。
-- <config_key> を設定のキーに、<config_value> を値に置き換えてください。
UPDATE information_schema.be_configs SET VALUE = <config_value> WHERE name = "<config_key>";
BE の静的パラメータを設定する
BE の静的パラメータは、対応する設定ファイル be.conf で変更し、BE を再起動して変更を有効にすることでのみ設定できます。
このトピックでは、以下の種類のFE構成について紹介します:
統計レポート
report_disk_state_interval_seconds
- デフォルト: 60
- タイプ: Int
- 単位: 秒
- 変更可能: はい
- 説明: ストレージボリュームの状態を報告する時間間隔。これには、ボリューム内のデータサイズが含まれます。
- 導入バージョン: -
report_resource_usage_interval_ms
- デフォルト: 1000
- タイプ: Int
- 単位: Milliseconds
- 変更可能: Yes
- 説明: BE エージェントが FE (master) に送信する定期的なリソース使用状況レポートの間隔(ミリ秒)。エージェントのワーカースレッドは TResourceUsage(実行中クエリ数、使用中メモリ/制限、CPU 使用 permille、resource-group の使用状況)を収集して report_task を呼び出し、この設定された間隔だけスリープします(task_worker_pool を参照)。値を小さくすると報告の即時性は向上しますが CPU、ネットワーク、master の負荷が増加します。値を大きくするとオーバーヘッドは減りますがリソース情報の最新性は低下します。報告は関連するメトリクス(report_resource_usage_requests_total、report_resource_usage_requests_failed)を更新します。クラスタ規模や FE の負荷に応じて調整してください。
- 導入バージョン: v3.2.0
report_tablet_interval_seconds
- デフォルト: 60
- タイプ: Int
- 単位: 秒
- 変更可能: はい
- 説明: すべてのタブレットの最新バージョンを報告する時間間隔。
- 導入バージョン: -
report_task_interval_seconds
- デフォルト: 10
- タイプ: Int
- 単位: 秒
- 変更可能: はい
- 説明: タスクの状態を報告する時間間隔。タスクは、テーブルの作成、テーブルの削除、データのロード、またはテーブルスキーマの変更を行うことができます。
- 導入バージョン: -
report_workgroup_interval_seconds
- デフォルト: 5
- タイプ: Int
- 単位: 秒
- 変更可能: はい
- 説明: すべてのワークグループの最新バージョンを報告する時間間隔。
- 導入バージョン: -
ストレージ
alter_tablet_worker_count
- デフォルト: 3
- タイプ: Int
- 単位: -
- 変更可能: はい
- 説明: スキーマ変更のために使用されるスレッドの数。
- 導入バージョン: -
automatic_partition_thread_pool_thread_num
- デフォルト: 1000
- タイプ: Int
- 単位: -
- 変更可能: いいえ
- 説明: ロード時の自動パーティション作成に使用する自動パーティションスレッドプールのスレッド数。プールのキューサイズはスレッド数の 10 倍に自動設定されます。
- 導入バージョン: -
avro_ignore_union_type_tag
- デフォルト: true
- タイプ: Boolean
- 単位: -
- 変更可能: はい
- 説明: Avro の Union データタイプからシリアライズされた JSON 文字列からタイプタグを取り除くかどうか。
- 導入バージョン: v3.3.7, v3.4
base_compaction_check_interval_seconds
- デフォルト: 60
- タイプ: Int
- 単位: 秒
- 変更可能: はい
- 説明: ベースコンパクションのスレッドポーリングの時間間隔。
- 導入バージョン: -
base_compaction_interval_seconds_since_last_operation
- デフォルト: 86400
- タイプ: Int
- 単位: 秒
- 変更可能: はい
- 説明: 最後のベ ースコンパクションからの時間間隔。この設定項目はベースコンパクションをトリガーする条件の一つです。
- 導入バージョン: -
base_compaction_num_threads_per_disk
- デフォルト: 1
- タイプ: Int
- 単位: -
- 変更可能: いいえ
- 説明: 各ストレージボリュームでのベースコンパクションに使用されるスレッド数。
- 導入バージョン: -
base_cumulative_delta_ratio
- デフォルト: 0.3
- タイプ: Double
- 単位: -
- 変更可能: はい
- 説明: 累積ファイルサイズとベースファイルサイズの比率。この比率がこの値に達することがベースコンパクションをトリガーする条件の一つです。
- 導入バージョン: -
check_consistency_worker_count
- デフォルト: 1
- タイプ: Int
- 単位: -
- 変更可能: いいえ
- 説明: タブレットの一貫性をチェックするために使用されるスレッドの数。
- 導入バージョン: -
clear_expired_replication_snapshots_interval_seconds
- デフォルト: 3600
- タイプ: Int
- 単位: 秒
- 変更可能: はい
- 説明: 異常なレプリケーションによって残された期限切れのスナップショットをシステムがクリアする時間間隔。
- 導入バージョン: v3.3.5
compact_threads
- デフォルト: 4
- タイプ: Int
- 単位: -
- 変更可能: はい
- 説明: 同時コンパクションタスクに使用される最大スレッド数。この設定は v3.1.7 および v3.2.2 以降、動的に変更されました。
- 導入バージョン: v3.0.0
compaction_max_memory_limit_percent
- デフォ ルト: 100
- タイプ: Int
- 単位: Percent
- 変更可能: No
- 説明: compaction に使用できる BE プロセスメモリの割合。このパーセントに基づき BE は
compaction_max_memory_limitと(プロセスメモリ上限 × このパーセント / 100)の小さい方を compaction メモリ上限として計算します。この値が < 0 または > 100 の場合は 100 と見なされます。compaction_max_memory_limit< 0 の場合は代わりにプロセスメモリ上限が使用されます。計算はmem_limitから導出される BE プロセスメモリも考慮します。compaction_memory_limit_per_worker(ワーカーごとの上限)と組み合わせて、この設定は compaction に利用可能な総メモリを制御し、したがって compaction の並列度や OOM リスクに影響します。 - 導入バージョン: v3.2.0
compaction_memory_limit_per_worker
- デフォルト: 2147483648
- タイプ: Int
- 単位: バイト
- 変更可能: いいえ
- 説明: 各コンパクションスレッドに許可される最大メモリサイズ。
- 導入バージョン: -
compaction_trace_threshold
- デフ ォルト: 60
- タイプ: Int
- 単位: 秒
- 変更可能: はい
- 説明: 各コンパクションの時間しきい値。コンパクションがこの時間しきい値を超えて時間がかかる場合、StarRocks は対応するトレースを出力します。
- 導入バージョン: -
create_tablet_worker_count
- デフォルト: 3
- タイプ: Int
- 単位: Threads
- 変更可能: Yes
- 説明: FE により送信される TTaskType::CREATE(create-tablet)タスクを処理する AgentServer のスレッドプール内の最大ワーカースレッド数を設定します。BE 起動時にこの値はスレッドプールの max として使用されます(プールは min threads = 1、max queue size = unlimited で作成されます)。ランタイムで変更すると ExecEnv::agent_server()->get_thread_pool(TTaskType::CREATE)->update_max_threads(...) が呼ばれます。バルクロードやパーティション作成時など、同時の tablet 作成スループットを上げたい場合に増やしてください。減らすと同時作成操作が制限されます。値を上げると CPU、メモリ、I/O の並列性が増し競合が発生する可能性があります。スレッドプールは少なくとも 1 スレッドを保証するため、1 未満の値は実質的な効果がありません。
- 導入バージョン: 3.2.0
cumulative_compaction_check_interval_seconds
- デフォルト: 1
- タイプ: Int
- 単位: 秒
- 変更可能: はい
- 説明: 累積コンパクションのスレッドポーリングの時間間隔。
- 導入バージョン: -
cumulative_compaction_num_threads_per_disk
- デフォルト: 1
- タイプ: Int
- 単位: -
- 変更可能: いいえ
- 説明: ディスクごとの累積コンパクションスレッド数。
- 導入バージョン: -
data_page_size
- デフォルト: 65536
- タイプ: Int
- 単位: Bytes
- 変更可能: No
- 説明: 列データおよびインデックスページを構築する際に使用されるターゲットの非圧縮ページサイズ(バイト)。この値は ColumnWriterOptions.data_page_size と IndexedColumnWriterOptions.index_page_size にコピーされ、ページビルダ(例: BinaryPlainPageBuilder::is_page_full およびバッファ予約ロジック)によってページを完了するタイミングや確保 するメモリ量の判断に参照されます。値が 0 の場合、ビルダ内のページサイズ制限は無効化されます。この値を変更するとページ数、メタデータのオーバーヘッド、メモリ予約、および I/O/圧縮のトレードオフに影響します(ページを小さくするとページ数とメタデータが増え、ページを大きくするとページ数は減り圧縮効率が向上する可能性があるがメモリのスパイクが大きくなる)。変更はランタイムで反映されないため、完全に有効にするにはプロセスの再起動と再作成された rowset が必要です。
- 導入バージョン: 3.2.4
default_num_rows_per_column_file_block
- デフォルト: 1024
- タイプ: Int
- 単位: -
- 変更可能: はい
- 説明: 各行ブロックに格納できる最大行数。
- 導入バージョン: -
delete_worker_count_high_priority
- デフォルト: 1
- タイプ: Int
- 単位: Threads
- 変更可能: No
- 説明: DeleteTaskWorkerPool 内で HIGH-priority の削除スレッドとして割り当てられるワーカースレッドの数。起動時に AgentServer は total threads = delete_worker_count_normal_priority + delete_worker_count_high_priority で削除プールを作成し、最初の delete_worker_count_high_priority スレッドは専ら TPriority::HIGH タスクをポップしようとするようにマークされます(高優先度削除タスクがない場合はポーリングしてスリープ/ループします)。この値を増やすと高優先度削除リクエストの並列性が高まり、減らすと専用容量が減って高優先度削除のレイテンシが増加する可能性があります。
- 導入バージョン: v3.2.0
dictionary_encoding_ratio
- デフォルト: 0.7
- タイプ: Double
- 単位: -
- 変更可能: No
- 説明: StringColumnWriter が encode-speculation フェーズでチャンクに対して dictionary (DICT_ENCODING) と plain (PLAIN_ENCODING) のどちらを選択するかを判断するために使用する比率(0.0–1.0)。コードは max_card = row_count *
dictionary_encoding_ratioを計算し、チャンクの distinct key 数をスキャンします;distinct count が max_card を超えると writer は PLAIN_ENCODING を選びます。このチェックはチャンクサイズがdictionary_speculate_min_chunk_sizeを超えた場合(かつ row_count > dictionary_min_rowcount のとき)にのみ行われます。値を大きくすると dictionary encoding が有利になり(より多くの distinct key を許容)、値を小さくすると早めに plain encoding へフォールバックします。値が 1.0 の場合は事実上 dictionary encoding を強制します(distinct count は常に row_count を超え得ないため)。 - 導入バージョン: v3.2.0
disk_stat_monitor_interval
- デフォルト: 5
- タイプ: Int
- 単位: 秒
- 変更可能: はい
- 説明: ディスクの健康状態を監視する時間間隔。
- 導入バージョン: -
download_low_speed_limit_kbps
- デフォルト: 50
- タイプ: Int
- 単位: KB/秒
- 変更可能: はい
- 説明: 各 HTTP リクエストのダウンロード速度の下限。この値より低い速度で一定時間動作すると、HTTP リクエストは中止されます。この時間は、設定項目
download_low_speed_timeで指定されます。 - 導入バージョン: -
download_low_speed_time
- デフォルト: 300
- タイプ: Int
- 単位: 秒
- 変更可能: はい
- 説明: ダウンロード速度が下限より低い状態で動作できる最大時間。この時間内に
download_low_speed_limit_kbpsの値より低い速度で動作し続けると、HTTP リクエストは中止されます。 - 導入バージョン: -
download_worker_count
- デフォルト: 0
- タイプ: Int
- 単位: -
- 変更可能: はい
- 説明: BE ノードでのリストアジョブのダウンロードタスクの最大スレッド数。
0は、BE が存在するマシンの CPU コア数に値を設定することを示します。 - 導入バージョン: -
drop_tablet_worker_count
- デフォルト: 0
- タイプ: Int
- 単位: -
- 変更可能: はい
- 説明: タブレットを削除するために使用されるスレッドの数。
0はノード内の CPU コアの半数を示します。 - 導入バージョン: -
enable_check_string_lengths
- デフォルト: true
- タイプ: Boolean
- 単位: -
- 変更可能: いい え
- 説明: 文字列の長さをチェックして、範囲外の VARCHAR データによるコンパクションの失敗を解決するかどうか。
- 導入バージョン: -
enable_event_based_compaction_framework
- デフォルト: true
- タイプ: Boolean
- 単位: -
- 変更可能: いいえ
- 説明: イベントベースのコンパクションフレームワークを有効にするかどうか。
trueはイベントベースのコンパクションフレームワークが有効であることを示し、falseは無効であることを示します。イベントベースのコンパクションフレームワークを有効にすると、多くのタブレットがある場合や単一のタブレットに大量のデータがある場合のコンパクションのオーバーヘッドを大幅に削減できます。 - 導入バージョン: -
enable_lazy_delta_column_compaction
- デフォルト: true
- タイプ: Boolean
- 単位: -
- 変更可能: Yes
- 説明: 有効にすると、部分的なカラム更新によって生成される delta columns に対する compaction に「lazy」戦略を優 先します。StarRocks は compaction の I/O を節約するために、delta-column ファイルをメインのセグメントファイルへ積極的にマージすることを避けます。実際には compaction 選択コードが部分カラム更新の rowset と複数の候補をチェックし、それらが見つかりこのフラグが true の場合、エンジンは compaction にさらに入力を追加するのを止めるか、空の rowset(レベル -1)のみをマージして delta columns を別に保持します。これにより compaction 時の即時 I/O と CPU が削減されますが、統合の遅延(セグメント数増加や一時的なストレージオーバーヘッドの可能性)というコストが発生します。正確性やクエリのセマンティクスに変更はありません。
- 導入バージョン: v3.2.3
enable_new_load_on_memory_limit_exceeded
- デフォルト: false
- タイプ: Boolean
- 単位: -
- 変更可能: はい
- 説明: ハードメモリリソース制限に達したときに新しいロードプロセスを許可するかどうか。
trueは新しいロードプロセスが許可されることを示し、falseは拒否されることを示します。 - 導入バージョン: v3.3.2
enable_pk_index_parallel_compaction
- デフォルト: true
- タイプ: Boolean
- 単位: -
- 変更可能: はい
- 説明: 共有データモードでプライマリキーインデックスの並列コンパクションを有効にするかどうか。
- 導入バージョン: -
enable_pk_index_parallel_execution
- デフォルト: true
- タイプ: Boolean
- 単位: -
- 変更可能: はい
- 説明: 共有データモードでプライマリキーインデックス操作の並列実行を有効にするかどうか。有効化されると、システムは公開操作中にスレッドプールを使用してセグメントを並行処理し、大規模なテーブルのパフォーマンスを大幅に向上させます。
- 導入バージョン: -
enable_pk_index_eager_build
- デフォルト: true
- タイプ: Boolean
- 単位: -
- 変更可能: はい
- 説明: データインポートおよびコンパクションの段階で、Primary Key インデックスファイルを即座に構築するかどうかを決定します。有効化されると、システムはデータ書き込み時に永続的な PK インデックスファイルを直接生成し、後続のクエリパフォーマンスを向上させます。
- 導入バージョン: -
enable_pk_size_tiered_compaction_strategy
- デフォルト: true
- タイプ: Boolean
- 単位: -
- 変更可能: いいえ
- 説明: 主キーテーブルのサイズ階層型コンパクションポリシーを有効にするかどうか。
trueはサイズ階層型コンパクション戦略が有効であることを示し、falseは無効であることを示します。この項目は、共有データクラスタでは v3.2.4 および v3.1.10 以降、共有なしクラスタでは v3.2.5 および v3.1.10 以降で有効になります。 - 導入バージョン: -
enable_rowset_verify
- デフォルト: false
- タイプ: Boolean
- 単位: -
- 変更可能: はい
- 説明: 生成された rowset の正確性を検証するかどうか。 有効にすると、コンパクションとスキーマ変更後に生成された rowset の正確性がチェックされます。
- 導入バージョン: -
enable_size_tiered_compaction_strategy
- デフォルト: true
- タイプ: Boolean
- 単位: -
- 変更可能: いいえ
- 説明: サイズ階層型コンパクションポリシー (主キーテーブルを除く) を有効にするかどうか。
trueはサイズ階層型コンパクション戦略が有効であることを示し、falseは無効であることを示します。 - 導入バージョン: -
enable_strict_delvec_crc_check
- デフォルト: true
- タイプ: Boolean
- 単位: -
- 変更可能: はい
- 説明: enable_strict_delvec_crc_check を true に設定すると、delete vector の CRC32 を厳密にチェックし、一致しない場合はエラーを返します。
- 導入バージョン: -
enable_transparent_data_encryption
- デフォルト: false
- タイプ: Boolean
- 単位: N/A
- 変更可能: No
- 説明: 有効にすると、StarRocks は新規に書き込まれるストレージオブジェクト(segment files、delete/update files、rowset segments、lake SSTs、persistent index files など)に対してオンディスクの暗号化アーティファクトを作成します。Writers(RowsetWriter/SegmentWriter、lake UpdateManager/LakePersistentIndex および関連するコードパス)は KeyCache から暗号化情報を要求し、書き込み可能なファイルに encryption_info を付与し、rowset / segment / sstable メタデータ(segment_encryption_metas、delete/update encryption metadata)に encryption_meta を永続化します。Frontend と Backend/CN の暗号化フラグは一致している必要があり、不一致の場合は BE がハートビート時に中止します(LOG(FATAL))。このフラグはランタイムで変更できないため、デプロイ前に有効化し、鍵管理(KEK)および KeyCache がクラスタ全体で適切に構成・同期されていることを確認してください。
- 導入バージョン: 3.3.1, 3.4.0, 3.5.0, 4.0.0
file_descriptor_cache_clean_interval
- デフォルト: 3600
- タイプ: Int
- 単位: 秒
- 変更可能: はい
- 説明: 一定期間使用されていないファイルディスクリプタをクリーンアップする時間間隔。
- 導入バージョン: -