开发者社区> 问答> 正文

Flink的序列化应该怎样做的呀?

Flink的序列化应该怎样做的呀?

展开
收起
游客5ixw6pdymb5xs 2021-12-08 13:26:47 483 0
1 条回答
写回答
取消 提交回答
  • Java本身自带的序列化和反序列化的功能,但是辅助信息占用空间比较大,在序列化对象时记录了过多的类信息。

    Apache Flink摒弃了Java原生的序列化方法,以独特的方式处理数据类型和序列化,包含自己的类型描述符,泛型类型提取和类型序列化框架。

    TypeInformation 是所有类型描述符的基类。它揭示了该类型的一些基本属性,并且可以生成序列化器。TypeInformation 支持以下几种类型:

    BasicTypeInfo: 任意Java 基本类型或 String 类型

    BasicArrayTypeInfo: 任意Java基本类型数组或 String 数组

    WritableTypeInfo: 任意 Hadoop Writable 接口的实现类

    TupleTypeInfo: 任意的 Flink Tuple 类型(支持Tuple1 to Tuple25)。Flink tuples 是固定长度固定类型的Java Tuple实现

    CaseClassTypeInfo: 任意的 Scala CaseClass(包括 Scala tuples)

    PojoTypeInfo: 任意的 POJO (Java or Scala),例如,Java对象的所有成员变量,要么是 public 修饰符定义,要么有 getter/setter 方法

    GenericTypeInfo: 任意无法匹配之前几种类型的类

    针对前六种类型数据集,Flink皆可以自动生成对应的TypeSerializer,能非常高效地对数据集进行序列化和反序列化。

    2021-12-08 13:27:56
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Flink CDC Meetup PPT - 龚中强 立即下载
Flink CDC Meetup PPT - 王赫 立即下载
Flink CDC Meetup PPT - 覃立辉 立即下载