我创建了一个重复周期为1小时的翻滚窗口触发器,并将其附加到管道上。每当管道运行时,我都想处理前2个小时,之后我想处理当前小时。
例如:如果假设管道在给定的运行中处理上午10点到11点之间的记录,我希望也处理上午8点到10点的记录,然后我希望处理当前窗口上午10点至11点的记录。类似地,当上午11点到下午12点窗口打开时,我希望在处理上午11点至下午12点之前处理上午9点到上午11点。
为了实现这个功能,我创建了一个自依赖项,偏移量为-0.02:00:00,窗口大小为0.02:00:00。
但当管道被触发时,它会从以前的运行中查找以前的依赖窗口(上午8点到10点(,并且只有上午10点到11点的记录被处理。
但我的要求是,在特定的运行中,甚至要处理上午8点到10点的记录以及上午10点到11点的记录。
自依赖翻滚窗口的功能是否仅限于检查以前的运行,而不处理这些记录?还是我错过了什么?如何通过翻滚窗口触发来实现上述场景?是否可以从@trigger((.outputs.windowStartTime中减去2小时?
下面是触发器的屏幕截图。
具有SelfDependency 的翻滚窗口
感谢您的帮助。谢谢
在管道上添加触发器时,应将触发器参数传递到管道参数中,您的管道应该有两个参数,如startTime和endTime,以便从触发参数中获取值
滚窗触发器系统参数:
trigger().outputs.windowStartTime
->上午10点-2小时==上午8点//将处理上午8点至上午10点的记录,并将处理上午10点至上午11点之间的记录
trigger().outputs.windowEndTime
->上午11点-2//这里不需要进行-2小时的
startTime-->触发器启动时间-2endTime-->触发结束时间
不需要查看偏移或依赖关系。
要获得-2小时,请使用addhours()
函数:addHours((