在flink中使用翻滚Windows时,我可以为每个键设置不同的时区偏移量吗?

时间:2018-05-23 03:03:36

标签: apache-flink flink-streaming

作为flink doc中的示例:

input
.keyBy(<key selector>)
.window(TumblingEventTimeWindows.of(Time.days(1), Time.hours(-8)))
.<windowed transformation>(<window function>);

我想为每个键设置不同的偏移量,因为它有不同的时区。 我怎么能这样做?

2 个答案:

答案 0 :(得分:0)

如果我理解正确,您似乎应该使用地图将所有时间戳转换为UTC。您需要在时间戳提取器/水印生成器之前执行此操作。

换句话说,移动时间戳,这样您就不需要按键改变偏移量。

答案 1 :(得分:0)

您可以实现一个自定义WindowAssigner,在将记录分配给Windows时会考虑时区。如果你想走那条路,你可能想要分叉TumblingEventTimeWindows分配器并用自定义逻辑扩展它以处理时区。

您还可以使用此方法为每个时区创建窗口。