ClickHouse
The ClickHouse Data Pool enables you to read through to your self-hosted ClickHouse or ClickHouse Cloud tables rather than syncing data to Propel.
This setup is particularly effective when:
- You are running your own self-hosted ClickHouse database.
- You are using ClickHouse Cloud.
- You are building data applications and need an API on top of ClickHouse.
- You are building customer-facing analytics dashboards on top of ClickHouse.
- You need a PostgreSQL-compatible SQL interface on top of ClickHouse.
Get started
Follow our step-by-step ClickHouse setup guide to connect your ClickHouse server to Propel.
Architecture overview
ClickHouse Data Pools make queries directly to a table in your own ClickHouse and then serve the data via the API, SQL, or UI components.
Features
ClickHouse Data Pools supports the following features:
Feature name | Supported | Notes |
---|---|---|
Read-through | ✅ | Reads through a ClickHouse table. The Propel user needs SELECT privileges. |
Batch deletes | ❌ | Batch delete operations are not supported on read-through Data Pools. |
Batch updates | ❌ | Batch update operations are not supported on read-through Data Pools. |
Add Column | ❌ | Add column operations are not supported on read-through Data Pools. |
API configurable | ✅ | See Management API docs. |
Terraform configurable | ✅ | See Propel Terraform docs. |
How does the ClickHouse Data Pool work?
The ClickHouse Data Pool queries a table in your ClickHouse database using a set of credentials. The user provisioned for Propel must have at least SELECT
privileges that ensure real-time access to data.
Once created, a ClickHouse Data Pool is queryable via the API, SQL, or UI Components like any other Data Pool.
Schema changes
When you make changes to the underlying table, you can pick up those changes by creating a new Data Pool.
Data types
The table below describes the data types mappings from ClickHouse to Propel types. Types not supported by Propel will not be available in the Data Pool.
ClickHouse type | Propel type |
---|---|
String | STRING |
LowCardinality(String) | STRING |
Int8 | INT8 |
Int16 | INT16 |
Int32 | INT32 |
Int64 | INT64 |
Int128 | INT64 |
Int256 | INT64 |
UInt8 | INT16 |
UInt16 | INT32 |
UInt32 | INT64 |
UInt64 | INT64 |
UInt128 | INT64 |
UInt256 | INT64 |
Float32 | FLOAT |
Float64 | DOUBLE |
Bool | BOOLEAN |
DateTime[(…)] | TIMESTAMP |
DateTime64[(…)] | TIMESTAMP |
Date | DATE |
Date32 | DATE |
UUID | STRING |
FixedString | STRING |
Enum[N][(…)] | STRING |
IPv4 | STRING |
IPv6 | STRING |
Decimal | DOUBLE |
Decimal (with 0 scale) | INT64 |
Limitations
- Propel only supports connecting via the ClickHouse HTTPS interface.
Management API
Below is the relevant API documentation for the ClickHouse Data Pool.