Azure 数据工厂 V2 - 调用返回多个结果集的存储过程

时间:2021-04-05 17:08:37

标签: azure-data-factory azure-data-factory-2

我想创建一个 ADF v2 管道来调用 Azure SQL 数据库中的存储过程。存储过程具有输入参数,并会返回多个结果集(大约 3 个)。我们需要把它提取出来。我们正在尝试加载到 4 个不同文件的 Blob 存储或加载到表。

有没有办法在管道中执行?

在 SSIS 中有使用脚本组件和提取的选项。 https://www.timmitchell.net/post/2015/04/27/the-ssis-object-variable-and-multiple-result-sets/

在数据工厂中寻找建议。

1 个答案:

答案 0 :(得分:1)

您无法在 Azure 数据工厂 (ADF) 中轻松实现这一点,因为存储过程活动根本不支持结果集,而复制活动也不支持多个结果集。但是,通过一些小的更改,您可以获得相同的结果:您有几个选择:

  1. 如果代码和 SSIS 包已经存在,并且您希望最大限度地减少重构,则可以通过 SSIS-IR 将其托管在 ADF 中
  2. 也许你可以用一个 Azure 函数来完成这个,它大致相当于 SSIS 脚本任务,但对我来说似乎有点浪费时间。这是一种未经证实的模式,您有更简单的选择,例如:
  3. 将存储过程分解为多个部分:让它处理其数据而不返回任何结果集。更改 proc 以将三个结果集放在表中。有多个并行运行的复制活动,在主存储过程活动完成后将数据复制到 blob 存储,如下所示:

ADF Pipeline

还可以欺骗 Lookup 活动为您运行存储过程,但输出限制为 5,000 行,并且您不能在之后将其通过管道传输到 Copy 活动中。我会推荐选项 3,只需对您的 proc 进行一些更改即可获得相同的结果。

相关问题