开发者社区> 问答> 正文

Flink kafka Consumer的反序列化数据是什么?

Flink kafka Consumer的反序列化数据是什么?

展开
收起
游客qzzytmszf3zhq 2021-12-07 20:16:10 805 0
1 条回答
写回答
取消 提交回答
  • 因为kafka中数据都是以二进制byte形式存储的。读到flink系统中之后,需要将二进制数据转化为具体的java、scala对象。具体需要实现一个schema类,定义如何序列化和反序列数据。反序列化时需要实现DeserializationSchema接口,并重写deserialize(byte[] message)函数,如果是反序列化kafka中kv的数据时,需要实现KeyedDeserializationSchema接口,并重写deserialize(byte[] messageKey, byte[] message, String topic, int partition, long offset)函数。

    另外Flink中也提供了一些常用的序列化反序列化的schema类。例如,SimpleStringSchema,按字符串方式进行序列化、反序列化。TypeInformationSerializationSchema,它可根据Flink的TypeInformation信息来推断出需要选择的schema。JsonDeserializationSchema 使用jackson反序列化json格式消息,并返回ObjectNode,可以使用.get(“property”)方法来访问相应字段。

    2021-12-07 20:16:26
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Java Spring Boot开发实战系列课程【第16讲】:Spring Boot 2.0 实战Apache Kafka百万级高并发消息中间件与原理解析 立即下载
MaxCompute技术公开课第四季 之 如何将Kafka数据同步至MaxCompute 立即下载
消息队列kafka介绍 立即下载