Skip to content

ClickHouse compatibility

The chkit team develops and tests against ObsessionDB (managed ClickHouse with SharedMergeTree) and recent open-source ClickHouse releases.

Use ClickHouse 24.x or newer, whether self-hosted, ClickHouse Cloud, or ObsessionDB. chkit uses SQL DDL and the HTTP interface. The team does not test older versions; they may reject generated DDL.

The continuous test suite runs against ObsessionDB, so the SharedMergeTree/Shared* engine families and ObsessionDB-specific DDL are the main test targets. Vanilla single-node ClickHouse is supported for standard MergeTree-family engines.

Kafka engine tables support creation, pull, and schema drift, validated on self-hosted ClickHouse 25.3 and 26.3. Existing queue changes require explicit replacement; generic Kafka column/settings ALTERs are not generated. The server must provide the Kafka engine and broker connectivity. Distributed and other integration engines remain outside this support scope.

A few schema features depend on the ClickHouse version of your target:

FeatureRequirement
API sync rawTable (native JSON)Native JSON is production-ready on 25.3+. For older targets, use a custom destination with supported column types. See the ClickHouse JSON reference.
Refreshable materialized viewsProduction-ready on 24.10+ (no flag). Experimental and flag-gated on 23.12–24.9. chkit targets 24.10+.
set data-skipping indexClickHouse 26+ requires the set(0) form rather than a bare set; chkit emits set(maxRows) accordingly. See the DSL reference.
uniqueKeyRenders UNIQUE KEY DDL, which is supported on ObsessionDB / ClickHouse Cloud engines but rejected by vanilla MergeTree.
dictionary()DDL CREATE DICTIONARY only: supported broadly on 21.x+. chkit does not model XML-config dictionaries or RENAME/SYSTEM RELOAD DICTIONARY.

If you target a single-node open-source ClickHouse, prefer the standard MergeTree engine family and avoid the Cloud/Shared-only features above.