Re: [DISCUSS]当timestamp - offset + windowSize < 0时,元素无法被分配到正确的窗口

2022-03-03 文章 yidan zhao
嗯,问题的确存在。 只是场景有点特别,ts一般是时间戳,ts本身负数或很小的情况这个我没考虑。 邓子琦 于2022年3月4日周五 14:28写道: > 不是的,这是一个现存问题 > > abs(offset)>size的约束并不能让ts-offset+size必然大于0 > > 图中给出的示例是我们用代码验证过的。你可以尝试运行下面的代码 > > 会发现它暴露出来的问题跟我所描述的一样 > > /* output > > *窗口开始时间是-15000 有1个元素 数据是 (a,-17000) > > *窗口开始时间是-1 有1个元素

Re: [DISCUSS]当timestamp - offset + windowSize < 0时,元素无法被分配到正确的窗口

2022-03-03 文章 邓子琦
不是的,这是一个现存问题 abs(offset)>size的约束并不能让ts-offset+size必然大于0 图中给出的示例是我们用代码验证过的。你可以尝试运行下面的代码 会发现它暴露出来的问题跟我所描述的一样 /* output *窗口开始时间是-15000 有1个元素 数据是 (a,-17000) *窗口开始时间是-1 有1个元素 数据是 (b,-12000) *窗口开始时间是-5000 有2个元素 数据是 (c,-7000) *窗口开始时间是-5000 有2个元素

Re: [DISCUSS]当timestamp - offset + windowSize < 0时,元素无法被分配到正确的窗口

2022-03-03 文章 yidan zhao
1 在flink中调用这个方法的部分是 windowAssigner,以TumblingEventTimeWindows 为例,分配window的时候的逻辑为: long start = TimeWindow.getWindowStartWithOffset( timestamp, (globalOffset + staggerOffset) % size, size); 构造函数中offset逻辑: protected TumblingEventTimeWindows(long size, long offset,

Re: [DISCUSS]当timestamp - offset + windowSize < 0时,元素无法被分配到正确的窗口

2022-03-03 文章 邓子琦
好滴 谢谢 yu'an huang 于2022年3月3日周四 18:17写道: > > 我想你们可以为Flink贡献代码。只要按照guide > https://flink.apache.org/contributing/contribute-code.html < > https://flink.apache.org/contributing/contribute-code.html%E4%B8%AD%E7%9A%84%E6%AD%A5%E9%AA%A4%E5%85%88%E5%BB%BA%E7%AB%8BJIRA > > > > 建立JIRA

Re: [DISCUSS]当timestamp - offset + windowSize < 0时,元素无法被分配到正确的窗口

2022-03-03 文章 yu'an huang
我想你们可以为Flink贡献代码。只要按照guide https://flink.apache.org/contributing/contribute-code.html 建立JIRA Ticket然后讨论就可以了,为了社区可以更方便的review你们的代码。 > On 3 Mar 2022, at 5:33 PM, 邓子琦

[DISCUSS]当timestamp - offset + windowSize < 0时,元素无法被分配到正确的窗口

2022-03-03 文章 邓子琦
当timestamp - offset + windowSize < 0时,元素无法被分配到正确的窗口问题 你好! 我们在学习flink源码时,发现它计算窗口开始时间的算法存在问题。当timestamp - offset + windowSize < 0 时,元素会被错误地分配到比自身时间戳大一个WindowSize的窗口里去。 问题在org.apache.flink.streaming.api.windowing.windows.TimeWindow public static long getWindowStartWithOffset(long timestamp,