Clickhouse

Clickhouse source connector

Key Features​

supports query SQL and can achieve projection effect.

Description​

Used to read data from Clickhouse.

Supported DataSource Info​

Datasource
Supported Versions

Clickhouse

universal

Data Type Mapping​

Clickhouse Data Type
Nexus Data Type

String / Int128 / UInt128 / Int256 / UInt256 / Point / Ring / Polygon MultiPolygon

STRING

Int8 / UInt8 / Int16 / UInt16 / Int32

INT

UInt64 / Int64 / IntervalYear / IntervalQuarter / IntervalMonth / IntervalWeek / IntervalDay / IntervalHour / IntervalMinute / IntervalSecond

BIGINT

Float64

DOUBLE

Decimal

DECIMAL

Float32

FLOAT

Date

DATE

DateTime

TIME

Array

ARRAY

Map

MAP

Source Options​

Name
Type
Required
Default
Description

host

String

Yes

-

ClickHouse cluster address, the format is host:port , allowing multiple hosts to be specified. Such as "host1:8123,host2:8123" .

database

String

Yes

-

The ClickHouse database.

sql

String

Yes

-

The query sql used to search data though Clickhouse server.

username

String

Yes

-

ClickHouse user username.

password

String

Yes

-

ClickHouse user password.

clickhouse.config

Map

No

-

In addition to the above mandatory parameters that must be specified by clickhouse-jdbc , users can also specify multiple optional parameters, which cover all the parameters provided by clickhouse-jdbc.

server_time_zone

String

No

ZoneId.systemDefault()

The session time zone in database server. If not set, then ZoneId.systemDefault() is used to determine the server time zone.

common-options

No

-

Source plugin common parameters, please refer to Source Common Options for details.

How to Create a Clickhouse Data Synchronization Jobs​

The following example demonstrates how to create a data synchronization job that reads data from Clickhouse and prints it on the local client:

# Set the basic configuration of the task to be performed
env {
  parallelism = 10
  job.mode = "BATCH"
}

# Create a source to connect to Clickhouse
source {
  Clickhouse {
    host = "localhost:8123"
    database = "default"
    sql = "select * from test where age = 20 limit 100"
    username = "xxxxx"
    password = "xxxxx"
    server_time_zone = "UTC"
    result_table_name = "test"
    clickhouse.config = {
      "socket_timeout": "300000"
    }
  }
}

# Console printing of the read Clickhouse data
sink {
  Console {
    parallelism = 1
  }
}

Last updated