Philosophy
Philosophy
Why ClickHouse is built the way it is, and what that says about how to build data systems.
- 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.
- 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.
- 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.