如何基于 Azure 数据工厂中创建的 Blob 执行触发器?
How to execute a trigger based on Blob created in Azure Data Factory?
每次创建 blob 存储时,我都会使用触发器执行管道。有时进程需要一次执行很多文件,所以我在我的管道中创建了一个 'For Each' activity 如下,以便在创建多个 blob 存储时加载数据:
管道的那部分将容器中每个blob的数据上传到SQL数据库,这就是问题所在,当我手动执行时一切正常,但是当执行触发器时,执行次数与容器中的blob存储数一样多,无论如何都会多次加载数据(下面是触发器配置)。
我做错了什么?有什么方法可以在创建 blob 存储时使用触发器只执行一次管道,而不管容器中有多少文件?
顺便谢谢你,最好的问候。
您的解决方案触发存储事件。所以那部分工作。
触发后,它会检索容器中的所有文件并处理该容器中的每个 blob。未按预期工作。
我想你在这里有几个选择。您可能想关注 this MSFT tutorial 他们使用单个副本 activity 到接收器的地方。第 11 步显示您必须将 @triggerBody().path & @triggerBody().fileName 传递给副本 activity.
其他选项是聚合所有 blob 存储事件并使用批处理来执行操作。
我会先尝试简单的一对一处理选项。
每次创建 blob 存储时,我都会使用触发器执行管道。有时进程需要一次执行很多文件,所以我在我的管道中创建了一个 'For Each' activity 如下,以便在创建多个 blob 存储时加载数据:
管道的那部分将容器中每个blob的数据上传到SQL数据库,这就是问题所在,当我手动执行时一切正常,但是当执行触发器时,执行次数与容器中的blob存储数一样多,无论如何都会多次加载数据(下面是触发器配置)。
我做错了什么?有什么方法可以在创建 blob 存储时使用触发器只执行一次管道,而不管容器中有多少文件?
顺便谢谢你,最好的问候。
您的解决方案触发存储事件。所以那部分工作。
触发后,它会检索容器中的所有文件并处理该容器中的每个 blob。未按预期工作。
我想你在这里有几个选择。您可能想关注 this MSFT tutorial 他们使用单个副本 activity 到接收器的地方。第 11 步显示您必须将 @triggerBody().path & @triggerBody().fileName 传递给副本 activity.
其他选项是聚合所有 blob 存储事件并使用批处理来执行操作。
我会先尝试简单的一对一处理选项。