将数据流参数传递到 Azure 数据工厂中的接收器键列

时间:2021-04-19 14:06:11

标签: azure azure-data-factory

我想实现 SCD 类型 2 逻辑,但使用动态表和配置表中的动态键字段,我遇到了将数据流参数作为接收器键列传递给我的 Alter Row 活动的挑战,它不采用参数值并且总是将错误作为无效的键列名称给出,我尝试在接收器键列处为表达式构建器选择 Dataflow 参数,并尝试从更改行转换中传递值,并且我还在选择语句中使用参数命名了字段,任何帮助或建议高度赞赏

请点击下方图片 Sample How I wanted to Pass Dynamic Values in Sink Mapping Trying to Give the Dynamic Value to Key Value

2 个答案:

答案 0 :(得分:0)

您选择了“列列表”,因此 ADF 正在您的目标表中查找字面上称为“$TargetPK1Parameter”的列。

将选择器更改为“自定义表达式”并输入字符串数组参数。该参数可以是表示目标表中关键列名称的字符串数组。

它应该看起来像这样:

enter image description here

答案 1 :(得分:0)

我在尝试将复合键、参数化、作为更新方法的一部分传递给接收器时遇到了类似的问题。这现在允许我完全参数化我的数据流,它可以处理复合键和单列键。

以下是我的配置表中数据的外观:

UpsertKeyColumn = DOMNAME,DDLANGUAGE,AS4LOCAL,VALPOS,AS4VERS

Column value

在数据流中设置了参数值

Upsert_Key_Column = @item().UpsertKeyColumn

Set parameter

最后,在 Sink 设置中,为 Key 列选择 Custom Expression 并输入以下表达式 - split($upsert_key_column,',')

Custom Expression