跳至主要内容

将 Amazon Kinesis 与 ClickHouse Cloud 集成

先决条件

您已熟悉 ClickPipes 简介 和设置 IAM 凭据IAM 角色。请按照 基于角色的 Kinesis 访问指南 中的说明进行操作,了解如何设置与 ClickHouse Cloud 协同工作的角色。

创建您的第一个 ClickPipe

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

    ClickPipes service

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

    Select imports

  3. 选择您的数据源。

    Select data source type

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

    Fill out connection details

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

    Set data format and topic

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

    Set table, schema, and settings

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

    Set advanced controls

  7. 或者,您可以选择将数据导入现有的 ClickHouse 表。在这种情况下,该界面将允许您将数据源中的字段映射到所选目标表中的 ClickHouse 字段。

    Use and existing table

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

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

    • 完全访问权限:对集群拥有完全访问权限。如果您在目标表中使用物化视图或字典,这可能很有用。
    • 仅限目标表:仅对目标表拥有 INSERT 权限。

    permissions

  9. 单击“完成设置”后,系统将注册您的 ClickPipe,您将在摘要表中看到它。

    Success notice

    Remove notice

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

    View destination

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

    View overview

  10. 恭喜!您已成功设置您的第一个 ClickPipe。如果这是一个流式 ClickPipe,它将持续运行,实时从您的远程数据源中导入数据。否则,它将导入批处理并完成。

支持的数据格式

支持的格式为

支持的数据类型

ClickPipes 目前支持以下 ClickHouse 数据类型。

  • 基本数值类型 -[U]Int8/16/32/64 和 Float32/64
  • 大型整数类型 -[U]Int128/256
  • 十进制类型
  • 布尔值
  • 字符串
  • FixedString
  • 日期、Date32
  • 日期时间、DateTime64(仅限 UTC 时区)
  • Enum8/Enum16
  • UUID
  • IPv4
  • IPv6
  • 所有 ClickHouse 低基数类型
  • 使用上述任何类型(包括可空类型)的键和值的映射
  • 使用上述任何类型(包括可空类型,仅限一级深度)的元组和数组

Kinesis 虚拟列

Kinesis 流支持以下虚拟列。创建新的目标表时,可以使用 添加列 按钮添加虚拟列。

名称描述推荐的数据类型
_keyKinesis 分区键字符串
_timestampKinesis 近似到达时间戳(毫秒精度)DateTime64(3)
_streamKafka 流名称字符串
_raw_message完整的 Kinesis 消息字符串

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

限制

性能

批处理

ClickPipes 将数据批量插入 ClickHouse。这样做是为了避免在数据库中创建太多部分,这会导致集群的性能问题。

满足以下条件之一时,将插入批处理。

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

延迟

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

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

扩展

适用于 Kinesis 的 ClickPipes 旨在水平扩展。默认情况下,我们创建了 2 个消费者。可以通过联系我们来增加这个数字。

身份验证

要访问 Amazon Kinesis 流,您可以使用 IAM 凭据IAM 角色。有关如何设置 IAM 角色的更多详细信息,您可以参考此指南,了解如何设置与 ClickHouse Cloud 协同工作的角色。