Blog
Blog
Essays, stories and release notes from running ClickHouse in production.
Looking for the feature requests? See them grouped by outcome →
- field noteINSERT … RETURNING can return rows ClickHouse never storedA field test of 26.11's INSERT … RETURNING. It hands back the server's generated values almost for free — and, when an insert fails or is retried, rows and ids that never reached the table.
- field noteAn object-storage bill that jumped, and the bytes were not the reasonA non-production cluster's S3-backed disk got sharply more expensive in a week. The stored bytes were flat; the cost was requests. How to split a bucket bill into bytes, orphans and requests with system.remote_data_paths, system.parts and system.errors.
- field noteDeleting a slice of a huge tableRemoving about a tenth of the rows from tables with hundreds of billions of rows: count first, back up to a side table, then choose between ALTER DELETE per partition, lightweight DELETE and REPLACE PARTITION. What each costs, how to watch it, and why one slow replica set the pace.
- field noteWhat REVOKE really revokesPartial revokes, wildcards, roles and WITH GRANT OPTION in ClickHouse RBAC, tested row by row in system.grants. A REVOKE on a user does nothing to a privilege that arrives through a role, and re-issuing the wide GRANT silently erases the fence.
- field noteWhen the system tables ate the diskA staging cluster's system database reached several TiB, three quarters of it in renamed leftovers like query_log_3 that no TTL would ever touch. How it happened, how to measure it, how to set retention so it sticks, and how to clean up without a rename trap.
- EssayWhat 57 feature requests taught me about ClickHouseFrom 2017 to 2026 I filed about 57 feature requests on the ClickHouse tracker. Read together, the answers draw a map of what the core team says yes to, what it refuses, and why. A table of how long the accepted ones took, and advice for filing your own.
- storyThe write that cannot answerSeven years of INSERT … RETURNING in ClickHouse, and the architecture its absence built.
- storyAdvent of Code 2024, day 1, in ClickHouse SQLSort two columns independently, then pair them up: groupArray, arraySort and ARRAY JOIN turn the day 1 puzzle into one query. Run on clickhouse local with the sample input.
- PostNotes from ClickHouse release webinars, 22.9 to 23.8A condensed reading of twelve monthly release calls, from 22.9 to 23.8: what each release was about and which items are worth knowing about, with links to the official release notes.
- EssayNaming and documenting a ClickHouse schemaA short, opinionated set of naming rules, the argument for storing the documentation in the schema itself with comments, and a lint query on system.columns that enforces both.
- EssayFeature requests worth makingA running list of ClickHouse wishes, each checked against 26.4: what exists now, what has a good workaround, and what is still missing.
- talkClickHouse SQL GamesTwo games written in nothing but ClickHouse SQL: INSERT is the input, SELECT is the screen, materialized views are the game engine. The 2022 talk, and what broke on modern ClickHouse.
- EssayWhat ClickHouse UDFs should be able to doAny user-defined function is instantly callable by every user, with no GRANT. An argument for scoping UDFs to databases without forcing a database prefix.
- EssayTable functions as a first-class abstractionParametrised views exist now. The argument still open: a user-defined table function that is not bound to a database, so ClickHouse can hide REST sources and multiplexing behind one call.
- EssayLIMIT could do moreWhy building a many-JOIN query is painful in SQL, why LIMIT on the first table does not help, and what a developer-friendly LIMIT and a friendlier SELECT could look like.
- PostInvestigating a rising ClickHouse error rateA method for turning 'errors are going up' into a short list of culprit queries, using only system.query_log: signal versus noise, new versus old query shapes, and victims versus causes.
- talk10 good reasons to use ClickHouseA 2019 meetup talk, rewritten as an article: ten reasons ClickHouse won me over, what has changed for each since, and what seven years did to the argument.