您正在查看 Debezium 未发布版本的文档。
如果您想查看此页面的最新稳定版本,请在此 查看。

转换

连接器可以配置转换来执行轻量级的每条消息修改。Debezium 提供了多种 单消息转换 (SMT),您可以使用它们来在记录发送到 Apache Kafka 之前(通过将它们应用于 Debezium 连接器)或在它们被接收器连接器从 Kafka 读取时进行修改。此外,Debezium Server 也支持 SMT 的使用。

Debezium 提供了以下 SMT

转换 描述

根据应用于原始主题名称的正则表达式,将记录重新路由到不同的主题。

根据事件内容,将选定的事件重新路由到其他主题。

从 Debezium 变更事件中提取字段名称和值的扁平结构,便于无法处理 Debezium 复杂事件结构的接收器连接器使用。

MongoDB 特有的 新记录状态提取 SMT 的对应组件。

提供了一种在多个(微)服务之间安全可靠地交换数据的方式。

MongoDB 特有的 发件箱事件路由器 SMT 的对应组件。

根据变更事件的内容,对连接器发出的变更事件应用过滤器。这允许您只传播与您相关的记录。

将头移动或复制到记录值中。

根据配置的负载字段,将记录重新路由到特定的分区。

将事件记录中的 Debezium 和 Kafka Connect 时间戳字段转换为指定时区。

路由和丰富 Debezium PostgreSQL 连接器从 TimescaleDB 捕获的消息。

将 Debezium PostgreSQL 连接器捕获的逻辑解码消息的二进制内容转换为结构化形式。

一种转换,可减小 Vitess 连接器发出的 VGTID 的大小。为了减少事件消息中的数据量,SMT 只会写入发生更改的分片的 VGTID。其他分片的 VGTID 将被删除。此转换仅设计用于 Debezium 的 Vitess 连接器。

Vitess 特有的转换,用于删除字段以减小写入的消息大小(例如,冗余的 VGTID 字段)。

Vitess 特有的转换,用于替换字段的值以减小写入的消息大小(例如,冗余的 VGTID 字段)。

一种转换,用于过滤掉连接器发送到事务主题的所有消息(当启用事务元数据时)。此转换仅设计用于 Debezium 的 Vitess 连接器。

通过 SMT Predicates,您可以选择性地应用任何转换,从而仅修改共享共同特征的变更事件消息的子集。

上述大多数 SMT 默认随 Debezium 容器镜像一起提供,但您需要选择加入基于脚本的 SMT(消息过滤或基于内容的路由)。有关更多详细信息,请参阅容器镜像的 README 文件。