Documentation Index

Fetch the complete documentation index at: https://docs.dataddo.com/llms.txt

Use this file to discover all available pages before exploring further.

ClickHouse

Prev Next

ClickHouse is an open-source columnar database management system designed for high-performance analytics processing. It excels at handling large volumes of data and executing complex analytical queries in real-time, making it popular for applications that require fast data retrieval and analysis.

Authorize Connection to ClickHouse

Prerequisites

  • A running ClickHouse instance reachable by Dataddo. If you use a firewall, allow the Dataddo IPs.
  • A database user with rights to create tables and to insert, update, and delete rows in the target schema.

Create the authorizer

In Authorizers, click Authorize New Service and select ClickHouse, then fill in the fields:

Field Description
A name for this authorizer in Dataddo A label so you can recognize the connection later.
Server IP or Hostname Public IP or Hostname of your Clickhouse Server.
Database Name of the database you will use for writing or reading the data.
Username Username for authentication.
Password Password for authentication.
Port Dataddo uses native connection with default port 9000.
Protocol Communication protocol with server (Native default port 9000, HTTP default port 8123)
TLS/SSL Settings Configuration of TLS connection. Unless having specific requirements, keep on default value.
Client Certificate Additional CA certificate for establishing the TLS connection. You can upload or generate certificate in Security settings.
Use SSH tunnel In case you need to connect via SSH tunnel, create it first on the Security setting page and use pick it here afterwards.

Click Save. Dataddo validates the connection.

Create a ClickHouse Destination

Go to Destinations, click Create Destination, and select ClickHouse. Give the destination a name, choose the authorizer you created, and click Save.

Write Modes

The write mode decides how each flow run changes the target table. ClickHouse offers the standard set below, and the default is insert. Which modes are available, and whether you can switch modes on an existing flow, can depend on the table's current state.

Mode Meaning Composite Key
insert Appends new rows on every run. No
insert_ignore Appends rows, skipping rows that already exist. Yes
truncate_insert Empties the table, then writes the current data. No
upsert Inserts new rows and updates existing rows matched by the Composite Key. Yes
update Updates existing rows matched by the Composite Key; fails rows with no match. Yes
update_ignore Updates matched rows, skipping rows with no match. Yes
delete Deletes rows matched by the Composite Key. Yes

Composite Key

The Composite Key is the set of columns whose combined values identify each row. Every mode except insert and truncate_insert needs one. You can select up to 4 columns.

Table Naming

Dataddo creates the table on the first write if it does not exist. When you name the table:

  • Table name: table name should contains only letters, numbers or underscores
  • You can put date-range patterns such as {{1d1}} in the table name.

How to Create a Flow to ClickHouse

  1. Go to Flows and click Create Flow.
  2. Add one or more sources.
  3. Add ClickHouse as the destination and pick the authorizer.
  4. Choose a write mode, and a Composite Key for modes that need one.
  5. Set the schema and the table name.
  6. Set the schedule and click Save.

Troubleshooting

Invalid schema or table name

The schema or table name does not match ClickHouse's naming rules. Fix the name in the flow to match the rules in Table Naming, then restart the flow.

Insufficient privileges

The database user cannot create tables or write rows in the target schema. Grant the user create, insert, update, and delete rights, then restart the flow.

Cannot connect to ClickHouse

Dataddo cannot reach the database. Check the host, port, and credentials in the authorizer, and make sure the server is reachable by Dataddo. If you use a firewall, allow the Dataddo IPs.

Related Articles