[英]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.