azure - ADF Tumbling 窗口触发器 - 自依赖
问题描述
我创建了一个滚动窗口触发器,其重复周期为 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 小时?
下面是触发器的截图。
TumblingWindowWithSelfDependency
任何帮助表示赞赏。谢谢!
解决方案
在管道上添加触发器时,您应该将触发器参数传递给管道参数,您的管道应该有两个参数,如 startTime 和 endTime 以从触发器参数中获取值
翻窗触发系统参数:
trigger().outputs.windowStartTime
--> 10AM - 2hrs == 8AM// 它将处理上午 8 点到上午 10 点的记录,并将处理上午 10 点到上午 11 点之间的记录
trigger().outputs.windowEndTime
---> 11AM - 2// 这里不需要-2小时
startTime --> 触发开始时间 - 2 endTime --> 触发结束时间
无需查看偏移量或依赖项。
要达到 -2 小时使用addhours()
功能:addHours()
推荐阅读
- python - 如何获得收集的测试计数?
- firebase - Firebase 组织文档的成员身份
- ios - NSAttributedString 未返回预期值
- django - Django bootstrap4 - 参数“form”应包含有效的 Django 表单
- device-tree - 目标“arch/arm64/boot/dts/qcom/msm8917-pmi8937-qrd-sku5.dtb”的配方失败
- powershell - 如何从 SearchString 中获取 ObjectID 列表以获取 Get-MsolContact
- python - 使用 Python 从网站查询数据(网页抓取)时,如何避免被服务器阻止?
- docker - docker-compose 中的 DNS 使用 VPN 容器:
- css-selectors - CSS 仅选择没有以 this 开头的类的元素
- r - 主要按值出现在列中的次数对数据帧进行排序,其次按第二列