【发布时间】:2021-01-31 20:25:55
【问题描述】:
我是 Azure 的新手,我遇到了 for-each 活动的问题。
场景:每天必须将 6 个文件从 blob 存储复制到 Azure SQL。
第 1 天:Vendors-01、Transactions01、Orders01、Customers01、purchase01、history01 第 2 天:Vendors-02、Transactions02、Orders02、Customers02、purchase02、history02 ...
问题:我的 for-each 是一次多次传递所有文件,而不是循环遍历它们并一次传递每个文件。
理想的世界应该是这样的
- 第一个循环:供应商文件
- 第二循环:事务文件
- 第三循环:订单文件
- 第 4 循环:客户文件
- 第 5 循环:购买文件
- 第 6 循环:历史文件
目前正在发生的事情:
- 第一个循环:供应商文件、交易文件、订单文件、客户文件、采购文件、历史文件
- 第二循环:供应商文件、交易文件、订单文件、客户文件、采购文件、历史文件 ...
这导致管道失败,因为 for-each 无法正常工作。
父管道
这是实际文件的数量 6,这就是管道执行 6 次的原因
这是管道每个循环的计数,它给了我 24 个文件而不是 3 个类似的文件,或者一次 1 个
我哪里漏了一步?
任何反馈都将受到高度赞赏!
提前谢谢????
【问题讨论】:
-
您的
Get File List活动似乎有问题。例如,在您的第一个循环中,您只想获取所有供应商文件,但您在Get File List活动的输出中获得了 24 个文件,这导致您在For Each File活动中循环了 24 次。对吗? -
@SteveZhao 是的,这是正确的,我的获取文件列表正在传递 24 个文件而不是 3 个文件。像我必须将类似的文件组织在一个文件夹中还是?
-
你在
For Each File活动中做什么,只使用复制活动?而且你的文件名前缀和你提供的样本一样吗? -
@SteveZhao 在我的 for each 中,将有一个复制活动,将第 24 个文件中的每个文件从 blob 复制到 Azure SQL。文件命名约定在 blob 存储中将是这样的。 “Order_Number_items_29012021.txt”、“Order_Number_items_30012021.txt”、“Customers_Database_29012021.txt”、“Customers_Database_30012021.txt”..这些是blob中的一些文件,而且文件每天都在增长
-
嗨@Maryam Al-Mansour,现在您在Azure SQL 中有6 种类型的文件和可能的6 个表。在您的父管道中,您要遍历 6 个 SQL 表。在您的子管道中,您是否要循环将一个文件复制到相应的表中?如果是这样,数字 3 来自哪里?
Here is the count of each loop of the pipeline, it gives me 24 files instead of 3 similar files, or 1 at a time
标签: azure azure-functions azure-data-factory-2 parallel.foreach