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 数据工厂参数放入 ARM 模板参数文件 (ARMTemplateParametersForFactory.json)