适用于 JSON/AVRO 数据格式的 Apache Kafka¶
备注
使用该连接器需遵守 连接器条款。
本主题介绍了适用于 JSON 和 AVRO 数据格式的 Apache Kafka 连接器。这些是针对基本消息引入优化的简化连接器,具有架构演化和主题到表的映射功能。
连接器变体¶
JSON 数据格式连接器¶
适用于 JSON 数据格式的 Apache Kafka 连接器旨在直接将 JSON 消息从 Kafka 主题引入到 Snowflake 表中。
主要功能:
JSON 消息格式支持
架构演化
主题到表的映射
SASL 身份验证
AVRO 数据格式连接器¶
适用于 AVRO 数据格式的 Apache Kafka 连接器旨在将 AVRO 消息从 Kafka 主题引入到支持架构注册表的 Snowflake 表中。
主要功能:
AVRO 消息格式支持
架构注册表集成
架构演化
主题到表的映射
SASL 身份验证
特定参数¶
除了 设置 Openflow Connector for Kafka 中描述的常用参数外,这些连接器还有特定的参数上下文。
架构注册表参数(仅限 AVRO 连接器)¶
AVRO 连接器包括用于架构注册表集成的其他参数:
参数 |
描述 |
必填 |
---|---|---|
架构注册表身份验证类型 |
对架构注册表进行身份验证的方法(如果使用)。否则,请使用 NONE。其中之一:NONE/BASIC。默认值:NONE |
是 |
架构注册表 URL |
架构注册表的 URL*AVRO* 消息格式的必填项。 |
否 |
架构注册表用户名 |
架构注册表的用户名。AVRO 消息格式的必填项。 |
否 |
架构注册表密码 |
架构注册表的密码。AVRO 消息格式的必填项。 |
否 |
AVRO 架构访问策略 |
访问消息的 AVRO 架构的方法。AVRO 的必填项。其中之一:embedded-avro-schema/schema-reference-reader/schema-text-property。默认值:embedded-avro-schema |
否 |
AVRO 架构 |
如果在采用 AVRO 消息格式的 AVRO Schema Access Strategy 中使用了 schema-text-property,则使用 Avro 架构。注意:仅当在配置的 Kafka 主题中使用的所有消息都共享相同的架构时,才应使用此设置。 |
否 |
限制¶
与功能齐全的 DLQ 和元数据连接器相比,这些简化的连接器具有以下限制:
无 RECORD_METADATA 列 – Kafka 元数据未存储在目标表中
**无死信队列 (DLQ) ** – 失败的消息未路由到 DLQ 主题
无 Iceberg 表支持 – 仅支持普通的 Snowflake 表
修复了架构化 – 架构检测始终处于启用状态,无法禁用
备注
默认情况下,这些连接器中的架构检测处于启用状态,无法禁用。这意味着通过自动架构演化,消息字段会自动展平为单独的表列。
用例¶
这些连接器非常适合:
- 简单数据引入
当您只需要不包含 Kafka 元数据的消息内容时。
- 高吞吐量场景
在简化数据结构能够提升性能的情况下。
- 架构演化用例
在需要自动更新表架构的情况下
- JSON 或 AVRO 消息格式
使用一致的架构
如果需要 Kafka 元数据、DLQ 支持或 Iceberg 表引入,请改用 带有 DLQ 和元数据的 Apache Kafka 连接器。
架构检测和演化¶
这些连接器支持自动架构检测和演化。Snowflake 中表的结构是自动定义和演化的,以支持连接器加载的新数据的结构。
启用架构检测(这些连接器始终如此)后,Snowflake 可以检测流式数据的架构,并将数据加载到自动匹配任何用户定义架构的表中。Snowflake 还允许添加新列或从新数据文件所缺失的列中删除 NOT NULL
约束。
无论是否提供架构注册表,都支持使用连接器进行架构检测。如果使用架构注册表 (Avro),则将使用提供的架构注册表中定义的数据类型来创建该列。如果没有架构注册表 (JSON),则将根据提供的数据推断出数据类型。
JSON ARRAY 不支持进一步自动格式演化。
架构演化行为¶
如果连接器创建了目标表,在默认情况下启用架构演化。
如果要在现有表上启用或禁用架构演化,请使用 ALTER TABLE 命令来设置 ENABLE_SCHEMA_EVOLUTION
参数。您还必须使用对该表具有 OWNERSHIP
权限的角色。有关更多信息,请参阅 表模式演化。