集成包
org.apache.beam.sdk.io.clickhouse.ClickHouseIO 的实现位于 Apache Beam repo 中。
Apache Beam ClickHouse 软件包设置
软件包安装
代码示例
input.csv 的 CSV 文件读取为 PCollection,再将其转换为 Row 对象 (使用已定义的 schema) ,并通过 ClickHouseIO 将其插入本地 ClickHouse 实例中:
支持的数据类型
ClickHouseIO.Write 参数
ClickHouseIO.Write 配置:
限制
- 截至目前,仅支持 Sink 操作,不支持 Source 操作。
- 向
ReplicatedMergeTree或基于ReplicatedMergeTree构建的Distributed表插入数据时,ClickHouse 会执行去重。未启用复制时,如果插入失败后重试成功,向普通 MergeTree 表插入可能会产生重复数据。不过,每个块的插入都是原子的,并且可以使用ClickHouseIO.Write.withMaxInsertBlockSize(long)配置块大小。去重是通过对已插入块的校验和进行比对来实现的。有关去重的更多信息,请参阅 去重 和 插入去重配置。 - 该连接器不会执行任何 DDL 语句;因此,目标表必须在插入前已存在。
ClickHouseIO类的文档。- 示例
Github仓库:clickhouse-beam-connector。