v.24.1New Feature

Certain Settings Can Now Be Specified at Column Level in ClickHouse

Certain settings (currently min_compress_block_size and max_compress_block_size) can now be specified at column-level where they take precedence over the corresponding table-level setting. Example: CREATE TABLE tab (col String SETTINGS (min_compress_block_size = 81920, max_compress_block_size = 163840)) ENGINE = MergeTree ORDER BY tuple();. #55201 (Duc Canh Le).
Certain settings like min_compress_block_size and max_compress_block_size can now be specified at the column level, overriding the corresponding table-level settings.

Why it matters

This feature allows more granular control over compression block sizes on a per-column basis, enabling optimization of compression behavior tailored to individual columns rather than the entire table, which can improve storage efficiency and query performance.

How to use it

Specify the desired settings directly in the column definition within the CREATE TABLE statement using the SETTINGS clause. For example:

CREATE TABLE tab (
col String SETTINGS (min_compress_block_size = 81920, max_compress_block_size = 163840)
) ENGINE = MergeTree ORDER BY tuple();