ALTER TABLE ALTER COLUMN SET PARQUET: encoding, compression, and bloom filter options
Sets or removes per-column Parquet encoding, compression, and bloom filter
configuration on existing tables. Encoding and compression control how column
data is stored in Parquet files, affecting file size and read performance.
Bloom filters allow QuestDB to skip row groups that do not contain matching
values, significantly speeding up equality and IN queries on large Parquet
partitions.
These settings only affect Parquet partitions and are ignored for native partitions.
Syntax
ALTER TABLE tableName ALTER COLUMN columnName
SET PARQUET ( encoding [, compression [( level )] ] [, BLOOM_FILTER] );
Where encoding is default or a
supported encoding, and compression is a
supported codec with an optional level.
Supported encodings and codecs
See the CREATE TABLE reference for the full list of supported encodings, compression codecs, and their valid column types.
Examples
Use default for the encoding when specifying compression only.
ALTER TABLE trades ALTER COLUMN price SET PARQUET(rle_dictionary);
ALTER TABLE trades ALTER COLUMN price SET PARQUET(default, zstd(3));
ALTER TABLE trades ALTER COLUMN price SET PARQUET(rle_dictionary, zstd(3));
Reset per-column overrides back to the server defaults:
ALTER TABLE trades ALTER COLUMN price SET PARQUET(default);
Bloom filter
The optional BLOOM_FILTER keyword can be combined with encoding and
compression, and always appears as the last argument.
ALTER TABLE trades ALTER COLUMN symbol SET PARQUET(default, BLOOM_FILTER);
ALTER TABLE trades ALTER COLUMN symbol SET PARQUET(rle_dictionary, zstd(3), BLOOM_FILTER);
To remove the bloom filter from a column, re-issue SET PARQUET without
the BLOOM_FILTER keyword:
ALTER TABLE trades ALTER COLUMN symbol SET PARQUET(rle_dictionary);
The bloom filter false positive probability (FPP) is a global setting and cannot be configured per column. See the Configuration reference for details.