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 を再起動して変更を有効にする ことでのみ設定できます。
このトピックでは、以下の種類のBE構成について説明します。
クエリ
agg_hash_map_prefetch_dist
- デフォルト: 16
- タイプ: Int
- 単位: 行
- 変更可能: はい
- 説明: 集計ハッシュマップ/ハッシュセットのプローブループにおけるソフトウェアプリフェッチ距離(行単位)。集計ハッシュテーブルの構築中、ループは現在処理中の行からこの値分先にあるバケットをプリフェッチし、大規模なテーブルにおけるメモリレイテンシを隠蔽します。
0に設定するとソフトウェアプリフェッチが無効になります。この値はチャンクごとに 1 回読み込まれるため、変更は次のチャンクから有効になります。デフォルト値の 16 は、L3 キャッシュに常駐するテーブルに対する経験値に基づいています。DRAM に常駐するワークロードではこの値を大きくし、キャッシュに常駐するワークロードでは小さくしてください。プリフェッチはagg_prefetch_l2_ratioによっても制御されます。この距離に関係なく、ハッシュテーブルが L2 キャッシュに収 まっている間はプリフェッチは発行されません。 - 導入バージョン: -
agg_prefetch_l2_ratio
- デフォルト: 1.0
- タイプ: Double
- 単位: -
- 変更可能: はい
- 説明: L2 レジデンシーに基づいて、集約ハッシュテーブルのソフトウェアプリフェッチを制御します。プリフェッチは、バケット配列が L2 から溢れ出した場合、つまり
bucket_count * slot_bytes >= L2_size * agg_prefetch_l2_ratioとなった場合にのみ有効になります。ここで、L2 サイズは実行時に検出されます(検出に失敗した場合は 1 MiB にフォールバックします)。この閾値未満の場合、テーブルは L2 に常駐しており、プリフェッチは実質的な損失となります。コアあたり多数のドライバを実行する競合の激しい環境では、テーブルあたりのL2占有率が名目上のコアあたりサイズよりも小さくなるため、この比率を下げてください。1.0 以上に設定すると、テーブルが L2 を大幅に超えるまでプリフェッチが遅延します。agg_hash_map_prefetch_distも参照してください。 - 導入バージョン: -
clear_udf_cache_when_start
- デフォルト: false
- タイプ: ブール
- 単位: -
- 変更可能: いいえ
- 説明: 有効にすると、BEのUserFunctionCacheは起動時にローカルにキャッシュされたすべてのユーザー関数ライブラリをクリアします。UserFunctionCache::init中に、コードは_reset_cache_dir()を呼び出し、これにより設定されたUDFライブラリディレクトリ(kLibShardNumサブディレクトリに整理されている)からUDFファイルを削除し、Java/Python UDFサフィックス(.jar/.py)を持つファイルを削除します。無効の場合(デフォルト)、BEは既存のキャッシュされたUDFファイルを削除する代わりにロードします。これを有効にすると、再起動後の初回使用時にUDFバイナリが再ダウンロードされることになります(ネットワークトラフィックと初回使用時のレイテンシが増加します)。
- 導入バージョン: v4.0.0
dictionary_speculate_min_chunk_size
- デフォルト: 10000
- タイプ: 整数
- 単位: 行
- 変更可能: いいえ
- 説明: StringColumnWriterとDictColumnWriterが辞書エンコーディングの推測をトリガーするために使用する最小行数(チャンクサイズ)。入力列(または蓄積されたバッファと入力行)のサイズが
dictionary_speculate_min_chunk_size以上の場合、ライターはすぐに推測を実行し、より多くの行をバッファリングするのではなく、エンコーディング(DICT、PLAIN、またはBIT_SHUFFLE)を設定します。推測は、文字列列にはdictionary_encoding_ratioを、数値/非文字列列にはdictionary_encoding_ratio_for_non_string_columnを使用して、辞書エンコーディングが有益かどうかを判断します。また、大きな列のbyte_size(UINT32_MAX以上)は、BinaryColumn<uint32_t>オーバーフローを避けるために即座の推測を強制します。 - 導入バージョン: v3.2.0
disable_storage_page_cache
- デフォルト: false
- タイプ: ブール
- 単位: -
- 変更可能: はい
- 説明: PageCacheを無効にするかどうかを制御するブール値。
- PageCacheが有効な場合、StarRocksは最近スキャンされたデータをキャッシュします。
- PageCacheは、類似のクエリが頻繁に繰り返される場合に、クエリパフォーマンスを大幅に向上させることができます。
trueはPageCacheを無効にすることを示します。- この項目のデフォルト値は、StarRocks v2.4以降、
trueからfalseに変更されました。
- 導入バージョン: -
enable_bitmap_index_memory_page_cache
- デフォルト: true
- タイプ: ブール
- 単位: -
- 変更可能: はい
- 説明: ビットマップインデックスのメモリキャッシュを有効にするかどうか。ポイントクエリを高速化するためにビットマップインデックスを使用したい場合は、メモリキャッシュを推奨します。
- 導入バージョン: v3.1
フラットJSON圧縮有効化
- デフォルト: 真
- 型: ブール
- 単位:
- 変更可能: はい
- 説明: フラットJSONデータの圧縮を有効にするかどうか。
- 導入バージョン: v3.3.3
JSONフラット化を有効にする
- デフォルト: false
- 型: ブール
- 単位:
- 変更可能: はい
- 説明: フラットJSON機能を有効にするかどうか。この機能が有効になると、新しく読み込まれたJSONデータは自動的にフラット化され、JSONクエリのパフォーマンスが向上します。
- 導入バージョン: v3.3.0
遅延動的フラットJSONの 有効化
- デフォルト: True
- 型: 真偽値
- 単位:
- 変更可能: はい
- 説明: クエリが読み取りプロセスでFlat JSONスキーマを見逃した場合に、Lazy Dynamic Flat JSONを有効にするかどうか。この項目が
trueに設定されている場合、StarRocksはFlat JSON操作を読み取りプロセスではなく計算プロセスに延期します。 - 導入バージョン: v3.3.3
順序インデックスメモリページキャッシュの有効化
- デフォルト: true
- 型: 真偽値
- 単位: -
- 可変: はい
- 説明: 順序インデックスのメモリキャッシュを有効にするかどうか。順序インデックスは、行IDからデータページの位置へのマッピングであり、スキャンを高速化するために使用できます。
- 導入日: -