Gee*_*ekn 6 azure-data-factory
我有一个ForEach活动,在每次迭代中,我需要设置一些迭代特定的变量。我可以通过使用为管道(管道范围)定义的变量来实现此目的,但这迫使我在Sequential模式下运行循环,以便并行运行的多个迭代不会更新同一变量。我真正需要的是能够在每次迭代(迭代范围)内定义这些变量,以便我可以ForEach以并行模式运行活动。
我考虑过创建一个 SQL 数据集,我可以在其中查找假值(SELECT 1 AS var1, 2 AS var2),只是为了获得一个可以设置和使用这些值的结构,但这看起来真的很蹩脚。我还考虑过使用带有 AppendVariable 选项的数组变量类型,但这引入了很多自定义解析。
如果我可以拥有一个 InMemory 数据集,而不必绑定到数据源,我可以将其用作 ForEach 迭代中的结构,那就太好了。有人对如何在ForEach循环内设置迭代特定变量有任何其他想法吗?
我同意,这非常烦人且令人恼火。
如果杰森答案的第一部分适用于您的情况,那么这绝对是正确的选择。(在循环外定义变量)。
但假设变量是每次迭代动态计算的,那么我知道的唯一解决方案是将 Foreach 循环的主体定义为其自己的管道。现在,您可以在该内部管道内定义变量,这些变量的“作用域”为内部管道的单独执行。
ADF 的很多管道限制都可以这样规避。嵌套的 If/Foreaches、活动限制等。
目前执行此操作的最佳方法是从外部查找中提取值或获取元数据活动(如果可以)。使用内部查找不会具有成本效益或性能效率。特别是当您迭代超过 100 次或数千次时。当然,这是如果您可以提前确定每次迭代的值。如果你不能比。我会很乐意采用你的查找方法。或者,如果您可以完全摆脱变量,只需使用动态属性的表达式来设置值。
| 归档时间: |
|
| 查看次数: |
8482 次 |
| 最近记录: |