首页 > 解决方案 > 尝试使用数据流接收器更新行时出现无效的列名错误

问题描述

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

数据源(数据集是一个 Azure SQL 数据库表,其中包含一个主键列和多个其他 NULLable 列)
派生列(创建一个名为"NewRowStatus"设置为文字字符串“历史”的新列)
更改行(单个条件“更新如果”设置为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 仍处于预览阶段的问题,但任何想法都将不胜感激。

标签: azure-data-factory

解决方案


因此,在尝试获取一些不敏感的屏幕截图时,我创建了一个更简单的新数据流,并且效果很好。经过一番挖掘,当您在水槽中的关键字段中有空间时,ADF 似乎不喜欢它。修改了我的 Dimension 表的键列以不包含空格,并重新运行我的原始数据流,现在一切都按预期工作。


推荐阅读