azure ForEach活动循环通过SQL参数表?

jpfvwuh4  于 2023-01-27  发布在  其他
关注(0)|答案(1)|浏览(124)

我正在Azure Synapse中开发ETL管道。
在以前的版本中,我使用了一个Array集作为管道的参数,它包含JSON对象。
[{"source":{"table":"Address"},"destination {"filename:"Address.parquet"},"source_system":"SQL","loadtype":"full"}}]
这是后来作为item()使用的,我使用ForEach、switch、ifs和嵌套管道来处理所有的表,我只是将item参数传递给子管道,它工作得很好。
现在我的任务是创建一个专用的SQL池和一个表,该表将参数存储为列。源表、目标文件、源系统和加载类型。
示例:
| 源_表|目标文件|源_系统|负载类型|
| - ------|- ------|- ------|- ------|
| "地址"|"地址. parquet "|"SQL语言"|"满"|
我不知道如何在ForEach活动中使用此表,也不知道如何以这种方式处理表,因为它不是Array。
我目前所做的:我创建了专用SQL池和以下存储过程:

  • 创建参数表
  • 插入参数
  • 获取参数

get_parameters是一个SQL SELECT语句,但我不知道如何将其转换为可以在ForEach活动中使用的方式。
CREATE PROCEDURE get_parameters AS BEGIN SELECT source_table, destination_filename, source_system, load_type FROM parameters END
所有这些过程都是作为SQL池存储过程在管道中调用的。我不知道如何在表中循环。我需要将每一行作为一个表或一个对象,就像在数组中一样。

9rygscc1

9rygscc11#

  • 在Azure数据工厂/ Synapse管道中执行查找活动,并在查找活动的源数据集中执行具有所需参数详细信息的表。
  • 确保取消选中仅第一行复选框。x1c 0d1x
  • 然后获取for-each活动并将其与查找活动连接。
  • 在for-each活动的设置中,单击在项目中添加动态内容,然后键入@activity('Lookup1').output.value

  • 然后,您可以在for-each活动中添加其他活动,如switch/if。

相关问题