ADF 数据流:列名无效

ADF Data Flows: invalid column name

我想创建一个简单的 azure 数据工厂进程来从 blob 存储读取文件 (csv) 并使用数据流将其写入 azure sql 数据库。

源数据集有一个名为 "myTime" 的列,类型为 "string"。

我添加了一个 "derived column" 来添加一个名为 "customTime" 的新列,表达式为 "currentTimestamp()"

最后,在 sql 接收器中,我将 "customTime" 映射到数据库中的 DateTime 字段。

如果我预览数据流中的数据,一切正常,我可以看到两个字段(myTime、customTime)。当我调试管道时,出现以下异常:

Activity myActivity failed: DF-SYS-01 at Sink 'sqlsink': java.sql.BatchUpdateException: Invalid column name 'myTime'

知道为什么 sql 接收器链接到 "myTime" 而不是 "customTime" 吗?我没有看到任何对 "myTime" 的引用,只是这是输入架构的一部分。

非常感谢,并致以最诚挚的问候 迈克尔

这个错误是由列映射引起的。您创建了新列“customTime”,但在您的 table 中,列名称是“myTime”。

我发现 csv 文件的列名和模式必须与 Sink table 相同,否则调试时会报错,这是我的错误信息:

Solution 1:: choose the "Recreate table" in Sink settings. But this will change your table schema: myTime to customTime.

Solution 2: Add the same column name with Sink table in Derived Column's Settings.

我用相同的操作进行了测试,它成功了。

我从 blob 存储中读取一个文件 (csv) 并使用数据流将其写入我的 Azure SQL 数据库。我创建了一个具有相同架构的 Sink table。

我的 csv 文件:

我的数据流:

第 1 步:源设置

第 2 步:派生列的设置

第 3 步:接收器设置:

运行 成功:

希望这对您有所帮助。