What’s New in ClickHouse? Latest Features and Updates
Why ClickHouse Keeps Turning Heads
Even after a few years on the market, ClickHouse feels like the new kid on the block whenever a major version drops. Its column‑oriented engine still manages to squeeze out performance that rivals, and often beats, traditional OLAP databases. That’s why developers, data engineers, and BI teams keep checking the blog, GitHub releases, and community forums for fresh tricks.
In short, the excitement isn’t just hype—real‑world use cases keep expanding, from real‑time analytics at ad tech firms to telemetry pipelines for IoT fleets.
Version 23.9: The Most Talked‑About Release
Released in late September, version 23.9 introduced a handful of changes that developers are already weaving into production pipelines.
- Improved MergeTree partition pruning – the optimizer now looks deeper into partition keys, cutting query latency by up to 30 % on large tables.
- Native JSON handling – you can now store, index, and query JSON fields without materializing them into separate columns, which simplifies schema evolution.
- Dynamic settings for distributed queries – a new
distributed_group_by_no_mergeflag lets you skip an extra merge step when you know the data is already pre‑aggregated.
These updates may look modest on paper, but they address pain points that many teams hit when scaling from a few terabytes to petabyte‑scale warehouses.
Introducing the “Materialized Views 2.0” Concept
Materialized views have been a ClickHouse staple, but the latest redesign brings a more declarative syntax and better fault tolerance.
Key benefits include:
- Automatic refresh on insert‑only tables, removing the need for manual
REFRESH MATERIALIZED VIEWcommands. - Built‑in support for partition‑wide invalidation, so stale data is purged without dropping the whole view.
- Compatibility with
TTLrules, letting you define expiration policies inline with the view definition.
If you’ve been juggling external scripts to keep views fresh, this change alone could save hours of maintenance each month.
Better Observability: Metrics and Tracing
Observability has finally caught up with ClickHouse’s speed. The new system.metrics_extended table now surfaces:
- CPU and memory usage broken down by query phase (parsing, planning, execution).
- Network I/O per distributed replica, making it easier to spot bottlenecks in multi‑region clusters.
- Histogram buckets for query latency, useful for building SLA dashboards.
On top of that, the integration with OpenTelemetry means you can push traces directly to Jaeger or Grafana Tempo, giving you a full picture of how a query traverses the cluster.
SQL Compatibility Got a Boost
For teams migrating from PostgreSQL or MySQL, the latest ClickHouse release adds a few long‑awaited SQL features.
Window Functions
Window functions like ROW_NUMBER(), LAG(), and NTILE() now work on MergeTree tables without a sub‑query workaround. This makes analytical queries look much cleaner.
INSERT … SELECT
You can now insert the result of a SELECT directly into another table in a single statement, which is handy for ETL pipelines that need to stage data temporarily.
Community Spotlight: Open‑Source Plugins
The ClickHouse ecosystem is flourishing, and a few community‑driven plugins have risen to prominence.
- ClickHouse Keeper – an alternative to ZooKeeper that’s lighter weight and easier to configure for small to medium clusters.
- Vectorized CSV/TSV parsers – these parsers dramatically improve import speeds for flat files, especially when dealing with millions of rows.
- Grafana ClickHouse Data Source v2 – now supports query‑templating and variable substitution out‑of‑the‑box, making dashboards more dynamic.
Because these plugins are open source, you can fork them, tweak the code, or contribute back—something the core team actively encourages.
Looking Ahead: What’s on the Roadmap?
While the team is careful not to overpromise, the public roadmap hints at two big directions.
- Hybrid storage models – blending in‑memory and disk‑based storage to balance speed and cost for hot versus cold data.
- Built‑in machine‑learning functions – think
PREDICT_LINEAR_REGRESSIONorPREDICT_KMEANSrunning directly in SQL, reducing the need for a separate ML stack.
If those land, the line between “analytics” and “real‑time inference” could blur even further.
How to Stay Updated
Keeping up with ClickHouse doesn’t have to be a chore. A quick routine could look like this:
- Subscribe to the official blog for release notes.
- Watch the GitHub releases page for patch-level changes.
- Join the Discord community where engineers share real‑world quirks and workarounds.
Even a half‑hour a week can keep you from being blindsided by a breaking change.