我在数据工厂中有每日数据切片。如果前一个切片尚未到达,我想暂停处理。我希望所有后续数据排队,直到丢失的切片到达。
这可以在数据工厂中使用吗?
答案 0 :(得分:0)
您可以定义策略属性,例如并发。
"policy": {
"timeout": "01:00:00",
"concurrency": 1,
"executionPriorityOrder": "NewestFirst"
}
并发:1表示一次只能运行一个切片。因此,如果前一个切片尚未进入就绪状态,则下一个切片将不会运行。
超时可用于使挂起太久的切片失败。
然后执行优先级顺序使您可以自定义该逻辑。
答案 1 :(得分:0)
请注意,只有在同时有多个切片可用时,设置并发才有效。每个切片都是不同的并且彼此自治,因此如果2天前的切片失败或丢失但是昨天的切片出现并验证,那么它将被处理。 您可以在一个依赖于您的日常活动的活动中在管道中创建输出,并使其成为您日常活动的输入依赖项,因此如果未处理2天前的切片,则不会创建相关输出,因此后续运行不会开始。 这是一个杂耍行为,但你应该能够在输出名称中使用SliceEnd,在依赖输入中使用SliceStart来提供相同的名称并保持日常依赖
答案 2 :(得分:0)
考虑到我之前的回答,我认为这不会做你想要的。相反,它会通过保留切片进程来破坏失败,因为依赖的输入文件不在它应该的位置。 在数据工厂中创建片间依赖关系非常困难。 我之前使用过的一种技术是使用slicentifier和slicestart对输入数据进行分级,然后使用存储过程处理相关切片。如果您记录了哪些已完成,则可以阻止处理,直到上一个完成。这仍然会将活动标记为完整,但不会真正暂停处理