Azure 数据工厂参数 - 新手问题

Posted

技术标签:

【中文标题】Azure 数据工厂参数 - 新手问题【英文标题】:Azure DataFactory Params - Newbie Question 【发布时间】:2020-08-19 19:56:31 【问题描述】:

我正在使用 ADF 并尝试利用参数来简化生活并减少在 ADF 本身中创建的对象数量。我想做的事情,表面上看起来非常简单,但实际上它让我慢慢发疯。非常感谢任何帮助!

我正在尝试设置一个参数化数据集以用作接收器目标。在该数据集中,我添加了一个名为“文件名”的字符串类型的参数。在连接选项卡中,我已将该参数添加到路径的文件部分。文件夹部分指向我的 Azure Data Lake 文件夹,文件部分设置为:@dataset().filename,这是选择“动态内容”然后选择参数的结果。

到目前为止一切顺利.. 据我所知,我的接收器目标已准备好接收要写入的“文件名”。

这就是问题所在。

我现在创建一个新管道。我想在该管道中使用代表我要处理的文件的名称的值列表或数组。有人告诉我,我需要一个 Foreach 一次将每个值发送到 Foreach 后面的 COPY DATA 任务。我对 Foreach 类型的循环和行为并不陌生。但对于我的生活,我看不到在哪里设置文件名列表。我可以将参数创建为“数组”类型,但你到底是如何填充它的呢?

我有另一个用例,这个问题阻止我完成。我认为,这个用例是同样的问题,但也许可以更清楚地解释这种情况。它是这样的:

我有一个到远程数据库的链接服务。我需要将该数据库(大约 12 个表)中的数据复制到数据湖中。目前我有大约 12 个“复制数据”动作链接在一起——这太荒谬了。我想使用 Foreach 循环将数据从源一个接一个地复制到数据湖。同样,我可以将接收器数据集设置为参数化,很好......但是我到底如何在管道中创建表名的数组/列表以传递给接收器数据集?

我添加了 Foreach 并在 foreach 内部添加了一个“复制数据”,但是我在哪里添加所有表名?

非常感谢您的帮助。谢谢。

【问题讨论】:

【参考方案1】:

如果您想手动将数组的值填充为管道参数,请使用数组类型创建参数并使用如下语法设置值:["File1","File2","File3"]

然后您使用 ForEach 活动迭代该数组。

在 ForEach 内部,您引用 @item() 来获取循环所在的当前文件名值。

您还可以使用 Lookup 活动从其他地方获取数据并使用 ForEach 对其进行迭代。

【讨论】:

太棒了!当然!!当你看到它这样布置时,如此明显!谢谢。

以上是关于Azure 数据工厂参数 - 新手问题的主要内容,如果未能解决你的问题,请参考以下文章

将嵌套参数传递到 Azure 数据工厂

发布后如何将 Azure 数据工厂参数放入 ARM 模板参数文件 (ARMTemplateParametersForFactory.json)

Azure 数据工厂链活动

使用参数在 Azure 数据工厂中导入架构

Azure 数据工厂文件创建

将日期时间参数从管道传递到数据流源存储过程 Azure 数据工厂