您正在查看的文档Debezium的过时的版本。开云体育官方注册网址
如果你想查看这个页面的最新稳定版本,请走吧在这里

开云体育官方注册网址Debezium事件反序列化

表的内容

这个功能目前正在酝酿状态,即精确的语义,配置选项等可能会改变在未来修订,根据我们得到的反馈。请让我们知道如果你遇到任何问题,使用这些并行转换器。

开云体育官方注册网址Debezium生成数据改变事件的形式复杂的消息结构。这个消息被配置以后序列化卡夫卡连接转换器是消费者的责任反序列化成一个逻辑信息。为此,卡夫卡使用所谓的并行转换器

开云体育官方注册网址Debezium提供并行转换器(io.开云体育官方注册网址debezium.serde.DebeziumSerdes)简化消费者要么是卡夫卡的反序列化流管道或纯卡夫卡消费者。

JSON SerDe

JSON SerDe反序列化JSON编码的改变事件和将它转换为一个Java类。这是通过使用内部杰克逊Databind

消费者创建一个serde实例使用

最后Serde < MyType > Serde = D开云体育官方注册网址ebeziumSerdes.payloadJson (MyType.class);

消费者将得到合乎逻辑的Java类型MyType的领域开始从JSON消息。这适用于两个键和值。也可以使用普通的Java类型整数例如,当由一个单一的关键INT字段。

当使用JSON转换器卡夫卡连接然后它一般提供两种操作模式,有或没有模式。如果使用模式然后消息看起来像这样:

{"模式":{…},“有效载荷”:{“人事处”:“u”,“源”:{…}," ts_ms”:“……”“之前”:{“field1”:“oldvalue1”、“field2”:“oldvalue2”},“后”:{“field1”:“newvalue1”、“field2”:“newvalue2”}}}

而没有模式,结构看起来更像这样:

{“人事处”:“u”,“源”:{…}," ts_ms”:“……”“之前”:{“field1”:“oldvalue1”、“field2”:“oldvalue2”},“后”:{“field1”:“newvalue1”、“field2”:“newvalue2}}

反序列化器行为的驱动from.field配置选项和遵循这些规则:

  • 如果消息包含一个模式,那么使用有效载荷只有

  • 如果关键是反序列化,那么地图键字段(s)到目标类

  • 如果该值为反序列化和包含Debezium事件信封:开云体育官方注册网址

    • 如果from.field没有设置,那么反序列化完整的信封到目标类型

    • 否则仅反序列化和地图的内容字段配置到目标类型,从而有效地消光的消息

  • 如果该值已经反序列化,并包含一个扁平的消息(即当使用SMT事件压扁),那么平记录映射到目标逻辑类型

配置选项

财产

默认的

描述

N /一个

空如果消息信封应该反序列化,之前/如果数据值之前或之后的改变是必需的。

决定当遇到未知的属性是否应该默默地忽略或者应该抛出一个运行时异常。