尝试使用数据流接收器更新行时出现无效的列名错误

时间:2019-09-24 10:54:46

标签: azure-data-factory

我的实际用例更加复杂(并且基于SCD Type 2模板管道),但是在尝试调试错误时,我创建了以下格式的新简化数据流:

数据源(数据集是具有主键列和多个其他可空列的Azure SQL数据库表)
派生列(创建名为"NewRowStatus"的新列,并将其设置为文字字符串“ Historic”)
更改行(单个条件“ Update If”设置为true(),因此所有行都将更新)
接收到我们开始时使用的同一数据集,将"NewRowStatus"映射到“行状态”数据库列,并将主键作为键列,以允许更新。

数据预览在数据流中的每个步骤都成功运行,但是当我通过调试管道运行整个数据流时,出现以下错误:

"error": {
        "code": 400,
        "message": "Job '[jobID] failed due to reason: DF-SYS-01 at Sink 'sink1': java.sql.BatchUpdateException: Invalid column name '{[My Key Column]}'.\njava.sql.BatchUpdateException: Invalid column name '{[My Key Column]}'...

(方括号是我的)

我尝试使用不同的(非关键)列来查看是否有任何不同,但是到目前为止,我还没有管理过一次成功的更新。我不确定是否缺少真正明显的东西,还是ADF仍处于预览状态,这是一个问题,但是任何想法都将不胜感激。

1 个答案:

答案 0 :(得分:1)

因此,在尝试获取一些不敏感的屏幕截图时,我创建了一个更简单的新数据流,并且 可以正常工作。经过一番挖掘后,当接收器中的关键字段中有空格时,似乎ADF不喜欢它。修改了Dimension表的键列,使其不包含空格,然后重新运行原始数据流,现在一切正常。