For AI agents: a documentation index is available at the root level at /llms.txt and /llms-full.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.
Resources
Get started
ReferenceChangelog
ReferenceChangelog
  • Browser API
    • wf.ready()
  • Consent Management
    • Get consent status
    • Allow user tracking
    • Deny user tracking
  • Optimize
    • Quickstart
    • Variations
    • Custom attributes
  • Custom Goals
    • On-site conversions
    • Off-site conversions
  • Data Exports
    • Data destinations
      • Snowflake
      • Google BigQuery
      • Amazon Redshift
      • Amazon Redshift Serverless
      • Amazon Athena
      • Databricks
      • ClickHouse
      • Delta Lake
      • PostgreSQL
      • Aurora PostgreSQL
      • MySQL
      • Aurora MySQL
      • SQL Server
      • MongoDB
      • Amazon S3
      • S3-compatible storage
      • Google Cloud Storage
      • Azure Blob Storage
      • SFTP
      • Google Sheets
    • Data schema
  • Additional Resources
    • Support Documentation
LogoLogo
Resources
Get started
On this page
  • Prerequisites
  • Configuration steps
  • Using the ClickHouse data
Data ExportsData destinations

ClickHouse

Was this page helpful?
Previous

Delta Lake

Next
Built with

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/32 available during the following steps. It will be required in Step 1.

Configuration steps

1

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:

  1. Incoming connections to your host and port (usually 9440) from the static IP.
  2. Outgoing connections from ports 1024 to 65535 to the static IP.

Network allowlisting

Webflow Static IP: 34.69.83.207/32

2

Create writer user

Create a database user to perform the writing of the data.

  1. Open a connection to your ClickHouse database.

  2. Create a user for the data transfer by executing the following SQL command.

    1CREATE USER <username>@'%' IDENTIFIED BY '<some-password>';

    Password Rules

    Passwords may only include alphanumeric characters (A-Z, a-z, 0-9), dashes (-), and underscores (_).

  3. Grant user required privileges on the database.

    1GRANT SELECT ON information_schema.columns TO <username>;
    2GRANT CREATE, INSERT, DROP, ALTER, OPTIMIZE, SHOW, TRUNCATE ON <database>.* TO <username>@'%';
    3grant CREATE TEMPORARY TABLE, S3 on *.* to <username>@'%';

    Understanding the CREATE TEMPORARY TABLE, S3 permissions

    The CREATE TEMPORARY TABLE and S3 permissions 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.

3

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.

4

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 as connection_database): is the database used to establish the connection with ClickHouse.
  • schema (also referred to as write_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:

1SELECT
2 *
3FROM
4 schema.table FINAL
5WHERE
6 foo = bar
7ORDER BY foo
8LIMIT 10;