Tüm Ürünler
Search
Belge Merkezi

DataWorks:ClickHouse veri kaynağı

Son Güncelleme:Oct 09, 2026

ClickHouse veri kaynağı, ClickHouse ile çift yönlü bir kanal üzerinden veri okumanıza ve yazmanıza olanak tanır. Bu konuda, DataWorks tarafından desteklenen ClickHouse veri senkronizasyonu yetenekleri açıklanmaktadır.

Desteklenen sürümler

Aşağıdaki Alibaba Cloud ClickHouse sürümleri, listelenen JDBC sürücü sürümleriyle uyumludur:


JDBC sürücü sürümü


Alibaba Cloud ClickHouse çekirdek sürümü


0.2.4


20,8, 21,8


0.4.0, 0.4.2


22,8, 23,8, 25,3

Sınırlamalar

ClickHouse veri kaynağı yalnızca toplu iş okuma ve yazma işlemlerini destekler. Ayrıntılar aşağıda verilmiştir:

  • Bir Serverless kaynak grubu kullanabilirsiniz.

  • ClickHouse'a JDBC üzerinden bağlanılabilir ancak veriler yalnızca JDBC Statement aracılığıyla okunabilir.

  • Sütunları belirterek bazı sütunları seçebilir ve sütun sırasını yeniden düzenleyebilirsiniz.

  • ClickHouse yükünü sınırlamak için, ClickHouse Writer INSERT modunu kullandığında sistem aktarım hızının saniyede en fazla 1.000 işlem (TPS) ile sınırlandırılmasını öneririz.

  • ClickHouse ile tek tablo toplu iş senkronizasyonu yalnızca Alibaba Cloud ClickHouse için desteklenir.

Desteklenen alan türleri

Aşağıdaki yaygın Alibaba Cloud ClickHouse veri türleri desteklenmektedir. Alibaba Cloud ClickHouse türlerinin tam listesi için bkz. Veri türleri. Açık kaynaklı ClickHouse veri türü kümesindeki diğer türler desteklenmemektedir. Açık kaynaklı türlerin tam listesi için bkz. ClickHouse belgeleri.

Veri türü

ClickHouse Reader

ClickHouse Writer

Int8

Desteklenir

Desteklenir

Int16

Desteklenir

Desteklenir

Int32

Desteklenir

Desteklenir

Int64

Desteklenir

Desteklenir

UInt8

Desteklenir

Desteklenir

UInt16

Desteklenir

Desteklenir

UInt32

Desteklenir

Desteklenir

UInt64

Desteklenir

Desteklenir

Float32

Desteklenir

Desteklenir

Float64

Desteklenir

Desteklenir

Decimal

Desteklenir

Desteklenir

String

Desteklenir

Desteklenir

FixedString

Desteklenir

Desteklenir

Date

Desteklenir

Desteklenir

DateTime

Desteklenir

Desteklenir

DateTime64

Desteklenir

Desteklenir

Boolean

Desteklenir

Not

ClickHouse'ta ayrı bir Boolean türü bulunmaz. UInt8 veya Int8 kullanın.

Desteklenir

Array

Kısmen desteklenir.

Dizi öğeleri tamsayı, kayan noktalı sayı, dize veya milisaniye hassasiyetine sahip DateTime64 değerleri olduğunda desteklenir.

Desteklenir

Tuple

Desteklenir

Desteklenir

Domain(IPv4,IPv6)

Desteklenir

Desteklenir

Enum8

Desteklenir

Desteklenir

Enum16

Desteklenir

Desteklenir

Nullable

Desteklenir

Desteklenir

Nested

Kısmen desteklenir.

İç içe geçmiş veri türleri tamsayı, kayan noktalı sayı, dize veya milisaniye hassasiyetine sahip DateTime64 değerleri olduğunda iç içe geçmiş değerler desteklenir.

Desteklenir

Veri kaynağı ekleme

DataWorks'te bir senkronizasyon görevi geliştirmeden önce, Veri kaynağı yapılandırması konusundaki talimatları izleyerek gerekli veri kaynağını DataWorks'e eklemeniz gerekir. Bir veri kaynağı eklerken parametrelerin anlamlarını anlamak için DataWorks konsolunda parametre açıklamalarını görüntüleyebilirsiniz.

Veri senkronizasyonu görevleri geliştirme

Bir senkronizasyon görevini yapılandırmaya ilişkin giriş noktası ve yordam hakkında bilgi için aşağıdaki yapılandırma kılavuzlarına bakın.

Tek tablo toplu iş senkronizasyonu görevini yapılandırma

Tam veritabanı toplu iş okuma senkronizasyonu görevini yapılandırma

Yordam için bkz. Toplu iş veritabanı senkronizasyonu yapılandırması.

Ek: Örnek betikler ve parametreler

Kod düzenleyici kullanarak toplu iş senkronizasyonu görevini yapılandırma

Bir toplu iş senkronizasyonu görevini kod düzenleyici kullanarak yapılandırmak istiyorsanız, betikteki ilgili parametreleri birleşik betik biçimi gereksinimlerine göre yapılandırmanız gerekir. Daha fazla bilgi için bkz. Betik modu yapılandırması. Aşağıdaki bilgiler, kod düzenleyici kullanarak bir toplu iş senkronizasyonu görevini yapılandırırken veri kaynakları için yapılandırmanız gereken parametreleri açıklamaktadır.

Reader örnek betiği

{ "type": "job", "version": "2.0", "steps": [ { "stepType": "clickhouse", //Plug-in name. "parameter": { "fetchSize":1024,//Number of records fetched in each batch by the plug-in and database server. "datasource": "example", "column": [ //Column names. "id", "name" ], "where": "", //Filter condition. "splitPk": "", //Split key. "table": "" //Table name. }, "name": "Reader", "category": "reader" }, { "stepType": "clickhouse", "parameter": { "postSql": [ "update @table set db_modify_time = now() where db_id = 1" ], "datasource": "example", //Data source. "batchByteSize": "67108864", "column": [ "id", "name" ], "writeMode": "insert", "encoding": "UTF-8", "batchSize": 1024, "table": "ClickHouse_table", "preSql": [ "delete from @table where db_id = -1" ] }, "name": "Writer", "category": "writer" } ], "setting": { "executeMode": null, "errorLimit": { "record": "0" //Maximum number of error records during synchronization. }, "speed": { "throttle":true,//When throttle is false, mbps is ignored and throughput is unlimited; when true, throughput is limited. "concurrent":1 //Job concurrency. "mbps":"12",//Rate limit. Here, 1 mbps = 1 MB/s. } }, "order": { "hops": [ { "from": "Reader", "to": "Writer" } ] } }

Reader betiği parametreleri

Parametre

Açıklama

Gerekli

Varsayılan değer

datasource

Veri kaynağı adı. Betik modunda bir veri kaynağı ekleyebilirsiniz. Değer, eklenen veri kaynağının adıyla eşleşmelidir.

Evet

Yok

table

JSON olarak tanımlanan senkronize edilecek tablo.

Not

table, connection yapılandırma birimine dahil edilmelidir.

Evet

Yok

fetchSize

Eklenti ve veritabanı sunucusu tarafından her toplu işte alınan kayıt sayısı. Bu, Data Integration ile sunucu arasındaki ağ etkileşimlerinin sayısını kontrol eder ve veri çıkarma performansını artırabilir.

Not

Aşırı büyük bir fetchSize değeri, senkronizasyon sürecinde bellek yetersizliği (OOM) hatasına neden olabilir. ClickHouse yüküne bağlı olarak bu değeri kademeli olarak artırın.

Hayır

1.024

column

Virgülle ayrılmış okunacak ClickHouse alanları. Örnek: "column": ["id", "name", "age"].

Not

column ayarı gereklidir ve boş bırakılamaz.

Evet

Yok

jdbcUrl

Kaynak veritabanı için JDBC bağlantı bilgileri. jdbcUrl ayarı, connection yapılandırma biriminde yer alır.

  • Her veritabanı için yalnızca bir değer belirtilebilir.

  • jdbcUrl biçimi resmi ClickHouse biçimini izler ve ek bağlantı parametreleri içerebilir. Örnek:jdbc:clickhouse://localhost:3306/test?user=root&password=&useUnicode=true&characterEncoding=gbk &autoReconnect=true&failOverReadOnly=false.

Evet

Yok

username

Veri kaynağı kullanıcı adı.

Evet

Yok

password

Belirtilen veri kaynağı kullanıcısının parolası.

Evet

Yok

splitPk

ClickHouse'tan veri çıkarırken splitPk belirtmek, verilerin splitPk tarafından temsil edilen alana göre bölünmesini istediğiniz anlamına gelir. Senkronizasyon daha sonra verimliliği artırmak için eşzamanlı görevler başlatır.

Not

splitPk yapılandırıldığında fetchSize gereklidir.

Hayır

Yok

where

Bir filtre koşulu. Pratikte, geçerli günün verilerini senkronize etmek isteyebilirsiniz. where koşulunu gmt_create>$bizdate olarak ayarlayın.

where koşulu artımlı senkronizasyonu etkinleştirir. where deyimi yoksa (yani where anahtarı veya değeri eksikse) tüm veriler senkronize edilir.

Hayır

Yok

Writer örnek betiği

{ "type":"job", "version":"2.0",//Version number. "steps":[ { "stepType":"stream", "parameter":{}, "name":"Reader", "category":"reader" }, { "stepType":"clickhouse",//Plug-in name. "parameter":{ "username": "", "password": "", "column": [//Fields. "id", "name" ], "connection": [ { "table": [//Table name. "ClickHouse_table" ], "jdbcUrl": "jdbc:clickhouse://ip:port/database" } ], "preSql": [ //SQL statements to run before the synchronization task. "TRUNCATETABLEIFEXISTStablename" ], "postSql": [//SQL statements to run after the synchronization task. "ALTERTABLEtablenameUPDATEcol1=1WHEREcol2=2" ], "batchSize": "1024", "batchByteSize": "67108864", "writeMode": "insert" }, "name":"Writer", "category":"writer" } ], "setting":{ "errorLimit":{ "record":"0"//Number of error records. }, "speed":{ "throttle":true,//When throttle is false, mbps is ignored and throughput is unlimited; when true, throughput is limited. "concurrent":1, //Job concurrency. "mbps":"12"//Rate limit. Here, 1 mbps = 1 MB/s. } }, "order":{ "hops":[ { "from":"Reader", "to":"Writer" } ] } }

Writer betiği parametreleri

Parametre

Açıklama

Gerekli

Varsayılan değer

jdbcUrl

Hedef veritabanı için JDBC bağlantı bilgileri. jdbcUrl, connection yapılandırma biriminde yer alır.

  • Her veritabanı için yalnızca bir değer belirtilebilir.

  • jdbcUrl resmi ClickHouse biçimini izler ve ek bağlantı parametreleri içerebilir. Örnek:jdbc:clickhouse://127.0.0.1:3306/database.

Evet

Yok

username

Veri kaynağı kullanıcı adı.

Evet

Yok

password

Belirtilen veri kaynağı kullanıcısının parolası.

Evet

Yok

table

JSON dizisi olarak tanımlanan yazılacak tablonun adı.

Not

table, connection yapılandırma birimine dahil edilmelidir.

Evet

Yok

column

Virgülle ayrılmış yazılacak hedef tablo alanları. Örnek: "column": ["id", "name", "age"].

Not

column ayarı gereklidir ve boş bırakılamaz.

Evet

Yok

preSql

Veriler hedef tabloya yazılmadan önce çalıştırılacak standart SQL deyimleri.

Hayır

Yok

postSql

Veriler hedef tabloya yazıldıktan sonra çalıştırılacak standart SQL deyimleri.

Hayır

Yok

batchSize

Tek bir toplu işte gönderilen kayıt sayısı. Bu, senkronizasyon sistemi ile ClickHouse arasındaki ağ etkileşimlerini büyük ölçüde azaltır ve aktarım hızını artırır. Aşırı büyük bir değer, senkronizasyon sürecinde bellek yetersizliği (OOM) hatasına neden olabilir.

Hayır

1.024