自定义TableFormat主要包含如下步骤:
实现TableFormatFactory接口
-
实现SerializationSchemaFactory、DeserializationSchemaFactory 序列化和反序列化接口
两个工厂接口用于创建Schema的序(反)列化对象类。
实现SerializationSchema、DeserializationSchema
在source或sink Function的invoke方法中对数据使用SerializationSchema的serialize或DserializationSchema的deserialize方法对数据进行序列化和反序列化。
demo可参考https://github.com/zhuxiaoshang/flink-be-god/tree/master/flink-formats/flink-format-customized/src/main/java/format/customized
具体代码实现可以参考flink源码中的几种format。