将 Amazon Kinesis 与 ClickHouse Cloud 集成
先决条件
您已熟悉 ClickPipes 简介,并设置了 IAM 凭证 或 IAM 角色。请遵循 Kinesis 基于角色的访问指南,了解如何设置与 ClickHouse Cloud 配合使用的角色。
创建您的第一个 ClickPipe
- 访问您的 ClickHouse Cloud 服务的 SQL 控制台。
- 选择左侧菜单上的“
数据源
”按钮,然后单击“设置 ClickPipe”
- 选择您的数据源。
- 填写表格,提供您的 ClickPipe 的名称、描述(可选)、您的 IAM 角色或凭证以及其他连接详细信息。
- 选择 Kinesis Stream 和起始偏移量。UI 将显示来自所选源(Kafka 主题等)的示例文档。您还可以为 Kinesis 流启用增强型扇出,以提高 ClickPipe 的性能和稳定性(有关增强型扇出的更多信息,请参见此处)
- 在下一步中,您可以选择是将数据摄取到新的 ClickHouse 表中还是重用现有表。按照屏幕上的说明修改您的表名、模式和设置。您可以在顶部的示例表中看到更改的实时预览。
您还可以使用提供的控件自定义高级设置
- 或者,您可以决定将数据摄取到现有的 ClickHouse 表中。在这种情况下,UI 将允许您将源中的字段映射到所选目标表中的 ClickHouse 字段。
- 最后,您可以配置内部 ClickPipes 用户的权限。
权限: ClickPipes 将创建一个专用用户,用于将数据写入目标表。您可以使用自定义角色或预定义角色之一为该内部用户选择角色
完全访问权限
:具有对集群的完全访问权限。如果您将物化视图或字典与目标表一起使用,这可能很有用。仅目标表
:仅具有对目标表的INSERT
权限。
- 通过单击“完成设置”,系统将注册您的 ClickPipe,您将能够在摘要表中看到它。
摘要表提供控件,以显示来自源或 ClickHouse 中目标表的示例数据
以及用于删除 ClickPipe 和显示摄取作业摘要的控件。
- 恭喜! 您已成功设置了您的第一个 ClickPipe。如果这是一个流式 ClickPipe,它将持续运行,从您的远程数据源实时摄取数据。否则,它将批量摄取并完成。
支持的数据格式
支持的格式为
支持的数据类型
以下 ClickHouse 数据类型目前在 ClickPipes 中受支持
- 基本数值类型 - [U]Int8/16/32/64 和 Float32/64
- 大型整数类型 - [U]Int128/256
- Decimal 类型
- Boolean
- String
- FixedString
- Date, Date32
- DateTime, DateTime64(仅限 UTC 时区)
- Enum8/Enum16
- UUID
- IPv4
- IPv6
- 所有 ClickHouse LowCardinality 类型
- Map,其键和值使用上述任何类型(包括 Nullable)
- Tuple 和 Array,其元素使用上述任何类型(包括 Nullable,仅限一级深度)
Kinesis 虚拟列
以下虚拟列受 Kinesis 流支持。创建新的目标表时,可以使用“添加列
”按钮添加虚拟列。
名称 | 描述 | 推荐数据类型 |
---|---|---|
_key | Kinesis 分区键 | String |
_timestamp | Kinesis 大概到达时间戳(毫秒精度) | DateTime64(3) |
_stream | Kinesis 流名称 | String |
_sequence_number | Kinesis 序列号 | String |
_raw_message | 完整 Kinesis 消息 | String |
在仅需要完整 Kinesis JSON 记录的情况下,可以使用 _raw_message 字段(例如,使用 ClickHouse JsonExtract*
函数来填充下游物化视图)。对于此类管道,删除所有“非虚拟”列可能会提高 ClickPipes 性能。
局限性
- 不支持 DEFAULT。
性能
批处理
ClickPipes 以批处理方式将数据插入 ClickHouse。这是为了避免在数据库中创建过多 parts,这可能会导致集群中的性能问题。
当满足以下条件之一时,将插入批次
- 批次大小已达到最大大小(100,000 行或 20MB)
- 批次已打开最长时间(5 秒)
延迟
延迟(定义为 Kinesis 消息发送到流与消息在 ClickHouse 中可用之间的时间)将取决于许多因素(即 Kinesis 延迟、网络延迟、消息大小/格式)。上面部分中描述的批处理也会影响延迟。我们始终建议测试您的特定用例以了解您可以预期的延迟。
如果您有特定的低延迟要求,请联系我们。
扩展
ClickPipes for Kinesis 旨在水平扩展。默认情况下,我们创建一个消费者。可以使用 ClickPipe 详细信息视图中的扩展控件来更改此设置。
身份验证
要访问 Amazon Kinesis 流,您可以使用 IAM 凭证 或 IAM 角色。有关如何设置 IAM 角色的更多详细信息,您可以参考本指南,了解如何设置与 ClickHouse Cloud 配合使用的角色