我在https://ci.apache.org/projects/flink/flink-docs-release-1.13/docs/dev/serialization/types_serialization/#most-频繁问题
上面写着:
注册子类型:如果函数签名仅描述超类型,但它们实际上在执行过程中使用这些超类型的子类型,让Flink意识到这些可能会大大提高性能亚型。为此,请在每个子类型的StreamExecutionEnvironment或ExecutionEnvironment。
是否有测试用例或代码示例来演示此场景的用法?
谢谢。
DataStream<Msg> test = stream.map(x -> (x < 10) ? new Msg1() : new Msg2());
您应该注册以下子类型:
env.registerType(Msg1.class);
env.registerType(Msg2.class);
CCD_ 1用子类的全名,子类标记(如上所述(,或者直接序列化目标类型(无标记(。因此,如果始终使用直接给定类型,并且从不序列化任何子类实例。但是,当它们被序列化时,注册子类会产生比完整子类名称更紧凑(更高效(的标记。