我有一个查找配置表,用于存储 1) 源表和 2) 要处理的变量列表,例如:
SQL 查找表:
tableA
, variableX,variableY,variableZ
<-- tableA 的变量不止这 3 个,即它还有其他变量,例如变量 V、变量 W,但它们没有需要处理
tableB
, variableA,variableB
<-- tableB 不止这 2 个变量
因此,我需要动态连接到每个表并处理每个表中的特定变量。处理步骤是将儒略日期(整数格式)转换为标准日期(日期格式)。 SQL查询示例:
select dateadd(dd, (variableX - ((variableX/1000) * 1000)) - 1, dateadd(yy, variableX/1000, 0)) FROM [dbo].[tableA]
问题是在ADF
中设置lookup和forEach后,我不确定如何循环遍历变量数组(或字符串,因为 SQL DB 不允许我存储数组结果)并将所有这些变量转换为标准时间格式。
返回结果应该是要导出到接收器的处理后的数据集。
因此想检查一下在 ADF 中实现这一目标的最佳方法是什么?
谢谢!
最佳答案
我在本地环境中重现了。请参阅以下步骤。
- 使用查找事件,首先从控制表中获取所有表列表。
- 将查找输出传递给 ForEach 事件。
在 ForEach 事件中,添加查找事件以从控制表中获取变量列表,其中表名称是 ForEach 事件中的当前项目。
@concat('select table_variables from control_tb where table_name = ''',item().table_name,'''')
- 使用设置变量事件将 Lookup2 事件输出值转换为数组。
@split(activity('Lookup2').output.firstRow.table_variables,',')
- 创建另一个具有 2 个参数(表名称(字符串)和变量(数组))的管道 (pipeline2),并在 pipeline2 中添加 ForEach 事件
- 将数组参数传递给 pipeline2 中的 ForEach 事件,并使用复制事件将数据从源复制到接收器
- 将执行管道事件连接到 ForEach 事件内的管道 1。
关于sql - Azure 数据工厂中正在处理的变量的动态列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71419908/