跳到主要内容
跳到主要内容
编辑此页面

将 Amazon Kinesis 与 ClickHouse Cloud 集成

先决条件

您已熟悉 ClickPipes 简介,并设置了 IAM 凭证IAM 角色。请遵循 Kinesis 基于角色的访问指南,了解如何设置与 ClickHouse Cloud 配合使用的角色。

创建您的第一个 ClickPipe

  1. 访问您的 ClickHouse Cloud 服务的 SQL 控制台。

ClickPipes service

  1. 选择左侧菜单上的“数据源”按钮,然后单击“设置 ClickPipe”

Select imports

  1. 选择您的数据源。

Select data source type

  1. 填写表格,提供您的 ClickPipe 的名称、描述(可选)、您的 IAM 角色或凭证以及其他连接详细信息。

Fill out connection details

  1. 选择 Kinesis Stream 和起始偏移量。UI 将显示来自所选源(Kafka 主题等)的示例文档。您还可以为 Kinesis 流启用增强型扇出,以提高 ClickPipe 的性能和稳定性(有关增强型扇出的更多信息,请参见此处

Set data format and topic

  1. 在下一步中,您可以选择是将数据摄取到新的 ClickHouse 表中还是重用现有表。按照屏幕上的说明修改您的表名、模式和设置。您可以在顶部的示例表中看到更改的实时预览。

Set table, schema, and settings

您还可以使用提供的控件自定义高级设置

Set advanced controls

  1. 或者,您可以决定将数据摄取到现有的 ClickHouse 表中。在这种情况下,UI 将允许您将源中的字段映射到所选目标表中的 ClickHouse 字段。

Use and existing table

  1. 最后,您可以配置内部 ClickPipes 用户的权限。

权限: ClickPipes 将创建一个专用用户,用于将数据写入目标表。您可以使用自定义角色或预定义角色之一为该内部用户选择角色

  • 完全访问权限:具有对集群的完全访问权限。如果您将物化视图或字典与目标表一起使用,这可能很有用。
  • 仅目标表:仅具有对目标表的 INSERT 权限。

permissions

  1. 通过单击“完成设置”,系统将注册您的 ClickPipe,您将能够在摘要表中看到它。

Success notice

Remove notice

摘要表提供控件,以显示来自源或 ClickHouse 中目标表的示例数据

View destination

以及用于删除 ClickPipe 和显示摄取作业摘要的控件。

View overview

  1. 恭喜! 您已成功设置了您的第一个 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 流支持。创建新的目标表时,可以使用“添加列”按钮添加虚拟列。

名称描述推荐数据类型
_keyKinesis 分区键String
_timestampKinesis 大概到达时间戳(毫秒精度)DateTime64(3)
_streamKinesis 流名称String
_sequence_numberKinesis 序列号String
_raw_message完整 Kinesis 消息String

在仅需要完整 Kinesis JSON 记录的情况下,可以使用 _raw_message 字段(例如,使用 ClickHouse JsonExtract* 函数来填充下游物化视图)。对于此类管道,删除所有“非虚拟”列可能会提高 ClickPipes 性能。

局限性

性能

批处理

ClickPipes 以批处理方式将数据插入 ClickHouse。这是为了避免在数据库中创建过多 parts,这可能会导致集群中的性能问题。

当满足以下条件之一时,将插入批次

  • 批次大小已达到最大大小(100,000 行或 20MB)
  • 批次已打开最长时间(5 秒)

延迟

延迟(定义为 Kinesis 消息发送到流与消息在 ClickHouse 中可用之间的时间)将取决于许多因素(即 Kinesis 延迟、网络延迟、消息大小/格式)。上面部分中描述的批处理也会影响延迟。我们始终建议测试您的特定用例以了解您可以预期的延迟。

如果您有特定的低延迟要求,请联系我们

扩展

ClickPipes for Kinesis 旨在水平扩展。默认情况下,我们创建一个消费者。可以使用 ClickPipe 详细信息视图中的扩展控件来更改此设置。

身份验证

要访问 Amazon Kinesis 流,您可以使用 IAM 凭证IAM 角色。有关如何设置 IAM 角色的更多详细信息,您可以参考本指南,了解如何设置与 ClickHouse Cloud 配合使用的角色