繁体   English   中英

Azure 数据工厂,如何将参数从触发器/管道传递到数据源

[英]Azure Data Factory, how to pass parameters from trigger/pipeline in to data source

我需要帮助。 我已经创建了一个用于数据处理的管道,它正在导入 csv 并将数据复制到数据库。 我还配置了一个 Blob 存储触发器,当特定文件将上传到容器时,它会触发带有数据流的管道。 目前,此触发器设置为监视一个容器,但我想将其设置为更通用。 要监视所需存储帐户中的所有容器,如果有人发送一些文件,将触发管道。 但是为此,我需要将容器名称传递给要在数据源文件路径中使用的管道。 现在我已经创建了类似的东西:

在管道中,我添加了这个参数@pipeline().parameters.sourceFolder:

在此处输入图像描述

接下来在触发器中,我设置了这个:

在此处输入图像描述

现在我应该在这里设置什么来传递这个文件夹路径?

在此处输入图像描述

您需要为此使用数据集参数

与管道中的 folderpath 参数一样,也为文件名创建另一个管道参数,并在创建触发器时将@triggerBody().folderPath@triggerBody().fileName提供给那些参数。

管道参数:

在此处输入图像描述

确保在创建触发器时给存储事件触发器中的all containers

将触发器参数分配给管道参数:

在此处输入图像描述

现在,为文件夹和文件名创建两个数据集参数,如下所示。

源数据集参数:

在此处输入图像描述

在数据集动态内容的文件路径中使用这些。

在此处输入图像描述

如果您为此数据集使用复制活动,则将管道参数值(我们可以从触发器参数中获取)分配给数据集参数,如下所示。

在此处输入图像描述

如果您对数据集使用数据流,则可以在将数据集作为数据流中的源之后,在数据流活动本身中分配它们,如下所示。

在此处输入图像描述

谢谢拉凯什

我需要处理一些来自 package 的特定文件,这些文件将被发送到容器。 每次用户/应用程序将发送相同的文件集,所以在触发器中我正在检查新的 drive.xml 文件是否已发送到任何容器。 这个文件定义了发送数据的类型,所以如果它来了,我知道新的数据文件也被发送了,它们将出现在 lover 文件夹中。 F.例如 drive.xml 在/container/data/somefolder/2022-01-22/drive.xml中找到,然后我知道在/container/data/somefolder/2022-01-22/datafiles/中,有 3 个文件,我需要处理。 因此在参数中,我只需要传递文件路径,文件名将始终相同。

数据集配置如下所示: 在此处输入图像描述

在此处输入图像描述 事件触发器是这样的: 在此处输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM