当三个文件到达路径时,我需要触发我的 ADF 管道:container/folder1/file1.parquet 容器/folder2/file2.parquet 容器/folder3/file3.parquet
只有当这 3 个子文件夹获得新文件(文件将被覆盖)时,ADF 管道才会触发。
我们怎样才能实现这一目标?
更新:这应该是一个 AND 条件,即 - 只有在所有 3 个文件到达或更新后才应触发管道。
最佳答案
更新:
没有现成的功能可以实现这一点,您可以分享您的想法 here
你能做的是
在第一个目标(即
container/folder1/file1.parquet
)上设置存储事件触发管道,正如我之前所解释的。然后可能等待几秒钟后使用 WaitActivity使用
Get Metadata activity
带字段列表 作为Child items
的参数来获取文件夹中的文件列表或
LookupAcitivty
链,使用在
属性。 File list examplescontainer/folder2/file2.parquet
和container/folder3/file3.parquet
查找文件文件列表路径然后,为了方便起见,您可以将结果保存在变量中,并使用
IfActivity
等条件事件进行比较,以查看所有文件是否存在,如果True
则可以继续当这三个文件到达时,您计划在管道中设计进一步的事件。
如果明确可用或分别有 3 个文件..
您只需对同一管道使用 3 个不同的新触发器即可。每个都有不同的文件夹,因为其 Blob 路径以触发器中的
属性结尾。
这是第一个文件夹的示例触发器,即container/folder1/file1.parquet
您还可以提到像 .parquet
使用模式来动态匹配具有不同名称的文件。
Note :Blob 路径开头和结尾是存储事件触发器中允许的唯一模式匹配。
同样,您可以为 container/folder2/file2.parquet
和 container/folder3/file3.parquet
创建 2 个
关于azure - 当不同文件夹中有多个文件时触发 ADF 存储事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70681187/