从月底开始的第二个星期五以及同一周的周二、周三和周四触发Azure数据工厂管道



我需要一个Pipeline在一个月的Monthend周(周二、周三、周四和周五(触发。

Monthend定义为,"Last but one" Friday或CCD_ 2。

例如,2021年6月,18号是Monthend(橙色,如图所示(日历图像

如果只是在Monthend,即日历月底的第二个星期五,这很容易。只需在Scheduled触发器中使用Occurrence为-2,day为Friday,并添加到要触发的管道中,

"schedule": {
"monthlyOccurrences": [
{
"day": "Friday",
"occurrence": -2
}
]
}

但我也需要在同一周的周二、周三和周四跑步,我觉得这很难,因为这些工作日可能是日历月底后的第二或第三个工作日。例如:2021年6月,如图所示,我还需要在15日(日历月底的第三个星期二(、16日(日历月末的第三次星期三(、17日(日历年末的第二个星期四(跑步。

你能告诉我这是否可以使用Azure数据工厂的触发器来实现吗?如果没有,还有其他实施方式吗?非常感谢。

单独的调度触发器无法实现该逻辑(截至2021-05-04(。最简单的解决方案是使用其他一些调度应用程序。

对于纯数据工厂解决方案,将触发器安排为所需日期可能发生的所有日期。然后修改管道以执行逻辑,以确定当前日期是否真的是所需日期之一。

实现细节和示例代码

逻辑:

  1. 查找一个月的最后一天(下个月的第一天减去1天(
  2. 减去一周,使你处于倒数第二周
  3. 循环[0,-1,-2,-3,-4,-5,-6]作为要添加到日期的天数。这会生成一周中每一天的日期
  4. 使用dayOfWeek函数将日期更改为一周中的哪一天
  5. 筛选以获取星期五日期
  6. 询问今天是否在星期五和星期五之间-3天

相关内容

  • 没有找到相关文章

最新更新