【发布时间】:2020-02-25 18:50:36
【问题描述】:
在 Azure 数据工厂 v2 中,我从管道调用映射数据流。数据流中的源和接收器连接是参数化的,因此我可以为多个源/目标组合重用管道/数据流。但是我想在数据流中创建一个派生列,它是该特定源/目标组合的适当列的 md5 哈希。因此,我想将列列表传递给 md5() 函数,该函数可以在数据流运行时进行评估,并且可以为每行数据生成适当的哈希值。目前我找不到让它工作的方法。
我有一个字符串类型的数据流参数 (pColumnList)(数组没有类型选项)。管道传递一个字符串逗号分隔的列名列表,例如 Col1、Col2、Col3
并且派生列(ROW_HASH)具有代码/表达式md5($pColumnList) 目前的问题是该函数正在散列“Col1,Col2,Col3”的字符串值,因此每一行都具有相同的散列值而不是散列每行计算。我还尝试将字符串拆分为一个数组,以查看该函数是否会将单独的项目解释为列,即 md5(split($pColumnList,',')) 但这会导致错误,因为我认为 md5 函数不接受数组。
问题在于,由于源是动态的,因此表达式在设计时可以明确引用的数据流中没有定义的架构。我只是想知道这在 adf 映射数据流中是否根本不可能做到,事实上,我们需要为每个特定源创建单独的数据流到目标进程,并使用显式的源和目标连接创建它们的适当架构可见. (或者在目标表中创建为计算列的哈希)。
【问题讨论】:
标签: expression md5 azure-data-factory azure-data-factory-2