flink 读取kafka之自定义DeserializationSchema序列化

 


import com.alibaba.fastjson.JSON;
import com.hundsun.quant.flow.model.Snapshot;
import org.apache.flink.api.common.serialization.DeserializationSchema;
import org.apache.flink.api.common.typeinfo.Typeinformation;

/**
 * @author  fl
 * @date: 2022-01-05  21:30
 * @description: flink 读取kafka数据, kafka把内容是 转化成 snapshot 对象
 * <p>
 * 自定义DeserializationSchema需要实现DeserializationSchema接口,这一部分代码可以参考官方代码
 * org.apache.flink.streaming.examples.statemachine.kafka.EventDeSerializer。
 * 我需要实现的是将从kafka获取到的json数据转化为我需要的自定义pojo类(VideoData)。
 * 主要是要实现DeserializationSchema方法的deserialize方法,这个方法的输入是byte[] message类型,我们需要将其转换为String类型,
 * 然后通过JSON工具类解析成POJO类。这里我使用的是fastjson
 */
public class SnapshotSerializer implements DeserializationSchema<Snapshot> {
    @Override
    public Snapshot deserialize(byte[] message) {
        // json 转成对象
        return JSON.parSEObject(new String(message), Snapshot.class);
    }

    @Override
    public boolean isEndOfStream(Snapshot nextElement) {
        return false;
    }

    @Override
    public Typeinformation<Snapshot> getProducedType() {
        return null;
    }
}

相关文章

# 前言 现有主流消息中间件都是生产者-消费者模型,主要角色...
错误的根源是:kafka版本过高所致,2.2+=的版本,已经不需要...
DWS层主要是存放大宽表数据,此业务中主要是针对Kafka topic...
不多BB讲原理,只教你怎么用,看了全网没有比我更详细的了,...
终于写完了,其实最开始学kafka的时候是今年2月份,那时候还...
使用GPKafka实现Kafka数据导入Greenplum数据库踩坑问题记录(...