我们可以使用Flink的Batch / DataSet API创建窗口吗?

时间:2018-07-18 08:47:12

标签: apache-flink

尽管存在问题,但显然DataSet API中没有窗口,但是我想知道为什么这样做,因为从概念上讲,能够处理有限的源并且仍然具有窗口操作似乎很有意义。

我错了吗?是否可以在DataSetUnsortedGrouping或类似的地方设置窗户?

如果不是,我猜可以选择使用Beam

1 个答案:

答案 0 :(得分:1)

DataSet API不提供用于窗口的内置运算符。主要原因是它早于DataStream API,并且最初不是为此类用例设计的。 但是,它提供了用于实现自定义窗口逻辑的所有构件。

还有Table API / SQL,它是用于批处理和流处理的统一API。在内部,Table API和SQL查询被转换为DataStream和DataSet作业。对于批处理查询,窗口操作主要基于reduceGroupsortPartitionmapPartition转换为自定义窗口实现(如前所述)。但是,批处理查询尚不支持所有窗口类型。

还结合了批处理和流处理的Apache Beam,也可能是可行的选择。