Azure数据工厂: Dynamic path value for the Storage Event Trigger

标签 azure azure-storage azure-data-factory

我创建了一个 azure 数据工厂管道,使用复制数据事件将数据从一个 adls 容器复制到另一个 adls 容器。 此复制事件将使用存储事件触发器来触发。

因此,每当生成新文件时,都会触发该事件。
源文件位于嵌套目录结构中,该结构具有动态文件夹,例如年、月和日,这些文件夹根据日期而变化。

在触发器中,我提到了固定文件夹路径之前的路径,但我不知道应该为动态路径设置什么值。
最初,我提供了诸如my/fixed/directory/*/*/*/之类的路径,
但在执行时,它抛出异常“PathNotFound”。

所以我的问题是 - 如何通过动态文件夹结构提供存储事件触发器的路径? 以下是 ADF 复制数据管道屏幕截图:
管道- enter image description here

复制数据事件源配置- enter image description here

复制数据事件目标配置- enter image description here

复制数据事件源数据集配置- enter image description here

复制数据事件目标数据集配置- enter image description here

存储事件配置- enter image description here

最佳答案

  • 存储事件触发器中的 blob 路径开头为blob 路径结尾为 不支持通配符。
  • 但是,在固定父目录上创建存储事件触发器也会触发在子目录中创建/删除的任何文件的管道。
  • 假设我的文件夹结构如下所示,其中 input/folder/2022 是我的固定目录(输入是容器名称)。我还在下面所示的每个文件夹中都有子文件夹。

enter image description here

  • 现在,我已经创建了一个复制数据事件。源数据集的文件夹名称和文件名动态内容如下所示(参数值将从管道传递):
folder path:  @replace(dataset().folder_name,'input/','')

file name:  @dataset().file_name

enter image description here

  • 接收器数据集的文件夹名称和文件名动态内容如下所示。这是一个名为 data 的不同容器:
folder path: @concat('output/',replace(dataset().folder,'input/folder/',''))

file name: @dataset().file

enter image description here

  • 完成复制事件配置后,创建存储事件触发器。

enter image description here

  • 此处,管道参数 folderNamefileName 的值将在创建触发器时设置,如下所示:
fileName : @triggerBody().fileName
folderName : @triggerBody().folderPath

enter image description here

  • 附加触发器并创建管道后,每当任何文件上传到固定目录 folder/2022 内的任何文件夹时,管道都会被触发。
  • 我已将文件上传到 folder/2022/03/01/sample1.csv。这成功触发了管道。

enter image description here

  • 文件也已成功复制。以下为引用图片:

enter image description here

因此,仅为父目录创建存储事件触发器就足以触发上传到子目录的任何文件的管道。

关于Azure数据工厂: Dynamic path value for the Storage Event Trigger,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75159338/

相关文章:

azure - 如何使用 Azure 门户将我的应用服务定位到不在域根目录的 URL?

json - Azure 数据工厂 - forEach - JSON 到数组错误

azure - 如何在不使用逻辑应用的情况下发送一封具有多个管道状态的状态邮件

azure - Azure SQL 数据库中的最少日志记录

sql-server - 具有事件副本的 Azure SQL 数据库副本

使用服务主体的 Azure 登录失败并显示 401 - 提供的客户端 key 无效

azure - 需要多少个 Hive 动态分区?

Azure 存储日志未清除

Azure Batch 微任务并行处理(修改任务队列)

Azure 安全中心使用过多存储空间