普元数据开发平台 普元数据开发平台
产品介绍
安装部署
快速入门
操作指南
应用集成
运维指南
  • ClickHouse Sink组件使用说明
  • 组件说明
  • 配置项说明
  • 并行度配置建议
  • FAQ

# ClickHouse Sink组件使用说明

  • 组件说明
  • 配置项说明
  • 使用示例
    • ClickHouse同步示例
    • ClickHouse多表同步示例
  • FAQ

# 组件说明

支持 Batch / Streaming,将数据写入 ClickHouse 本地表 / 分布式表。

提示

1、使用 Clickhouse Sink 前需要提前创建好库表。
2、点击对应表的【目标表参数】按钮展开的配置项,完成配置后必须点击弹窗底部的【保存配置】按钮才能保存各自表的配置参数。

# 配置项说明

配置名称 数据类型 是否必填 默认值 描述
节点名称 String 是 ClickHouse 当前创建的节点名称,由用户自定义且不可为空。命名可包含字母、数字、下划线。确保唯一性。
节点编码 String 是 自动生成 当前创建的节点编码,以此标识此组件,由用户自定义且不可为空。命名可包含字母、数字、下划线。确保唯一性。
选择数据源 String 是 - 从下拉选项中选择列出的当前项目已经关联的数据源。
选择库 String 否 - 从下拉列表中选择数据库。
选择表 String 是 - 点击【获取表】从上游获取表。
数据添加模式 String 否 追加数据 支持四种模式:
1、追加数据:数据统一追加到目标表中;
2、同步前删除数据:先清空目标表数据,然后再给目标表添加数据;
3、当存在数据时,报告错误:当目标表存在相同数据时,报告错误,不会添加数据。
4、自定义处理:用户可以自定义写SQL的方式进行处理。
提交记录数 Int 否 20000 每批次通过 ClickHouse Jdbc 写入的行数
可选参数 Map 否 - 可以根据需求进行配置。可选参数名称可以参考 Seatunnel 官方手册。
json 格式如:
{
"clickhouse.config": "{ "max_rows_to_read" :100, "read_overflow_mode": "throw" }"
}

获取表后,点击每张表后的【目标表参数】按钮可以分别为表配置更多的参数,具体如下:

配置名称 数据类型 是否必填 默认值 描述
名称 String 是 - 表名称。
拆分模式 Boolean 否 否 boolean 类型,启用(true),默认禁用(false)。此模式仅支持引擎为:“Distributed”的 ClickHouse 表并且 internal_replication 选项为 true。它将会在 seatunnel 中拆分引擎为“Distributed”的表数据,并直接在每个分片上执行写操作。分片权重定义为 ClickHouse 将被计算在内。
分片键 String 否 - 此选项仅在“拆分模式”为 true 时有效。启用拆分模式时,向哪个节点发送数据是个问题,默认是随机选择,但可以使用“分片键”参数指定分片算法的字段。
允许轻量级删除 Boolean 否 否 默认false。允许基于 MergeTree 表引擎的实验性轻量级删除。轻量级删除原理参见:https://blog.csdn.net/weixin_39992480/article/details/128462618
启用 upsert 语法支持 Boolean 否 否 UPSERT 是 INSERT 与 UPDATE 的结合体,表示行存在时执行 UPDATE,不存在时执行 INSERT。执行需要表有 Unique Key 或 ReplacingMergeTree。
不启用时默认是INSERT。
主键 String 否 - 标记 ClickHouse 表的主键列,并根据主键对 ClickHouse 表执行INSERT/UPDATE/DELETE

# 并行度配置建议

  • 单节点 ClickHouse:parallelism = 2~4
  • 3 节点 CK 集群:parallelism = 3~6

并行度太高会压垮 CK CPU。

# FAQ

  1. 写入慢

调大提交记录数(batch_size 20000~50000)

写本地表,不要写分布式表

提高并行度(parallelism)

  1. 丢数据 / 超时

加大重试次数(retry)

调小提交记录数(batch_size)

检查 CK 内存 / CPU / 磁盘

  1. 字段不匹配

SeaTunnel 会按字段名匹配,不是按顺序

确保字段名一致

← ArgoDB Console →