首页 > 解决方案 > 更新数据时如何在 Sink Tanformation 的关键列中传递数据流参数?

问题描述

我正在通过数据流实现 SCD Type2。我已经在其中创建了一个参数,我将在其中传递一个列名,以及我在关键列的接收器转换中使用的这个参数。

在数据流的键列中传递参数

我选择了添加动态内容,然后选择了参数,之后我选择了我在数据流中创建的参数。然后它显示为"$Key_col"。但是当我运行管道时,它给了我一个错误-

{"message":"at Sink 'sink1'(Line 56/Col 6): 列操作数不允许在文字表达式中。详细信息:at Sink 'sink1'(Line 56/Col 6): 列操作数不允许在文字中表达式","failureType":"UserError","target":"Update_Existing_Records","errorCode":"DFExecutorUserError"}

谁能告诉我如何解决此错误或此问题的任何解决方法。

标签: azureazure-sql-databaseazure-blob-storageazure-data-factoryazure-data-flow

解决方案


键列不支持带参数设置。您只能选择接收器中的存在列。

您在此处选择作为键的列名将被 ADF 用作后续更新、更新插入和删除的一部分。因此,您必须选择 Sink 映射中存在的列。如果您不想将值写入此键列,请单击“跳过写入键列”。

请参考:映射数据流属性

该参数Key_col在接收器中不存在,即使它具有相同的名称。

更新:

数据流参数:

在此处输入图像描述

如果我们想使用更新,我们必须添加一个 Alter 行:

在此处输入图像描述

接收器,键列选择存在列“名称”:

在此处输入图像描述

管道运行成功:

在此处输入图像描述

在此处输入图像描述

希望这可以帮助。


推荐阅读