azure - 当不同文件夹中有多个文件时触发 ADF 存储事件

标签 azure azure-data-factory azure-data-lake-gen2

当三个文件到达路径时,我需要触发我的 ADF 管道:container/folder1/file1.parquet 容器/folder2/file2.parquet 容器/folder3/file3.parquet

只有当这 3 个子文件夹获得新文件(文件将被覆盖)时,ADF 管道才会触发。

我们怎样才能实现这一目标?

更新:这应该是一个 AND 条件,即 - 只有在所有 3 个文件到达或更新后才应触发管道。

最佳答案

更新:

没有现成的功能可以实现这一点,您可以分享您的想法 here

你能做的是

  1. 在第一个目标(即 container/folder1/file1.parquet)上设置存储事件触发管道,正如我之前所解释的。

  2. 然后可能等待几秒钟后使用 WaitActivity使用Get Metadata activity带字段列表 作为 Child items 的参数来获取文件夹中的文件列表

    LookupAcitivty 链,使用 container/folder2/file2.parquetcontainer/folder3/file3.parquet 查找文件文件列表路径 属性。 File list examples

  3. 然后,为了方便起见,您可以将结果保存在变量中,并使用 IfActivity 等条件事件进行比较,以查看所有文件是否存在,如果 True 则可以继续当这三个文件到达时,您计划在管道中设计进一步的事件。

<小时/>

如果明确可用或分别有 3 个文件..

您只需对同一管道使用 3 个不同的新触发器即可。每个都有不同的文件夹,因为其 Blob 路径以触发器中的 属性结尾。

这是第一个文件夹的示例触发器,即container/folder1/file1.parquet

您还可以提到像 .parquet 使用模式来动态匹配具有不同名称的文件。

Note :Blob 路径开头和结尾是存储事件触发器中允许的唯一模式匹配。

enter image description here

同样,您可以为 container/folder2/file2.parquetcontainer/folder3/file3.parquet 创建 2 个

enter image description here

关于azure - 当不同文件夹中有多个文件时触发 ADF 存储事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70681187/

相关文章:

azure - 实现跨平台推送通知 azure notification hub

azure - ADF 了解案例陈述

azure - 尝试在 Synapse 中打开 Parquet - 无法打开,因为它不存在或已被其他进程使用

Azure Synapse Pipeline如何将每个文件作为sql脚本执行?

angular - 如何配置.net core以将身份验证cookie发送到不同的域

azure - 如何自行(本地)以可变比特率为 Azure 媒体服务准备视频?

json - Azure 数据工厂 - 尝试将参数添加到 REST API 请求正文中的动态内容

azure - 我们可以使用 Azure 托管 IR 将本地 Oracle 服务器连接到数据工厂并将其用作源和接收器吗?

azure-functions - 是否可以为 DataLake Gen2 存储中的目录创建 SAS token ?

azure - Bizspark 计划和 Azure