Altinity Stable® Build for ClickHouse® 24.8
Here are the detailed release notes for version 24.8.
Release history
Version 24.8.14.10501 is the latest release. We recommend that you upgrade to this version. But read the detailed release notes and upgrade instructions for version 24.8 first. Once you’ve done that, review the details for each release for known issues and changes between the Altinity Stable Build and the upstream release.
Version | Release date | Details | Docker images |
---|---|---|---|
24.8.14.10501 (latest) | 2025-06-27 | CI report Release page Install guide |
AMD64 and Aarch64 |
24.8.14.10459 | 2025-03-28 | Build report Release page Install guide |
AMD64 and Aarch64 |
24.8.11.51285 | 2025-01-31 | Build report Release page Known issues in upstream Install guide |
AMD64 and Aarch64 |
Builds are available for both AMD64 and Aarch64 from builds.altinity.cloud as either .deb
, .rpm
, or .tgz
.
Finally, check the Altinity ClickHouse® Upgrade E-book, which provides guidelines for upgrading ClickHouse databases.
Major new features in 24.8 since the previous Altinity Stable release 24.3
A new release introduces a lot of changes and new functions. Please refer to the full list in the following sections. The following major features are worth mentioning on the front page:
Major changes that require attention
replace_long_file_name_to_hash
now enabled by default. If you need to preserve compatibility with versions before 23.9 - consider disabling that.- Analyzer
- Analyzer is a huge refactoring of the query interpreting engine, enabled by default since 24.3. For new projects you should opt for using analyzer as a default choice.
- There are a lot of queries which may work better with analyzer enabled.
- But there are also risks that it can have some negative impact on different legacy queries. So if you upgrade, please give a run of your tests at staging with analyzer enabled first. If you run into some issues, you can disable the flag (
enable_analyzer=0
) for particular queries or for user profiles (or globally in default user profile). - Also check the list of reported issues related to analyzer, including those which are considered important. If you find something which is absent in those lists - please report it.
- If you decide to disable the analyzer before the upgrade, use the setting
allow_experimental_analyzer
during a rolling upgrade, since older versions are not aware ofenable_analyzer
. But please remember that in future versions the old (before analyzer) code will be removed, and eventually the analyzer will be the only choice.
text_log
&error_log
is now enabled by default, consider configuring TTL for it.- S3Queue was reworked significantly (setting
s3queue_total_shards_num
removed,s3queue_buckets
introduced,s3queue_allow_experimental_sharded_mode
deprecated). In 24.8 the feature is more mature, but some issues still exist. async_load_databases
now enabled, it may increase the chances of the issues with theengine=Kafka
and other streaming tables to flush data only to some subset of tables, and some of MV may miss the data.- JSON datatype is not ready for production on 24.8 (consider newer releases.)
Backward incompatible changes
- Async Loading: The
async_load_databases
setting now defaults totrue
, allowing the server to accept connections before all tables are loaded. Setasync_load_databases=false
to revert to the previous behavior. - Deprecated Functions: Functions
neighbor
,runningAccumulate
,runningDifferenceStartingWithFirstValue
, andrunningDifference
are deprecated. Use window functions instead. Setallow_deprecated_functions=1
to enable them temporarily. - Access Changes: Faster
system.columns
queries, but stricter access rules may skip tables withoutSHOW TABLES
permissions. - Index Renaming: “Inverted indexes” are renamed to “full-text indexes,” breaking compatibility with existing indexes. Drop and recreate them after the upgrade.
- Removed Features:
- Support for
INSERT WATCH
queries is removed. - The setting
optimize_monotonous_functions_in_order_by
is no longer available.
- Support for
max_parallel_replicas
Restriction: Settingmax_parallel_replicas
to 0 is no longer allowed to prevent logical errors.- Separate Packages:
clickhouse-odbc-bridge
andclickhouse-library-bridge
are now distributed as separate packages. - Query Parsing: Invalid queries fail earlier. Experimental KQL expressions in
kql
table functions now require string literals. - Snowflake Functions: New
SnowflakeID
functions replace older ones. To enable deprecated versions, setallow_deprecated_snowflake_conversion_functions=1
.
Appendix: New features
SQL features
- Recursive CTEs: Enables recursive queries for tree and graph traversal, fully compatible with standard SQL.
- QUALIFY Clause: Filters data after window functions.
- JOINS:
- Enable
allow_experimental_join_condition=1
for joins with inequalities, e.g.,t1.y < t2.y
. - Better CROSS (comma) JOIN
- Faster Parallel Hash Join
- Merge Join Algorithm For ASOF JOIN (join_algorithm = ‘full_sorting_merge’)
- Collect hash table sizes statistics in ConcurrentHashJoin (
max_entries_for_hash_table_stats
)
- Enable
- SQL usability:
- DROP Multiple Tables: Supports dropping multiple tables in one command:
TRUNCATE ALL TABLES
: New command to truncate all tables in one query.DROP DETACHED PARTITION ALL
for removing all detached partitions.- trailing commas support
- Replicated Database Engine: Removed the experimental tag; now in Beta.
Datalakes & object storage
- S3 Enhancements:
- Introduces
s3_plain_rewritable
for S3 disks without metadata storage. - Enables reading from archive files in S3 storage.
- Improved performance for glob selection (
{}
patterns). - a lot of performance optimizations
- Supports AWS Private Link Interface endpoints.
- Hive-Style Partitioning: Adds support for Hive-style partitioning in file storage engines like S3 and HDFS.
- Introduces
- Azure Blob Storage:
- production ready since 24.6
- Adds
plain_rewritable
metadata support. - Adds a queue-based storage engine for Azure.
use_workload_identity
parameter for authentication via Azure Workload Identity.- Multicopy support for backups using Azure Blob Storage.
- Enabled native copy for Azure, including across containers.
- Added support for
plain_rewritable
metadata for Azure and local object storages.
- Hive Table Parsing: Resolves mismatches between the number of input fields and defined table columns.
Experimental features
- TimeSeries Engine (Experimental): Optimized for time-series data, enabled with
allow_experimental_time_series_table
. - New Kafka Engine (Experimental): Enables exactly-once message processing with
kafka_keeper_path
and deduplication. - Dynamic Data Type and JSON Data Type: both experimental in 24.8.
- new (experimental) index type vector_similarity (replacing annoy and usearch)
- Experimental per column statistics allow_experimental_statistics + allow_statistics_optimize
- Native Parquet Reader: Enabled with
input_format_parquet_use_native_reader
, directly reads binary Parquet files to ClickHouse columns.
Security and access control
- GRANT for Table Engines: Allows granting specific permissions on table engines.
- Certificate Reload: Certificates reload correctly with the entire chain.
- Quota Key Flexibility: Allows quota keys with different auth schemes in HTTP requests.
- Role in HTTP Queries: The
role
parameter in HTTP queries applies roles, e.g.,?role=x&role=y
is equivalent toSET ROLE x, y
. - Migration BoringSSL -> OpenSSL
Operations
- Named Collections in Keeper:
- Startup Scripts: Allows running preconfigured queries at startup.
- Limits on Tables:
max_database_num_to_throw
,max_table_num_to_throw
. - Query Cache Tagging: Use
query_cache_tag
to control cache entries for specific queries. - Added limits for
MOVE PARTITION TO TABLE
queries (e.g.,max_parts_in_total
). - YAML Enhancements: YAML merge key support, Configuration substitutions from YAML files.
- HTTP Enhancements: Introduced
http_response_headers
for custom HTTP handler responses. - Error Logging: Introduces
system.error_log
, a persistent log of errors fromsystem.errors
. - system.detached_tables
- system.error_log
- new setting disable_insertion_and_mutation
- global_profiler_cpu_time_period_ns / global_profiler_real_time_period_ns - to profile all threads of the clickhouse globally.
MergeTree
- Optimized Table Sorting: Use
optimize_row_order=true
to improve compression by optimizing data order. - Reduce Disk I/O: Skips merging newly created projection blocks during
INSERT
. - Unload Primary Index: Saves memory by unloading outdated parts’ primary indices:
SYSTEM UNLOAD PRIMARY KEY
- ORDER BY Optimization: Buffering improves performance for high-selectivity filters, controlled by
read_in_order_use_buffering
. - New Virtual Columns: Adds
_block_offset
,_block_number
, and_part_data_version
. - TTL Information: Added to the
system.parts_columns
table for better tracking.
| merge_tree_settings | deduplicate_merge_projection_mode | | throw | Whether to allow create projection for the table with non-classic MergeTree, if allowed, what is the action when merge, drop or rebuild. |
Functions
date_diff
andage
anddate_trunc
to subsecond units.- JSONAllPaths, JSONAllPathsWithTypes, JSONDynamicPaths, JSONDynamicPathsWithTypes, JSONMergePatch, JSONSharedDataPaths, JSONSharedDataPathsWithTypes
- UUIDToNum, UUIDv7ToDateTime, generateUUIDv7
- base64URLDecode,base64URLEncode, tryBase64URLDecode
- changeDay, changeHour, changeMinute, changeMonth, changeSecond, changeYear
- clamp
- snowflakeIDToDateTime,snowflakeIDToDateTime64,generateSnowflakeID, dateTime64ToSnowflakeID, dateTimeToSnowflakeID
- denseRank,percentRank (+percent_rank), groupConcat (+group_concat)
- dynamicElement,dynamicType, isDynamicElementInSharedData,tupleNames
- editDistanceUTF8,levenshteinDistanceUTF8
- hilbertDecode,hilbertEncode
- readWKTLineString,readWKTMultiLineString |
- parseReadableSize,parseReadableSizeOrNull,parseReadableSizeOrZero
- partitionID
- printf
formats
- new format
Form
- HTML forms (x-www-form-urlencoded MIME type), Raw
handy shortcut for TSVRaw- TSV with CRLF Support: TSV files with CRLF line endings are supported via
input_format_tsv_crlf_end_of_line
. - Apache Arrow Schema: Nullable types are now inferred automatically.
Other
- Four File-Based Storage options: Adds
_etag
,_path
,_size
, and_timestamp
. - Compression Based on STDOUT: Automatically applies compression for STDOUT if the output file has a compression extension.
- 2 new WKT (Well-known text representation of geometry) types: LineString & MultiLineString
- Compile Expressions: JIT compiler for expression fragments (
compile_expressions
) enabled by default.
( see alsocompiled_expression_cache_size
compiled_expression_cache_elements_size
)
v24.8.14.10501
Released 2025-06-27
CI report | Release page | Changelog - 24.8.14.10501 vs. 24.8.14.10459
Changes compared to v24.8.14.10459.altinitystable
Bug Fixes (user-visible misbehavior in an official stable release)
- Wait for pair delimiter after flusing quoted value on extractKeyValuePairs (partial backport of ClickHouse#80657 by @arthurpassos via #865)
- Fix match(col, ‘^…’) index analysis with escaped metacharacters to avoid wrong results and crashes (ClickHouse#79969 by @filimonov via #863)
- Fix wrong results for grouping sets with ColumnConst and Analyzer (ClickHouse#79743 by @zvonand via #862)
- Ignore parse error in system.distributed_ddl_queue (ClickHouse#79369 by @ilejn via #843)
Improvements
- Allow to add http_response_headers in http_handlers of any kind (ClickHouse#79975 by @zvonand via #832)
- Added support for Date32, DateTime64 in TTL (ClickHouse#80710 by @zvonand via #833)
Build/Testing/Packaging Improvement
- 24.8 update report to new format (#823 by @strtgbb)
- Add Grype Scan (#792 by @strtgbb)
- Smarter pr number fetching for grype and report and update report action (#845 by @strtgbb)
Let’s Install!
Linux packages for both AMD64 and Aarch64 can be found at builds.altinity.cloud as either .deb
, .rpm
, or .tgz
. Linux packages for upstream builds are at packages.clickhouse.com.
Altinity Stable Build images are available at DockerHub as altinity/clickhouse-server:24.8.14.10501.altinitystable.
For more information on installing ClickHouse from either the Altinity Builds or the upstream builds, see the ClickHouse Altinity Stable Builds Install Guide.
Please contact us at info@altinity.com if you experience any issues with the upgrade.
v24.8.14.10459
Released 2025-03-28
Build report | Release page | Changelog - 24.8.14.10459 vs. 24.8.11.51285
Changes compared to upstream's v24.8.14.39-lts
Bug Fixes (user-visible misbehavior in an official stable release)
-
To avoid spamming the server logs, failing authentication attempts are now logged at level
DEBUG
instead ofERROR
. (#71405 by @rschu1ze via #651) -
Fix an exception of
TOO_LARGE_ARRAY_SIZE
caused when a column of arrayWithConstant evaluation is mistaken to cross the array size limit. (#71894 by @udiz via #650) -
Cross port of the fix to avoid reusing connections that had been left in the intermediate state. (#74749 by @azat via #678)
Improvements
-
ALTER TABLE .. REPLACE PARTITION
doesn’t wait anymore for mutations/merges that happen in other partitions (#59138 by @Enmk & @zvonand via #638) -
Respect
prefer_locahost_replica
when building plan for distributedINSERT ... SELECT.
(#72190 by @filimonov via #657) -
Support parquet integer logical types on native reader. (#72105 by @arthurpassos via #680)
-
Evaluate parquet bloom filters and min/max indexes together. (#71383 by @arthurpassos via #681)
-
Improve query_plan_merge_filters optimization (#71539 by @KochetovNicolai via #640)
Let’s Install!
Linux packages for both AMD64 and Aarch64 can be found at builds.altinity.cloud as either .deb
, .rpm
, or .tgz
. Linux packages for upstream builds are at packages.clickhouse.com.
Altinity Stable Build images are available at DockerHub as altinity/clickhouse-server:24.8.14.10459.altinitystable.
For more information on installing ClickHouse from either the Altinity Builds or the upstream builds, see the ClickHouse Altinity Stable Builds Install Guide.
Please contact us at info@altinity.com if you experience any issues with the upgrade.
v24.8.11.51285
Released 2025-01-31
Build report - 24.8.11.51285 | Release page
Known issues in 24.8.11
The following problems are known to exist in 24.8.11:
- Analyzer issues https://github.com/ClickHouse/ClickHouse/labels/analyzer
- https://github.com/ClickHouse/ClickHouse/issues/71456 issue with concurrent mutations. workaround: avoid concurrent mutations.
- https://github.com/ClickHouse/ClickHouse/issues/71479 corner case with push down of arrayAll conditions into joins. Workaround: rewrite the query.
- https://github.com/ClickHouse/ClickHouse/issues/71218 issue with array join and partition pruning. Workaround: rewrite query.
- https://github.com/ClickHouse/ClickHouse/issues/64652 issue with memory accounting in cgroups env.
- https://github.com/ClickHouse/ClickHouse/issues/65402 columns for parametrized views are not shown. Workaround: EXPLAIN (SELECT … FROM view(a=1,b=2) WHERE 0)
- https://github.com/ClickHouse/ClickHouse/issues/71895 “Optimized trivial count” can give wrong results in certain corner cases. Workardoung optimize_use_implicit_projection=0, optimize_trivial_count_query=0
- https://github.com/ClickHouse/ClickHouse/issues/71511 issue with memory tracking (fix https://github.com/ClickHouse/ClickHouse/pull/73081 )
- https://github.com/ClickHouse/ClickHouse/issues/69730 Unexpected literal type in function when using toDecimal256. Workaround: disable analyzer, or upgrade to a newer version.
Changes in Altinity Stable build compared to upstream build 24.8.11.5-lts
Like upstream builds, Altinity Stable builds for ClickHouse are open source and are based on upstream LTS versions.
Fixes backported to Altinity Stable Build 24.8.11
Altinity Stable Build version 24.8.11 is based on upstream 24.8.11.5-lts, but we have additionally backported several fixes:
- Thread pool: move thread creation out of lock (#68694)
- Passing external user roles from query originator to other nodes (#70332)
- Make numactl respect EPERM error, when get_mempolicy is restricted by seccomp (#70900)
- Fix S3 Express Disk Initialization issue (#73777)
- Thread pool metrics (#68674)
- More advanced SSL options for Keeper (#69582)
- Fix advanced SSL configuration for Keeper’s internal communication (#72730)
Backports of our work on better Parquet performance and compatibility
We have also backported some of our work on better Parquet performance and compatibility:
- Parquet bloom filter support (#62966)
- Parquet page header V2 support (#70807)
- Boolean datatype support (#71055)
- Compression level for Parquet output journal (#73651)
Build/Testing/Packaging improvements
- Port CI/CD to Altinity’s infrastructure
- Fixed tests
- Changed version number generation
Let’s Install!
Linux packages for both AMD64 and Aarch64 can be found at builds.altinity.cloud/ as either .deb
, .rpm
, or .tgz
. Linux packages for upstream builds are at https://packages.clickhouse.com.
Altinity Stable Build images are available at DockerHub as altinity/clickhouse-server:24.8.11.51285.altinitystable.
For more information on installing ClickHouse from either the Altinity Builds or the upstream builds, see the ClickHouse Altinity Stable Builds Install Guide.
Please contact us at info@altinity.com if you experience any issues with the upgrade.