Azure Data Factory ForEach 似乎不是 运行 并行数据流

Azure Data Factory ForEach is seemingly not running data flow in parallel

在 Azure 数据工厂中,我使用 Lookup activity 获取要下载的文件列表,然后将其传递给 ForEach,其中数据流正在处理每个文件

我没有打开 'Sequential' 模式,我假设数据流应该 运行 并行。然而,它们的运行时间并不相同,但实际上它们之间的时间几乎恒定(例如,第一个数据流 运行 4 分钟,第二个 6,第三个 8 等等)。似乎第二个数据流正在等待第一个数据流完成,然后使用其集群来处理文件。

这是有意为之的行为吗?我在集群集上有 TTL,但这并没有太大帮助。如果是,那么解决方法是什么?我目前正在首先创建一个文件列表并使用它而不是 ForEach 但我不确定我是否会看到效率的提高

我无法解决并行数据流未并行执行的问题,但是,我已设法更改可提高性能的解决方案。

之前的内容:查找 activity 将获取要处理的文件列表,传递到具有数据流的 ForEach 循环 activity。

我现在正在测试的内容:一个数据流 activity 将获取文件列表,并将它们保存在 ADLS 中的文本文件中,然后另一个数据流 activity 之前在ForEach 循环,但将其源更改为使用“文件列表”并指向该列表

结果是提高了效率(使用同一个集群,40 个文件使用 ForEach 大约需要 80 分钟,使用文件列表只需要 2-3 分钟),但是,调试并不容易,因为一切都在1 个数据流

您可以覆盖文件列表文件,或使用动态表达式并将文件命名为 pipelineId 或其他名称