变形

概览

qianmoQqianmoQ· 更新于 2026-09-28· 阅读 8 分钟· 0 次阅读

登录后可跨设备保存划线和私人笔记登录

转换器

可以为连接器配置转换器,以便对每条消息进行轻量级的修改。Debezium 提供了多个单消息转换器(SMT),你可以使用它们在消息发送到 Apache Kafka 之前对其进行修改(应用于 Debezium 连接器),也可以在汇(sink)连接器从 Kafka 读取消息时使用它们。此外,Debezium Server 也支持使用 SMT。

Debezium 提供以下 SMT:

转换器说明
Topic Routing根据应用于原始主题名称的正则表达式,将记录重新路由到不同的主题。
Content-Based Routing根据事件内容,将选定的事件重新路由到其他主题。
New Record State Extraction从 Debezium 变更事件中提取字段名与值的扁平结构,便于那些无法处理 Debezium 复杂事件结构的 Sink 连接器使用。
MongoDB New Document State Extraction针对 MongoDB 的 New Record State Extraction SMT 对应实现。
Outbox Event Router提供一种在多个(微)服务之间安全、可靠地交换数据的方式。
MongoDB Outbox Event Router针对 MongoDB 的 Outbox Event Router SMT 对应实现。
Message Filtering根据内容对连接器发出的变更事件应用过滤器,从而只传播与你相关的记录。
HeaderToValue将标头移动或复制到记录值中。
Partition Routing根据配置的负载字段,将记录重新路由到特定分区。
Timezone Converter将事件记录中 Debezium 和 Kafka Connect 的时间戳字段转换为指定时区。
Geometry Format Transformer在 Well-Known Binary(WKB)和 Extended Well-Known Binary(EWKB)格式之间转换 Debezium 的 Geometry 字段类型。
TimescaleDB Integration路由并丰富 Debezium PostgreSQL 连接器从 TimescaleDB 中捕获的消息。
Decode Logical Decoding Message Content将 Debezium PostgreSQL 连接器捕获的逻辑解码消息的二进制内容转换为结构化形式。
Enforce Record Size当变更事件超出配置的大小限制时,通过按比例截断大型字符串和字节列来强制实施最大记录大小。
Vitess Use Local VGTID一种可减小 Vitess 连接器发出的 VGTID 大小的转换器。为减少事件消息中的数据量,该 SMT 仅写入发生变更所在分片的 VGTID,并移除其他分片的 VGTID。此转换器仅设计用于 Debezium 的 Vitess 连接器。
Vitess Remove Field针对 Vitess 的转换器,用于移除字段以减小写入消息的大小(例如冗余的 VGTID 字段)。
Vitess Replace Field Value针对 Vitess 的转换器,用于替换字段的值以减小写入消息的大小(例如冗余的 VGTID 字段)。
Vitess Filter Transaction Topic Records一种可过滤掉连接器发送到事务主题的所有消息的转换器(当启用事务元数据时)。此转换器仅设计用于 Debezium 的 Vitess 连接器。

通过 SMT 谓词,你可以选择性地应用任何转换,使其仅修改那些具有共同特征的一部分变更事件消息。

上述大多数 SMT 默认已包含在 Debezium 容器镜像中,但基于脚本的 SMT(消息过滤或基于内容的路由)需要你主动启用。详情请参阅容器镜像的 README 文件。

评论

登录后参与评论

正在加载评论…