ClickHouse
This guide walks you through configuring ClickHouse as a destination for your Webflow Analyze and Optimize data export.
Prerequisites
- If your ClickHouse security posture requires IP allowlisting, have the Webflow static IP:
34.69.83.207/32available during the following steps. It will be required in Step 1.
Configuration steps
Allow access
SSH Tunneling Not Supported
SSH Tunneling is currently unsupported for Clickhouse destinations. Please ensure your Clickhouse destination is accessible over the public internet.
Create a rule in a security group or firewall settings to allowlist:
- Incoming connections to your host and port (usually
9440) from the static IP. - Outgoing connections from ports
1024to65535to the static IP.
Network allowlisting
Webflow Static IP: 34.69.83.207/32
Create writer user
Create a database user to perform the writing of the data.
-
Open a connection to your ClickHouse database.
-
Create a user for the data transfer by executing the following SQL command.
Password Rules
Passwords may only include alphanumeric characters (A-Z, a-z, 0-9), dashes (-), and underscores (_).
-
Grant user required privileges on the database.
Understanding the
CREATE TEMPORARY TABLE, S3permissionsThe
CREATE TEMPORARY TABLEandS3permissions are required to efficiently transfer data to ClickHouse. Under the hood, these permissions are used to stage data in object storage as compressed files, COPY INTO temporary tables, and finally merge into the target tables. By definition, the temporary table will not exist outside of the session.
Set up staging bucket
ClickHouse destinations require a staging bucket to efficiently transfer data. Configure your staging bucket using one of the following types of ClickHouse supported object storage:
- S3
- GCS
- Implicit
Using the implicit bucket option
ClickHouse supports the ability to configure staging resources with environment credentials. If this setting is enabled on your ClickHouse cluster, you may choose to use the configured implicit staging resources using the implicit option for the staging bucket selection.
Add your destination
Connection Protocol
Use the ClickHouse TCP native protocol, not HTTPS. This is commonly exposed on port 9000.
Use the following details to complete the connection setup: host name, port, cluster, database name, schema name, username, password, and staging bucket details.
- Instructions for Analyze / Optimize for Webflow sites
- Instructions for Optimize for non-Webflow sites
Understanding the database vs. schema fields (connection database vs. write database)
Depending on the version of your integration, you may be asked for both a database and schema, or a connection database and write database.
database(also referred to asconnection_database): is the database used to establish the connection with ClickHouse.schema(also referred to aswrite_database): is the database/schema within which data will be written
These can be (and often are) the same values, but do not need to be.
Using the ClickHouse data
Querying ClickHouse data without duplicates
The resulting ClickHouse tables use the ReplacingMergeTree table engine in order to efficiently upsert changes. To properly query this data, the FINAL keyword must be used when selecting from these tables guarantee duplicates are removed. For example: