All Products
Search
Document Center

DataWorks:Sumber data ClickHouse

Last Updated:Mar 20, 2026

Sumber Data ClickHouse di DataWorks memungkinkan Anda membaca dari dan menulis ke ClickHouse. Topik ini menjelaskan kemampuan sinkronisasi data yang didukung serta konfigurasi yang diperlukan.

Versi yang didukung

Sumber Data ini mendukung versi ApsaraDB for ClickHouse berikut dan versi driver Java Database Connectivity (JDBC) yang kompatibel.

Versi driver JDBC

Versi kernel ApsaraDB for ClickHouse

0.2.4

20.8, 21.8

0.4.0, 0.4.2

22.8, 23.8, 25.3

Batasan

Sumber Data ClickHouse hanya mendukung operasi Batch Read dan Write.

  • Anda dapat menggunakan Serverless Resource Groups.

  • Koneksi dibuat menggunakan Java Database Connectivity (JDBC), dan pembacaan data dibatasi pada pernyataan JDBC.

  • Pemfilteran dan pengubahan urutan kolom didukung.

  • Untuk mencegah beban kerja tinggi pada ClickHouse, kami merekomendasikan mengatur throughput maksimum menjadi 1.000 Transactions Per Second (TPS) saat menggunakan ClickHouse Writer dalam mode INSERT.

  • Sinkronisasi batch untuk satu tabel ClickHouse hanya didukung untuk ApsaraDB for ClickHouse.

Tipe data yang didukung

Tabel berikut mencantumkan tipe data ApsaraDB for ClickHouse umum yang didukung. Untuk daftar lengkap tipe data ApsaraDB for ClickHouse, lihat Tipe data. Tipe data dari dokumentasi open source resmi ClickHouse yang tidak tercantum dalam daftar ini tidak didukung. Untuk daftar lengkap tipe data open source ClickHouse, lihat Dokumentasi ClickHouse.

Tipe

ClickHouse Reader

ClickHouse writer

Int8

Didukung

Didukung

Int16

Didukung

Didukung

Int32

Didukung

Didukung

Int64

Didukung

Didukung

UInt8

Didukung

Didukung

UInt16

Didukung

Didukung

UInt32

Didukung

Didukung

UInt64

Didukung

Didukung

Float32

Didukung

Didukung

Float64

Didukung

Didukung

Decimal

Didukung

Didukung

String

Didukung

Didukung

FixedString

Didukung

Didukung

Date

Didukung

Didukung

DateTime

Didukung

Didukung

DateTime64

Didukung

Didukung

Boolean

Didukung

Catatan

ClickHouse tidak memiliki tipe Boolean native. Anda dapat menggunakan UInt8 atau Int8 sebagai alternatif.

Didukung

Array

Didukung sebagian.

Hanya didukung jika elemen array bertipe integer, floating-point, string, atau DateTime64 (presisi milidetik).

Didukung

Tuple

Didukung

Didukung

Domain(IPv4,IPv6)

Didukung

Didukung

Enum8

Didukung

Didukung

Enum16

Didukung

Didukung

Nullable

Didukung

Didukung

Nested

Didukung sebagian.

Hanya didukung jika tipe data nested berupa integer, floating-point, string, atau DateTime64 (presisi milidetik).

Didukung

Tambahkan sumber data

Sebelum mengembangkan tugas sinkronisasi di DataWorks, Anda harus menambahkan sumber data yang diperlukan ke DataWorks dengan mengikuti petunjuk di Manajemen sumber data. Anda dapat melihat deskripsi parameter di Konsol DataWorks untuk memahami arti parameter saat menambahkan sumber data.

Sinkronisasi data

Untuk informasi tentang titik masuk dan prosedur konfigurasi tugas sinkronisasi, lihat panduan konfigurasi berikut.

Sinkronisasi batch tabel tunggal

Sinkronisasi batch seluruh database

Untuk petunjuknya, lihat Konfigurasikan tugas Sinkronisasi Batch Seluruh Database.

Lampiran: Contoh skrip dan parameter

Konfigurasikan tugas sinkronisasi batch menggunakan editor kode

Jika ingin mengonfigurasi tugas sinkronisasi batch menggunakan editor kode, Anda harus mengonfigurasi parameter terkait dalam skrip berdasarkan persyaratan format skrip terpadu. Untuk informasi lebih lanjut, lihat Gunakan editor kode. Informasi berikut menjelaskan parameter yang harus dikonfigurasi untuk sumber data saat mengonfigurasi tugas sinkronisasi batch menggunakan editor kode.

Contoh skrip reader

{
    "type": "job",
    "version": "2.0",
    "steps": [
        {
            "stepType": "clickhouse", // Nama konektor.
            "parameter": {
                "datasource": "example",
                "table": "source_table",  // Tabel sumber.
                "column": [           // Kolom yang akan dibaca.
                    "id",
                    "name"
                ],
                "where": "",          // Kondisi filter.
                "splitPk": "",        // Kunci shard untuk pembacaan paralel.
                "fetchSize": 1024     // Jumlah catatan yang diambil per batch.
            },
            "name": "Reader",
            "category": "reader"
        },
        {
            "stepType": "stream",
            "parameter": {},
            "name": "Writer",
            "category": "writer"
        }
    ],
    "setting": {
        "errorLimit": {
            "record": "0"  // Jumlah maksimum Catatan Data Kotor yang diizinkan.
        },
        "speed": {
            "throttle": true, // Menentukan apakah pembatasan kecepatan diaktifkan.
            "concurrent": 1,  // Jumlah thread konkuren untuk pekerjaan.
            "mbps": "12"      // Laju transfer maksimum dalam MB/s.
        }
    },
    "order": {
        "hops": [
            {
                "from": "Reader",
                "to": "Writer"
            }
        ]
    }
}

Parameter skrip reader

Parameter

Deskripsi

Wajib

Bawaan

datasource

Nama Sumber Data ClickHouse yang telah Anda buat di DataWorks.

Ya

Tidak ada

table

Tabel sumber tempat data dibaca.

Catatan

table harus disertakan dalam blok konfigurasi connection.

Ya

Tidak ada

fetchSize

Jumlah catatan yang diambil dari database dalam setiap batch. Nilai yang lebih besar dapat mengurangi interaksi jaringan dan meningkatkan kinerja ekstraksi data.

Catatan

Mengatur nilai ini terlalu tinggi dapat menyebabkan Error Out-of-Memory (OOM). Kami merekomendasikan menaikkan nilai secara bertahap berdasarkan penggunaan resource dan beban kerja ClickHouse Anda.

Tidak

1024

column

Kolom yang akan dibaca dari ClickHouse. Pisahkan nama kolom dengan koma. Contoh: "column": ["id", "name", "age"].

Catatan

Parameter column wajib dan tidak boleh kosong.

Ya

Tidak ada

jdbcUrl

String koneksi Java Database Connectivity (JDBC) ke database sumber. Parameter jdbcUrl terdapat dalam unit konfigurasi koneksi.

  • Hanya satu nilai yang dapat dikonfigurasi per database.

  • Format jdbcUrl konsisten dengan format resmi ClickHouse. Anda juga dapat menambahkan parameter tambahan. Contoh: jdbc:clickhouse://localhost:3306/test?user=root&password=&useUnicode=true&characterEncoding=gbk &autoReconnect=true&failOverReadOnly=false.

Ya

Tidak ada

username

Username untuk sumber data.

Ya

Tidak ada

password

Password untuk username sumber data.

Ya

Tidak ada

splitPk

Saat ClickHouse mengekstraksi data, menentukan splitPk akan melakukan sharding data berdasarkan bidang yang direpresentasikan oleh splitPk. Sinkronisasi Data kemudian memulai tugas konkuren untuk meningkatkan efisiensi sinkronisasi.

Catatan

Parameter fetchSize wajib saat splitPk dikonfigurasi.

Tidak

Tidak ada

where

Kondisi filter. Misalnya, untuk menyinkronkan data hari ini, atur kondisi where menjadi gmt_create>$bizdate.

Kondisi where memungkinkan Anda melakukan sinkronisasi data inkremental. Jika Anda tidak menentukan pernyataan where, atau tidak memberikan kunci atau nilai untuk where, maka sinkronisasi data penuh akan dilakukan.

Tidak

Tidak ada

Contoh skrip writer

{
    "type": "job",
    "version": "2.0", // Versi skrip.
    "steps": [
        {
            "stepType": "stream",
            "parameter": {},
            "name": "Reader",
            "category": "reader"
        },
        {
            "stepType": "clickhouse", // Nama konektor.
            "parameter": {
                "datasource": "example_ch_writer", // Nama sumber data target.
                "column": [ // Kolom target.
                    "id",
                    "name"
                ],
                "table": "target_table", // Tabel target.
                "preSql": [ // Pernyataan SQL yang dijalankan sebelum tugas dimulai.
                    "TRUNCATE TABLE IF EXISTS target_table"
                ],
                "postSql": [ // Pernyataan SQL yang dijalankan setelah tugas selesai.
                    "OPTIMIZE TABLE target_table FINAL"
                ],
                "batchSize": 1024, // Jumlah catatan yang ditulis per batch.
                "writeMode": "insert"
            },
            "name": "Writer",
            "category": "writer"
        }
    ],
    "setting": {
        "errorLimit": {
            "record": "0" // Jumlah maksimum Catatan Data Kotor yang diizinkan.
        },
        "speed": {
            "throttle": true, // Menentukan apakah pembatasan kecepatan diaktifkan.
            "concurrent": 1,  // Jumlah thread konkuren untuk pekerjaan.
            "mbps": "12"      // Laju transfer maksimum dalam MB/s.
        }
    },
    "order": {
        "hops": [
            {
                "from": "Reader",
                "to": "Writer"
            }
        ]
    }
}

Parameter skrip writer

Parameter

Deskripsi

Wajib

Bawaan

jdbcUrl

String koneksi JDBC untuk database tujuan. Parameter jdbcUrl termasuk dalam blok konfigurasi connection.

  • Hanya satu nilai yang dapat dikonfigurasi untuk satu database.

  • Format jdbcUrl sama dengan format resmi ClickHouse. Anda dapat menambahkan parameter tambahan. Contoh: jdbc:clickhouse://127.0.0.1:3306/database.

Ya

Tidak ada

datasource

Nama Sumber Data ClickHouse yang telah Anda buat di DataWorks.

Ya

Tidak ada

password

Password untuk username sumber data.

Ya

Tidak ada

table

Tabel target tempat data ditulis.

Catatan

table harus berada dalam blok konfigurasi connection.

Ya

Tidak ada

column

Kolom target tempat data ditulis. Tentukan nama kolom dalam bentuk array JSON. Contoh: "column": ["id", "name", "age"].

Catatan

Parameter column wajib dan tidak boleh kosong.

Ya

Tidak ada

preSql

Pernyataan SQL yang dijalankan sebelum tugas penulisan dimulai.

Tidak

Tidak ada

postSql

Pernyataan SQL yang dijalankan setelah tugas penulisan selesai.

Tidak

Tidak ada

batchSize

Jumlah catatan yang ditulis dalam setiap batch. Nilai yang lebih besar dapat mengurangi interaksi jaringan dengan ClickHouse dan meningkatkan Throughput secara keseluruhan.

Tidak

1024