gpt4 book ai didi

azure - 数据工厂 - Foreach 事件 : run in parallel but sequentially

转载 作者:行者123 更新时间:2023-12-03 05:18:34 25 4
gpt4 key购买 nike

我正在创建一个 ADF 管道,并使用每个事件来运行多个 databricks 笔记本。

我的问题是两个笔记本相互依赖。

也就是说,一个笔记本必须先于另一个笔记本运行,因为它具有依赖性。我知道每个事件都可以按顺序和批量执行。 但是问题是,顺序运行的时候会一个一个的运行,也就是说,由于我有分区,所以会花很长时间

我想要的是按顺序但批量运行。换句话说,我有一个将运行 ES、UK、DK 分区的笔记本,我希望它能够并行运行该笔记本的这些分区,并等待该笔记本的全部执行,然后才会执行开始运行相同分区的其他笔记本。如果我批量放置它,它不会等待完全执行,它会开始随机运行另一个笔记本。

我通过配置表获得笔记本顺序的一部分,在其中指定它们应该运行的顺序,然后我有一个笔记本用该顺序定义了我的最终 json。

配置表:

<表类=“s-表”><标题>sPath表源表目标订单 <正文>路径1dbo.table1dbo.table11路径2dbo.table2dbo.table22

这是我的管道: enter image description here

以及我想要按批处理和顺序执行,但不可能同时按顺序和批处理计数进行选择。

有人可以帮我实现这个目标吗?

谢谢!

最佳答案

我试图重现这个。为了按顺序和批量运行 for-each,我们需要有两个管道——一个嵌套在另一个管道内。外层管道用于顺序运行,内层管道用于批量运行。以下是步骤

  • 获取了一个示例配置文件,如下图所示。

config_table

  • 管道 1 被视为外部管道。其中 Lookup 事件用于仅按升序选择 sortorder 字段数据。 Sortorder 值将作为参数依次传递给子管道。

select distinct sortorder from config_table order by sortorder

Lookup

  • 对于每个事件,都会在查找事件之后添加。我们使用它来顺序运行。因此,顺序被选中,并在项目文本框中给出查找事件的输出。

@activity('Lookup1').output.value

enter image description here

  • 在 foreach 事件中,pipeline2 通过执行管道事件进行调用。子管道中添加管道参数 pp_sortorder pipeline2

enter image description here

enter image description here

  • pipeline2 中,添加了查找事件,其中数据集引用了配置表,该配置表具有从 pipeline1 获取的排序顺序值

select * from config_table where sortorder=@{pipeline().parameters.pp_sortorder}

enter image description here

  • 在查找旁边添加了 Foreach,在项目中给出了查找事件输出,并在此处给出了 5 的批处理计数(可以根据要求增加批处理计数) enter image description here

  • 为每个事件添加存储过程事件以检查并行处理。 enter image description here

完成所有这些设置后,**管道 1 ** 被执行。管道 1 的执行管道事件按顺序运行,管道 2 的执行存储过程事件同时运行。

pipeline1 输出状态第一个事件结束后启动第二个执行管道 enter image description here

pipeline2输出状态所有存储过程事件已开始同时执行 enter image description here

关于azure - 数据工厂 - Foreach 事件 : run in parallel but sequentially,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73844044/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com