Snowflake Connector for Kafka

Snowflake Connector for Kafka (v4) 是一种接收器连接器,用于从一个或多个 Apache Kafka 主题读取数据并将这些数据加载到 Snowflake 表中。该连接器基于 Snowflake 的 高性能 Snowpipe Streaming 架构 构建,最高可实现 10 GB/s 的吞吐量,端到端延迟为 5 到 10 秒,同时支持“精确一次”和有序传递语义。

有关 Kafka Connect 及其框架的更多信息,请参阅 Apache Kafka 与 Kafka Connect 框架

优势

Snowflake Connector for Kafka 利用了 Snowflake 的 高性能 Snowpipe Streaming 架构,该架构专为数据密集型的现代组织打造,能够实现近实时见解。这种下一代架构显著提高了实时引入 Snowflake 的吞吐量、效率和灵活性。

高性能架构具有以下几个关键优势:

  • 卓越的吞吐量和延迟:旨在支持每个表高达 10 GB/秒的引入速度,端到端引入到查询的延迟在 5 到 10 秒内,从而实现近乎实时的分析。

  • 基于吞吐量的统一定价:定价基于引入的数据量 (GB),与 Snowpipe Streaming 高性能架构采用相同的计费模式。有关定价详细信息,请参阅 Snowpipe Streaming 成本

  • 增强的性能:使用基于 Rust 的客户端核心,与之前的实现相比,它提供了更高的客户端性能和更低的资源占用。

  • 传输中的数据转换:支持在引入过程中使用 PIPE 对象中的 COPY 命令语法进行数据清洗和整形,允许您在数据到达目标表之前对其进行转换。

  • 服务器端架构验证:通过 PIPE 对象将架构验证从客户端移动到服务器端,确保了数据质量并降低了客户端的复杂性。无效记录会被捕获到 错误表 中,以便检查和重放。

  • 预聚类功能:当目标表定义了聚类键时,可以在数据引入期间对数据进行聚类,从而在无需引入后维护的情况下提高查询性能。

连接器使用 Snowflake PIPE 对象作为管理引入的核心组件。PIPE 对象充当所有流数据的入口点和定义层,定义了数据在提交到目标表之前如何进行处理、转换和验证。有关连接器如何与表和管道配合工作的更多信息,请参阅 连接器如何与表和管道配合使用

选择连接器版本

Kafka Connector 在 Kafka Connect 集群中运行,从 Kafka 主题读取数据并写入 Snowflake 表。

Snowflake 提供两个版本的连接器。两个版本的连接器都为从 Kafka 到 Snowflake 的流式传输数据提供相同的核心功能。

  • 连接器的 Confluent 版本

    Confluent 版本以 zip 文件形式打包,并包含运行连接器所需的所有外部库。如果您使用的是 Confluent Platform,请选择此版本。

    备注

    v4 连接器尚未作为原生 Confluent Cloud 连接器提供。在 Confluent Cloud 上,请将其作为自定义插件连接器进行安装。如需获取 Confluent 安装包,请联系 Snowflake 支持部门

    有关详细信息,请参阅 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 Connector for Kafka 有以下限制。

Apache Iceberg™ 表和架构演化

该连接器不支持 Apache Iceberg™ 表的架构演化。

从版本 3.x 迁移现有管道

v4 连接器需要全新的配置(新的连接器类、已移除的属性以及更改后的默认值)。如果配置正确,支持从 Snowpipe 模式和 Snowpipe Streaming 模式进行迁移,且不会出现间隙或重复。切换必须在 ``offsets.retention.minutes``(默认 7 天)内完成。有关详细信息,请参阅 从 v3 迁移到 v4

单消息转换 (SMTs):

使用社区转换器时,大多数单消息转换 (SMTs) 均受支持,但 regex.router 目前尚未支持。

身份验证

该连接器仅支持密钥对身份验证。v4 不支持 OAuth。

错误处理行为取决于验证模式

在服务器端验证模式下,损坏的记录会被捕获到 错误表。在客户端验证模式下,连接器在遇到无效记录时会立即停止运行,或者如果已配置 errors.tolerance=all,则会将记录路由到死信队列 (DLQ)。有关详细信息,请参阅 验证和错误处理

容错限制

可以为 Kafka 主题配置存储空间限制或保留时间限制。

  • 如果系统离线时间超过保留时间,则不会加载过期的记录。同样,如果已超出 Kafka 的存储空间限制,某些消息将无法送达。

  • 如果已删除 Kafka 主题中的消息,这些更改不会反映在 Snowflake 表中。

有关 SMTs 的更多信息,请参阅 针对 Confluent Cloud 或 Confluent Platform 的 Kafka Connect 单消息转换参考 (https://docs.confluent.io/current/connect/transforms/index.html)。

支持的连接器版本

下表描述了支持的连接器版本。

版本系列

状态

备注

4.x.x

正式发布

最新版本。从 3.x 和 2.x 的迁移必须手动完成。

3.x.x

官方支持

建议升级到 v4。

2.xx

官方支持

建议升级。

1.x.x

不支持

备注

正在寻找经典版 Kafka Connector(v3 及更早版本)?请参阅 Kafka Connector v3(经典版)。有关迁移指南,请参阅 从 v3 迁移到 v4

后续步骤

请审阅 连接器的工作原理 主题,了解有关连接器如何配合表和管道工作的更多信息。 . 请审阅 为 Snowflake Connector for Kafka 设置任务 主题,了解设置 Snowflake Connector for Kafka 的步骤。