如何解决for-each 在 azure 数据工厂中一次传递所有文件
我是 Azure 的新手,我遇到了 for-each Activity 的问题。
场景:每天必须将 6 个文件从 blob 存储复制到 Azure sql。
第 1 天:vendors-01、Transactions01、Orders01、Customers01、purchase01、history01 第 2 天:vendors-02、Transactions02、Orders02、Customers02、purchase02、history02 ...
问题:我的 for-each 一次传递所有文件多次,而不是循环遍历它们并一次传递每个文件。
理想的世界应该是这样的
目前正在发生的事情:
这会导致管道失败,因为 for-each 无法正常工作。
父管道
这是管道每个循环的计数,它给了我 24 个文件而不是 3 个类似的文件,或者一次 1 个
我在哪里遗漏了一步?
任何反馈将不胜感激!
提前谢谢?
解决方法
由于作业执行的可变部分是附加在文件末尾的日期而不是文件名,因此您可以通过多种方法获得结果:
- 创建日期及其处理状态的配置表。
Foreach 循环活动:它的值应该是我们需要处理的提取日期的数量(意味着我们需要复制文件的日期)
在 foreach 中,创建 6 个复制活动(每个文件名,如历史记录、订单等),其中源数据集需要是动态的以获取文件 @cancat("order_number",utcnow()) 类似的东西。
- 与其在 FOreach 活动中进行 6 个不同的复制活动, 因为 ADF 不支持 foreach 内的 foreach ;创建另一个管道,该管道将包含一个 Array 类型的变量,其值为不同的文件名。 在新管道中,创建一个以变量作为输入的 forache 循环,并在 foreach 中创建一个复制活动。
在 foreach 活动中的原始管道中(基于日期参数),调用新管道。
,也许您可以试试这个:使用通配符路径将文件从 Blob 存储复制到 Azure SQL 中的相应表。
我的测试:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。