Required access
Use a dedicated read-only database user. Source privileges should not includeCREATE, DROP, ALTER, INSERT, or DELETE.
SELECT only on the schemas and tables the workspace needs. Use a
secret manager for the real password. Do not commit it to source control.
Connection fields
For ClickHouse Cloud, copy the host, username, password, and database from
the cloud console and select Secure / TLS. The HTTP port defaults to
8443 and the native port defaults to 9440 automatically.
Create the connection
- Open Connections.
- Click + New Connection.
- Set the role to Source.
- Choose ClickHouse.
- Fill the connection fields.
- Click Test Connection.
- Save only after the test succeeds.
Discover and preview
After creating a pipeline:- Open the pipeline Source tab.
- Click Discover catalog.
- Enable each required
database.tablestream. - Choose its sync mode and cursor when applicable.
- Preview representative rows and confirm field types.
- Click Save stream settings.
system and INFORMATION_SCHEMA are filtered out of
discovery. The default database is treated as a regular user database and
is preserved.
Selected streams receive stable staging names such as default__events.
Full Table mode
Use Full Table for the first run, small reference tables, or deliberate snapshots. A run reads every selected source row visible to the source user.Incremental mode
Use Incremental for growing tables with a stable cursor:updated_atfor inserts and updates;created_atfor append-only tables; or- a monotonically increasing identifier.
id for Upsert delivery.
Type compatibility
The ClickHouse path supports common analytical types, including:UInt*,Int*,Float*,Decimal*String,FixedString,LowCardinality(String)Date,DateTime,DateTime64(precision, timezone)UUID,IPv4,IPv6Enum8,Enum16Nullable(...),Array(...),Map(...),Tuple(...),Nested(...)JSONandObjectwhere the engine version supports them
Decimal and DateTime64 values, prefer the existing destination’s
type-compatibility table to avoid lossy conversions.
Source reference
The source uses the officialclickhouse-connect driver with its clickhousedb
SQLAlchemy dialect over the HTTP transport. The destination-side uses the
native dlt ClickHouse destination, which supports merge, replace,
JSONL/Parquet loading, and the clickhouse_adapter for table-engine hints.
The connector does not rely on FINAL rewrites. For ReplacingMergeTree
tables, physical duplicate versions may exist until merges occur; treat
duplicates as a normal property of the engine and resolve on the destination
side when needed.
Sample source table
Troubleshooting
- Connection refused: verify host, HTTP port, network allowlist, and firewall rules.
- Authentication failed: verify username, password, and database name.
- TLS connection failure: check the Secure / TLS toggle and the HTTP port. For self-hosted ClickHouse on TLS, ensure the certificate is trusted by the ELT runtime.
- No tables discovered: grant
SELECTon the schema and tables. System schemas are filtered out by design. - Preview fails: check table permissions and unsupported custom types.
- Incremental rows missing: confirm the cursor changes on updates and is not null.
- Duplicate destination rows: use a stable primary key and Upsert delivery.