sql - Azure 数据工厂中正在处理的变量的动态列表

标签 sql azure azure-data-factory pipeline dynamic-content

我有一个查找配置表,用于存储 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中设置lookupforEach后,我不确定如何循环遍历变量数组(或字符串,因为 SQL DB 不允许我存储数组结果)并将所有这些变量转换为标准时间格式。

返回结果应该是要导出到接收器的处理后的数据集。

因此想检查一下在 ADF 中实现这一目标的最佳方法是什么?

谢谢!

最佳答案

我在本地环境中重现了。请参阅以下步骤。

  1. 使用查找事件,首先从控制表中获取所有表列表。

enter image description here

  • 将查找输出传递给 ForEach 事件。
  • enter image description here

  • 在 ForEach 事件中,添加查找事件以从控制表中获取变量列表,其中表名称是 ForEach 事件中的当前项目。

      @concat('select table_variables from control_tb where table_name = ''',item().table_name,'''')
    
  • enter image description here

  • 使用设置变量事件将 Lookup2 事件输出值转换为数组。
  • @split(activity('Lookup2').output.firstRow.table_variables,',')

    enter image description here

  • 创建另一个具有 2 个参数(表名称(字符串)和变量(数组))的管道 (pipeline2),并在 pipeline2 中添加 ForEach 事件
  • enter image description here

  • 将数组参数传递给 pipeline2 中的 ForEach 事件,并使用复制事件将数据从源复制到接收器
  • enter image description here

  • 将执行管道事件连接到 ForEach 事件内的管道 1。
  • enter image description here

    关于sql - Azure 数据工厂中正在处理的变量的动态列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71419908/

    相关文章:

    azure - 设置-AzDataFactoryV2 : A parameter cannot be found that matches parameter name 'PublicNetworkAccess'

    mysql - 创建表空间 "error in creating database file, access denied (OS 5)"

    使用从另一个表中选择的 MySQL 更新

    azure - 如何在 azure devops 工作项屏幕中显示所有工作项

    azure - 如何从另一个订阅访问一个订阅的镜像以在azure中创建VM?

    Azure 数据工厂管道运行 FTP 失败

    sql - USPS 统一费率盒需要成本最小化算法

    mysql - 内连接 3 个表 pl/sql

    azure - 如何在 Azure VM 中启用虚拟化

    Azure Blob 创建未触发 Azure 数据工厂事件触发器