Skip to main content
Hightouch supports ClickHouse v20 and newer for the Basic sync engine. The Lightning sync engine requires ClickHouse v25 or newer.

Overview

Hightouch lets you pull data stored in ClickHouse and push it to downstream destinations. Most of the setup occurs in the Hightouch UI, but you need access to ClickHouse for information like your host, port, database name, and credentials.
You may need to allowlist Hightouch’s IP addresses to let our systems connect to your warehouse. Reference our networking docs to determine which IP addresses you need to allowlist.

Connection configuration

To get started, go to the Sources overview page and click the Add source button. Select ClickHouse and follow the steps below.

Choose authentication method

You can select to use either a password or connection string. A connection string is useful if you need to pass additional configuration options. Hightouch connects to ClickHouse over the HTTP API using the @clickhouse/client driver. Sources created before June 2026 use the legacy ClickHouse JDBC driver; Hightouch automatically routes those sources to the JDBC transport. The Lightning sync engine requires the new HTTP transport and is therefore only available for new sources or sources re-created after this transition. If you select connection string, enter the connection string and skip to the connection test section of this page.

Choose connection type

Hightouch can connect directly to ClickHouse over the public internet or via an SSH tunnel. Since data is encrypted in transit via TLS, a direct connection is suitable for most use cases. You may need to set up a tunnel if your ClickHouse instance is on a private network or virtual private cloud (VPC). Direct connection vs. SSH tunnel Hightouch supports both standard and reverse SSH tunnels. To learn more about SSH tunneling, refer to Hightouch’s tunneling documentation.

Configure your source

Enter the following required fields into Hightouch:
  • Host: The hostname or IP address of your ClickHouse server.
  • Port: The port number of your ClickHouse server’s HTTP API. The default is 8123, but yours may be different.
  • Database: The name of the database to use when Hightouch executes queries in ClickHouse.
  • Username: This can be your personal ClickHouse login or a dedicated user for Hightouch.
  • (Optional) Password: The password for the user specified above.

Choose your sync engine

For optimal performance, Hightouch tracks incremental changes in your data model—such as added, changed, or removed rows—and only syncs those records. You can choose between two different sync engines for this work. The Basic engine requires read-only access to ClickHouse. Hightouch executes a query in your database, reads all query results, and then determines incremental changes using Hightouch’s infrastructure. This engine is easier to set up since it requires read—not write—access to ClickHouse. The Lightning engine requires read and write access to ClickHouse. The engine stores previously synced data in a separate schema in ClickHouse managed by Hightouch. In other words, the engine uses ClickHouse to track incremental changes to your data rather than performing these calculations in Hightouch. Therefore, these computations are completed more quickly. Standard vs Lightning engine comparison
Hightouch recommends using the Lightning sync engine when syncing more than 100,000 rows of data.
If you select the Basic engine, you can switch to the Lightning engine later. Once you’ve configured the Lightning engine, you can’t move back to the Basic engine without recreating ClickHouse as a source. To learn more, including migration steps and tips, check out the Lightning sync engine docs.

Basic versus Lightning engine comparison

Lightning engine setup

To set up the Lightning engine, you need to grant Hightouch write access to ClickHouse and create the databases Hightouch uses for change data capture and Warehouse Sync Logs. ClickHouse calls schemas “databases,” so the planner and audit schemas are databases:
The Lightning engine relies on lightweight UPDATE, lightweight DELETE, and the _block_number / _block_offset MergeTree columns, all of which require ClickHouse v25 or newer.
The Lightning engine isn’t available on sources running the legacy JDBC transport. If you have an existing ClickHouse source and want to use Lightning, re-create the source so Hightouch connects through the new HTTP transport.

Test your connection

When setting up ClickHouse as a source for the first time, Hightouch checks that you have the correct permissions. Once the test passes, click Continue to finish setup.

Create models

Once your source configuration has passed the necessary validation, your source setup is complete. Next, you can set up models to define which data you want to pull from ClickHouse. The ClickHouse source supports writing queries in the SQL editor as its modeling method.

Tips and troubleshooting

If you run into an issue this page doesn’t cover, .

Table selector fails to populate

If the table selector fails to populate, it may be that the ClickHouse user configured for the connection lacks necessary privileges. In order for Hightouch to automatically inspect the schema and populate the table selector, the user configured for the connection must have SELECT permissions on INFORMATION_SCHEMA.COLUMNS.
Last modified on June 26, 2026