ClickHouse® Release Notes

ClickHouse is an excellent DBMS with very smart people working on making it even better every day. Unfortunately, it still lacks some important communication procedures, and arguable the most wanted one is release notes.
Altinity mission is to make ClickHouse use easy for everybody, and we will try to fill the gap between Yandex and end users.
Below are release notes that Yandex team presented at the recent meetup in Ekaterinburg. It includes changes and new features appeared in latest 1.1.54231 release as well as some others that were not yet documented or publicly explained. We have tried most of these by ourselves and provided the short description when applicable. Some features certainly deserve deeper explanations, and are going to extend this article with more details over next few days.
So, what’s new in ClickHouse?
Usability
- Unrestricted number of dictionaries with ODBC data source
- Store config parts in ZooKeeper — already in documentation
input_format_allow_errors_*settings — allows to skip certain amount/ratio of errors during data loadOPTIMIZE TABLE ... DEDUPLICATE— useful when working withReplacingMergeTreetablesclickhouse --extract-from-config— allows to get config parameter in shell scripts using all substitutions and includes that ClickHouse does by itself- Type casts for
Mergetables — allows to have slightly different types in tables that matchMergeengine pattern INSERT FROM SELECT— type casts and using positional matchALTER ... DROP COLUMN ... FROM PARTITIONKILL QUERYLIMIT BYSELECT INTO OUTFILE
Distributed queries
- Turning off latent replicas (
max_replica_delay_for_distributed_queriessetting) - Turning off replicas with missing tables
- Original query source in system.processes and system.query_log — it is much easier to trace distributed queries this way
- Cross-replication (see discussion there)
Interfaces
- ODBC for Windows
- HTTPS
- HTTP bufferization
- HTTP gzip optimization
- HTTP progress (in headers)
Introspection
system.parts– row count (not in 1.1.54231, to be included in the next stable release)system.columns— compressed and uncompressed sizesystem.part_log— turned off by default, logs all part creation/merge operationssystem.build_options, system.graphite
NULLs (beta)
JOINby null value —join_use_nullssettingORDER BY ... NULLS FIRST/LASTNULLsupport in IN (…)NULLsupport in higher-order functions- Functions
if, multiIf, ifNull, nullIf, coalesce toNullable,assumeNotNull- Nullable datatypes in aggregate functions
NULLas a subselect result
Other
- Performance optimisations
DISTINCTBuffertablesFixedString
clickhouse-local— run ClickHouse queries over any input-ForEachcombinator — converts aggregate functions to functions accepting arrays, see details heretopK(beta)decodeURLComponentUUIDNumToString, UUIDStringToNum- GIS functions
pointInEllipsesgreatCircleDistance
P.S. You can always find latest ClickHouse version in Yandex or Altinity repository, depending on Linux distro. See details here
ClickHouse® is a registered trademark of ClickHouse, Inc.; Altinity is not affiliated with or associated with ClickHouse, Inc.