前置条件
创建你的第一个 ClickPipe
- 进入你的 ClickHouse Cloud 服务的 SQL 控制台。
- 在左侧菜单中选择
Data Sources按钮,然后点击“Set up a ClickPipe”
- 选择你的数据源。
- 填写表单,为 ClickPipe 提供名称、描述 (可选) 、IAM role 或凭据,以及其他连接信息。
- 选择 Kinesis Stream 和起始偏移量。UI 将显示所选来源 (Kafka topic 等) 中的一个样本文档。你还可以为 Kinesis 数据流 启用 Enhanced Fan-out,以提升 ClickPipe 的性能和稳定性 (有关 Enhanced Fan-out 的更多信息,请参见此处)
- 在下一步中,你可以选择将数据摄取到新的 ClickHouse 表中,或复用现有表。按照界面提示修改表名、schema 和设置。你可以在顶部的样本表中实时预览这些更改。
- 或者,你也可以选择将数据摄取到现有的 ClickHouse 表中。在这种情况下,UI 将允许你把来源中的字段映射到所选目标表中的 ClickHouse 字段。
- 最后,你可以为内部 ClickPipes 用户配置权限。
Full access:拥有对 cluster 的完全访问权限。如果你在目标表中使用了 materialized view 或字典,这可能会很有用。Only destination table:仅对目标表具有INSERT权限。
- 点击“Complete Setup”后,系统将注册你的 ClickPipe,你将能在汇总表中看到它。
- 恭喜! 你已成功设置了第一个 ClickPipe。如果这是一个流式 ClickPipe,它将持续运行,并从远程数据源实时摄取数据。否则,它会摄取该批次后结束。
支持的数据格式
压缩
- gzip
- zstd
- lz4
- snappy (帧格式)
对于 JSON 和 CSV 这类基于文本的格式,自动检测是安全的,因为可打印的 ASCII 字符绝不会与压缩 magic bytes 冲突。
受支持的数据类型
标准类型支持
- 基础数值类型 - [U]Int8/16/32/64、Float32/64 和 BFloat16
- 大整数类型 - [U]Int128/256
- Decimal 类型
- Boolean
- String
- FixedString
- Date、Date32
- DateTime、DateTime64 (仅支持 UTC 时区)
- Enum8/Enum16
- UUID
- IPv4
- IPv6
- 所有 ClickHouse LowCardinality 类型
- 键和值可使用上述任意类型的 Map (包括 Nullable)
- 元素可使用上述任意类型的 Tuple 和 Array (包括 Nullable,仅支持一层嵌套)
- SimpleAggregateFunction 类型 (适用于 AggregatingMergeTree 或 SummingMergeTree 目标端)
Variant 类型支持
Variant(String, Int64, DateTime)) 。
由于 ClickPipes 确定应使用哪种 Variant 子类型的方式所限,Variant 定义中只能使用一种整数类型或一种 DateTime 类型——例如,不支持 Variant(Int64, UInt32)。
JSON 类型支持
Kinesis 虚拟列
Add Column 按钮添加虚拟列。
在仅需完整 Kinesis JSON 记录的场景下,可以使用 _raw_message 字段 (例如使用 ClickHouse
JsonExtract* 函数填充下游 materialized view) 。对于这类管道,删除所有“非虚拟”列可能会提升 ClickPipes 性能。
限制
- 不支持 DEFAULT。
- 默认情况下,使用最小 (XS) 副本规格运行时,单条消息大小上限为 16MB (未压缩) ;使用更大副本时,上限为 32MB (未压缩) 。超过此限制的消息将被拒绝并报错。如果您需要更大的消息,请联系支持团队。
性能
批量处理
- 批次大小达到上限 (每 1GB 副本内存对应 100,000 行或 32MB)
- 批次的最长保留时间达到上限 (5 秒)