目前,我在flink 1.16还没有发现DataStream有实现分区排序的接口,现在是否有方法在有界数据集上实现分区、排序这个需求呢?
目前,我在flink 1.16还没有发现DataStream有实现分区排序的接口,现在是否有方法在有界数据集上实现分区、排序这个需求呢?
Flink 社区在这个 thread 讨论了这个问题,之后会出一个 guideline 来帮助用户迁移 DataSet API
[1] https://lists.apache.org/thread/r0y9syc6k5nmcxvnd0hj33htdpdj9k6m
Best regards,
Yuxia
- 原始邮件 -
发件人: "jinzhuguang"
收件人: "user-zh"
发送时间: 星期二, 2023年 7 月 11日 下午 7:16:06
主题: 如果DataSet API 被彻底废掉了,那我如何用D
你好,对于DataSet中不按照key进行全量聚合/排序的API(例如,sortPartition/mapPartition),DataStream上目前没有直接提供相同的API,但可以通过组合DataStream上现有的API实现相同的功能。
以mapPartition为例,可以通过以下三个步骤实现相同的功能:
1. dataStream.map(record -> (subtaskIndex,
record)),为每个Record增加处理该record时子任务编号。
2. dataStream.assignTimestampsAndWatermarks,为每个Record增加相同的时间戳
如果我的数据量很大,内存装不下,flink在batch mode下的行为是否会像传统的批处理系统,例如hive那样,会进行shuffe、中间数据落盘等操作。
> 2023年7月12日 17:05,weijie guo 写道:
>
> 你好,对于DataSet中不按照key进行全量聚合/排序的API(例如,sortPartition/mapPartition),DataStream上目前没有直接提供相同的API,但可以通过组合DataStream上现有的API实现相同的功能。
> 以mapPartition为例,可以通过以下三个步骤实现相同的功能:
> 1. dataStream.map
你好,
首先,Batch Shuffle 的中间数据都是会落盘的。其次,对于 Sort 这个操作来说,上面给出的解法和Dataset一致,都不会落盘。
Best regards,
Weijie
jinzhuguang 于2023年7月12日周三 17:28写道:
> 如果我的数据量很大,内存装不下,flink在batch
> mode下的行为是否会像传统的批处理系统,例如hive那样,会进行shuffe、中间数据落盘等操作。
>
> > 2023年7月12日 17:05,weijie guo 写道:
> >
> >
> 你好,对于DataSet中不按照key进行全量聚合/排序的
嗨你好,用于sort的中间数据是存储在状态后端当中吗,数据量很大的情况下。
> 2023年7月12日 19:48,weijie guo 写道:
>
> 你好,
> 首先,Batch Shuffle 的中间数据都是会落盘的。其次,对于 Sort 这个操作来说,上面给出的解法和Dataset一致,都不会落盘。
>
> Best regards,
>
> Weijie
>
>
> jinzhuguang 于2023年7月12日周三 17:28写道:
>
>> 如果我的数据量很大,内存装不下,flink在batch
>> mode下的行为是否会像传统的批处理系统,例如hive那样,