首页 > 解决方案 > 天蓝色数据工厂中基于事件的触发器

问题描述

对于以下情况,左侧是我的来源,右侧是目的地:

Source                                                   Destination
----------                                               -----------------
sourceContainer/StaticFiles/Finance/X1.tsv               DestinationContainer/StaticFiles/Finance/X1.tsv
sourceContainer/StaticFiles/Customer/X2.tsv              DestinationContainer/StaticFiles/Customer/X2.tsv

我想一次将文件放置在任何源位置,它应该触发复制管道以动态创建目标路径。我在管道中使用了一个复制活动,我为财务和客户等每个创建触发器。

我参考了以下链接,但没有运气 https://docs.microsoft.com/en-us/azure/data-factory/how-to-create-event-trigger

标签: azureazure-data-factory

解决方案


我们需要使用 Get Metadata 和 ForEach 活动来实现这一点。我创建了一个简单的测试来复制文件并为目的地动态创建路径。

  1. 首先,我们需要添加一个事件触发器。指定您的容器和路径。
    在此处输入图像描述

  2. 声明容器的数据集。 在此处输入图像描述

  3. 在 Get Metadata1 处,选择先前声明的数据集,然后选择子项。 在此处输入图像描述

  4. 在 ForEach1 活动中,将动态内容添加@activity('Get Metadata1').output.childItemsItems在此处输入图像描述

  5. 在 ForEach1 活动中,我们可以定义一个 Copy 活动。选择通配符文件路径并添加StaticFiles到路径。 在此处输入图像描述

  6. 在 sink 选项卡中,我们为目标容器创建了一个数据集。 在此处输入图像描述 这里是output。然后添加动态内容并输入@item().name. 它将为目的地动态创建路径。 在此处输入图像描述

调试:
当我将文件上传到文件StaticFiles/finance夹时触发管道。 在此处输入图像描述 我们可以看到它为目的地动态创建了路径。 在此处输入图像描述


推荐阅读