Snowflake High Performance connector for Kafka¶
本主题介绍 Snowflake High Performance connector for Kafka 的基本概念、用例、优势、主要功能和限制。
备注
Snowflake High Performance connector for Kafka 是一个 接收器连接器,用于从 Kafka 主题读取数据并将该数据加载到 Snowflake 表中。有关 Kafka Connect 及其框架的更多信息,请参阅 Apache Kafka 与 Kafka Connect 框架。
优势¶
Snowflake High Performance connector for Kafka 利用了 Snowflake 的 高性能 Snowpipe Streaming 架构,该架构专为数据密集型的现代组织打造,能够实现近实时见解。这种下一代架构显著提高了实时引入 Snowflake 的吞吐量、效率和灵活性。
高性能架构具有以下几个关键优势:
卓越的吞吐量和延迟:旨在支持每个表高达 10 GB/秒的引入速度,端到端引入到查询的延迟在 5 到 10 秒内,从而实现近乎实时的分析。
简化计费:提供基于吞吐量的透明计费,使成本更具可预测性且更易于理解。
增强的性能:使用基于 Rust 的客户端核心,与之前的实现相比,它提供了更高的客户端性能和更低的资源占用。
传输中的数据转换:支持在引入过程中使用 PIPE 对象中的 COPY 命令语法进行数据清洗和整形,允许您在数据到达目标表之前对其进行转换。
服务器端架构验证:通过 PIPE 对象将架构验证从客户端移动到服务器端,确保了数据质量并降低了客户端的复杂性。
预聚类功能:当目标表定义了聚类键时,可以在数据引入期间对数据进行聚类,从而在无需引入后维护的情况下提高查询性能。
连接器使用 Snowflake PIPE 对象作为管理引入的核心组件。PIPE 对象充当所有流数据的入口点和定义层,定义了数据在提交到目标表之前如何进行处理、转换和验证。有关连接器如何与表和管道配合工作的更多信息,请参阅 连接器如何与表和管道配合使用。
选择连接器版本¶
Kafka Connector 在 Kafka Connect 集群中运行,从 Kafka 主题读取数据并写入 Snowflake 表。
Snowflake 提供两个版本的连接器。两个版本的连接器都为从 Kafka 到 Snowflake 的流式传输数据提供相同的核心功能。
连接器的 Confluent 版本
高性能 Snowflake Connector for Kafka 尚未在 Confluent Cloud 上提供。如果您使用的是 Confluent Cloud,则必须作为自定义插件连接器手动安装连接器。
Confluent 版本被打包为 zip 文件,以便通过 Confluent Hub 或 Confluent Control Center 进行安装,并包含运行该连接器所需的所有外部库。
如果您使用的是 Confluent Platform 或 Confluent Cloud,请选择此版本。
请联系 Snowflake 支持部门以获取并安装 Confluent 版本的连接器。
有关详细信息,请参阅 Kafka Connect (https://docs.confluent.io/current/connect/)。
OSS 连接器的 Apache Kafka 版本
可从 开源软件 (OSS) Apache Kafka 包 (https://mvnrepository.com/artifact/com.snowflake/snowflake-kafka-connector/) 获取。
Apache 版本以标准的 fat JAR 文件形式分发,需要手动安装到您的 Apache Kafka Connect 集群中。此版本需要 Bouncy Castle (https://www.bouncycastle.org/) 加密库,必须单独下载。
有关详细信息,请参阅 Apache Kafka (https://kafka.apache.org/)。
将连接器与 Apache Iceberg™ 表结合使用¶
连接器可以将数据引入到 Snowflake 管理的 Apache Iceberg™ 表 中。在为 Iceberg 表引入配置 Kafka Connector 之前,必须创建一个 Iceberg 表。有关更多信息,请参阅 创建用于引入的 Apache Iceberg™ 表。
限制¶
Snowflake High Performance connector for Kafka 有以下限制。
- Apache Iceberg™ 表和架构演化
该连接器不支持 Apache Iceberg™ 表的架构演化。
- 从 3.x 及更低版本迁移现有管道
该连接器不支持从 3.x 及更早版本迁移现有管道。您必须手动将现有管道迁移到新连接器。确保您现有的管道不依赖于该连接器尚未提供的任何功能。
- 单消息转换 (SMTs):
使用社区转换器时,大多数单消息转换 (SMTs) 均受支持,但
regex.router目前尚未支持。- 并非所有损坏的记录都会被连接器发送到死信队列 (DLQ)
在配置了
errors.tolerance=all和errors.deadletterqueue.topic.name的情况下,连接器保证 最多一次 交付。只有不可转换的记录会由 Kafka Connect 发送到 DLQ。Snowflake 摄取失败的记录不会路由到该处;Snowpipe Streaming 可以检测到记录失败,但无法确定具体是哪些记录。- 引入失败的损坏记录需要手动重试
当
errors.tolerance=none和rows_error_count增加时,连接器任务将失败。若要重试损坏的记录,请查看通道历史记录以查找这些记录。有关损坏记录和引入错误故障排除的更多信息,请参阅 错误处理。您还可以使用 使用元数据偏移检测并恢复错误 中描述的间隙查找技术。使用此技术所需的 Kafka 偏移量信息可在RECORD_METADATA列中找到。
连接器的容错限制¶
可以为 Kafka 主题配置存储空间限制或保留时间限制。
如果系统离线时间超过保留时间,则不会加载过期的记录。同样,如果超过 Kafka 的存储空间限制,某些消息将无法传递。
如果已删除 Kafka 主题中的消息,这些更改可能不会反映在 Snowflake 表中。
有关 SMTs 的更多信息,请参阅 针对 Confluent Cloud 或 Confluent Platform 的 Kafka Connect 单消息转换参考 (https://docs.confluent.io/current/connect/transforms/index.html)。
Snowflake 对该连接器的支持¶
下表说明了受支持的版本以及有关预发布版和候选发布版的信息。
版本系列 |
状态 |
备注 |
|---|---|---|
4.x.x |
私密预览版 |
抢先体验。目前不支持从 3.x 和 2.x 版本进行迁移。 |
3.x.x |
官方支持 |
最新版本,强烈推荐。 |
2.xx |
官方支持 |
建议升级。 |
1.x.x |
不支持 |
不支持以下功能:
预览版中的重大变更¶
请参阅预览版的版本说明,了解重大变更列表
4.0.0-rc1 (https://github.com/snowflakedb/snowflake-kafka-connector/releases/tag/v4.0.0-rc1)
4.0.0-rc2 (https://github.com/snowflakedb/snowflake-kafka-connector/releases/tag/v4.0.0-rc2)
4.0.0-rc3 (https://github.com/snowflakedb/snowflake-kafka-connector/releases/tag/v4.0.0-rc3)
4.0.0-rc4 (https://github.com/snowflakedb/snowflake-kafka-connector/releases/tag/v4.0.0-rc4)
4.0.0-rc5 (https://github.com/snowflakedb/snowflake-kafka-connector/releases/tag/v4.0.0-rc4)
4.0.0-rc6 (https://github.com/snowflakedb/snowflake-kafka-connector/releases/tag/v4.0.0-rc4)
4.0.0-rc7 (https://github.com/snowflakedb/snowflake-kafka-connector/releases/tag/v4.0.0-rc4)
后续步骤¶
请审阅 连接器的工作原理 主题,了解有关连接器如何配合表和管道工作的更多信息。 . 请审阅 为 Snowflake High Performance connector for Kafka 设置任务 主题,了解设置 Snowflake High Performance connector for Kafka 的步骤。