これらの設定は system.merge_tree_settings で確認でき、ClickHouse のソースコードから自動生成されています。
write_final_mark
型
Bool
デフォルト値
1
廃止された設定で、効果はありません。
write_marks_for_substreams_in_compact_parts
型
Bool
デフォルト値
1
バージョン履歴
| バージョン | デフォルト値 | コメント |
|---|---|---|
| 25.8 | 1 | compact パーツでサブストリームごとにデフォルトでマークを書き込むことを有効にする |
| 25.5 | 0 | 新しい設定 |
compact パーツで、各カラムごとではなく各サブストリームごとにマークを書き込むようにします。 これにより、データパーツから個々のサブカラムを効率的に読み取れるようになります。
たとえば、カラム t Tuple(a String, b UInt32, c Array(Nullable(UInt32))) は次のサブストリームにシリアライズされます。
t.aはタプル要素aの String データt.bはタプル要素bの UInt32 データt.c.size0はタプル要素cの配列サイズt.c.nullはタプル要素cのネストされた配列要素の NULL マップt.cはタプル要素cのネストされた配列要素の UInt32 データ
この設定を有効にすると、これら 5 つのサブストリームそれぞれにマークが書き込まれます。つまり、必要に応じてグラニュールから各サブストリームのデータを個別に読み取れるようになります。たとえば、サブカラム t.c を読み取りたい場合は、サブストリーム t.c.size0、t.c.null、t.c のデータだけを読み取り、
サブストリーム t.a と t.b のデータは読み取りません。この設定が無効な場合は、
最上位カラム t に対してのみマークが書き込まれるため、一部のサブストリームのデータだけが必要な場合でも、グラニュールから常にカラムデータ全体を読み取ることになります。