ClickHouse Compatibility Matrix
Comprehensive compatibility reference for HeliosDB’s ClickHouse protocol implementation.
Overall Compatibility: 85%
| Category | Coverage | Status |
|---|
| Native Protocol | 100% | Complete |
| HTTP Protocol | 100% | Complete |
| SQL Language | 90% | Complete |
| Table Engines | 80% | Core engines |
| Data Types | 95% | All standard types |
Protocol Support
Native Protocol (TCP)
| Feature | Status | Notes |
|---|
| Connection | Supported | Port 9000 |
| Authentication | Supported | Password-based |
| Compression | Supported | LZ4, ZSTD, LZ4HC |
| SSL/TLS | Supported | Encrypted connections |
| Query Execution | Supported | Full SQL |
| Batch Insert | Supported | High throughput |
HTTP Protocol
| Feature | Status | Notes |
|---|
| GET Queries | Supported | Read operations |
| POST Queries | Supported | Write operations |
| Streaming | Supported | Large result sets |
| Compression | Supported | gzip, deflate |
| JSON Output | Supported | Multiple formats |
Table Engines
MergeTree Family
| Engine | Status | Notes |
|---|
| MergeTree | Supported | Primary engine |
| ReplacingMergeTree | Supported | Upsert behavior |
| SummingMergeTree | Supported | Auto-summing |
| AggregatingMergeTree | Supported | Pre-aggregation |
| CollapsingMergeTree | Supported | Collapsing rows |
| VersionedCollapsingMergeTree | Supported | Versioned collapse |
| GraphiteMergeTree | Partial | Basic support |
Integration Engines
| Engine | Status | Notes |
|---|
| Distributed | Supported | Multi-node queries |
| Kafka | Supported | Stream ingestion |
| S3 | Supported | Cloud storage |
| HDFS | Partial | Basic support |
| PostgreSQL | Supported | External tables |
| MySQL | Supported | External tables |
Special Engines
| Engine | Status | Notes |
|---|
| Memory | Supported | In-memory tables |
| Log | Supported | Simple logging |
| Null | Supported | Discard data |
| View | Supported | Standard views |
| MaterializedView | Supported | Auto-refresh |
| Dictionary | Supported | Fast lookups |
Data Types
Numeric Types
| Type | Status | Notes |
|---|
| UInt8/16/32/64 | Supported | Unsigned integers |
| Int8/16/32/64 | Supported | Signed integers |
| Float32/64 | Supported | IEEE 754 |
| Decimal(P, S) | Supported | Fixed precision |
| UInt128/256 | Supported | Large integers |
| Int128/256 | Supported | Large signed |
String Types
| Type | Status | Notes |
|---|
| String | Supported | Variable length |
| FixedString(N) | Supported | Fixed length |
| UUID | Supported | UUID type |
| IPv4 | Supported | IP addresses |
| IPv6 | Supported | IPv6 addresses |
Date/Time Types
| Type | Status | Notes |
|---|
| Date | Supported | Calendar date |
| Date32 | Supported | Extended range |
| DateTime | Supported | Timestamp |
| DateTime64 | Supported | With precision |
Composite Types
| Type | Status | Notes |
|---|
| Array(T) | Supported | Dynamic arrays |
| Tuple(T1, T2, …) | Supported | Named tuples |
| Map(K, V) | Supported | Key-value maps |
| Nested | Supported | Nested columns |
| Enum8/16 | Supported | Enumerated types |
| LowCardinality | Supported | Dictionary encoding |
| Nullable(T) | Supported | NULL support |
SQL Features
SELECT Clauses
| Clause | Status | Notes |
|---|
| SELECT | Supported | Column selection |
| FROM | Supported | Table references |
| WHERE | Supported | Row filtering |
| PREWHERE | Supported | Early filtering |
| GROUP BY | Supported | Aggregation |
| HAVING | Supported | Group filtering |
| ORDER BY | Supported | Sorting |
| LIMIT | Supported | Row limiting |
| OFFSET | Supported | Row skipping |
| SAMPLE | Supported | Data sampling |
| FINAL | Supported | Deduplication |
| WITH | Supported | CTEs |
JOIN Operations
| Type | Status | Notes |
|---|
| INNER JOIN | Supported | |
| LEFT JOIN | Supported | |
| RIGHT JOIN | Supported | |
| FULL JOIN | Supported | |
| CROSS JOIN | Supported | |
| ASOF JOIN | Supported | Time-series joins |
| GLOBAL JOIN | Supported | Distributed joins |
Window Functions
| Function | Status | Notes |
|---|
| ROW_NUMBER | Supported | |
| RANK | Supported | |
| DENSE_RANK | Supported | |
| LEAD | Supported | |
| LAG | Supported | |
| FIRST_VALUE | Supported | |
| LAST_VALUE | Supported | |
| NTH_VALUE | Supported | |
Aggregation Functions
Basic Aggregations
| Function | Status | Notes |
|---|
| count() | Supported | Row count |
| sum() | Supported | Sum values |
| avg() | Supported | Average |
| min() | Supported | Minimum |
| max() | Supported | Maximum |
| any() | Supported | Any value |
Statistical Functions
| Function | Status | Notes |
|---|
| stddevPop() | Supported | Std deviation |
| varPop() | Supported | Variance |
| covarPop() | Supported | Covariance |
| corr() | Supported | Correlation |
Quantile Functions
| Function | Status | Notes |
|---|
| quantile() | Supported | Approximate |
| quantileExact() | Supported | Exact |
| quantileTiming() | Supported | Timing data |
| quantiles() | Supported | Multiple |
Unique Functions
| Function | Status | Notes |
|---|
| uniq() | Supported | Approximate |
| uniqExact() | Supported | Exact |
| uniqCombined() | Supported | Combined |
| uniqHLL12() | Supported | HyperLogLog |
Top-K Functions
| Function | Status | Notes |
|---|
| topK() | Supported | Top K values |
| topKWeighted() | Supported | Weighted |
State Functions
| Function | Status | Notes |
|---|
| *State() | Supported | Aggregate state |
| *Merge() | Supported | Merge states |
| *If() | Supported | Conditional |
Array Functions
| Function | Status | Notes |
|---|
| arrayJoin | Supported | Flatten arrays |
| arrayMap | Supported | Transform |
| arrayFilter | Supported | Filter |
| arrayReduce | Supported | Reduce |
| arraySort | Supported | Sort |
| arrayReverse | Supported | Reverse |
| arraySlice | Supported | Slice |
String Functions
| Function | Status | Notes |
|---|
| concat | Supported | Concatenation |
| substring | Supported | Substring |
| length | Supported | Length |
| lower/upper | Supported | Case conversion |
| trim | Supported | Trim whitespace |
| splitByChar | Supported | Split string |
| match | Supported | Regex match |
| extract | Supported | Regex extract |
Date/Time Functions
| Function | Status | Notes |
|---|
| toDate | Supported | Convert to date |
| toDateTime | Supported | Convert to datetime |
| toStartOf* | Supported | Period start |
| toYear/Month/Day | Supported | Extract parts |
| date_add/sub | Supported | Date arithmetic |
| dateDiff | Supported | Date difference |
| now() | Supported | Current time |
External Data Integration
S3 Functions
| Feature | Status | Notes |
|---|
| s3() | Supported | Read from S3 |
| s3Cluster() | Supported | Distributed read |
| INSERT INTO s3() | Supported | Write to S3 |
| Format | Status | Notes |
|---|
| CSV | Supported | Text format |
| TSV | Supported | Tab-separated |
| JSON | Supported | JSON format |
| Parquet | Supported | Columnar format |
| ORC | Supported | Columnar format |
| Avro | Partial | Basic support |
| Feature | Status | Notes |
|---|
| Columnar Storage | Supported | Native |
| Data Compression | Supported | LZ4, ZSTD |
| Vectorized Execution | Supported | SIMD |
| Parallel Query | Supported | Multi-thread |
| Query Pipelining | Supported | Streaming |
| Index Skipping | Supported | Sparse index |
Known Limitations
Not Supported
| Feature | Reason |
|---|
| Replicated Engines | Use HeliosDB replication |
| Embedded ZooKeeper | Different architecture |
| Kafka Exactly-Once | Different guarantees |
| HDFS Full Support | Planned |
Behavioral Differences
- Replication: Uses HeliosDB replication instead of ClickHouse Keeper
- Storage: Uses HeliosDB storage engine
- Mutations: May have different timing
- Settings: Some advanced settings may differ
Related: README.md | CONFIGURATION.md | EXAMPLES.md
Last Updated: December 2025