我的问题是有关在复制活动期间如何/在何处执行类型转换。
我有一个Azure数据工厂管道,该管道定义了从Data Lake Gen1中的TSV文件到SQL Server数据库表的数据导入。
TSV文件的架构为:{QueryDate,Count1,Count2}
count1和count2可能没有值。
TSV文件中的示例数据:
20180717 10
20180717 5 5
20180717 7 1
20180717 7
SQL服务器表的架构为
{QueryDate(datetime2(7)), UserNumber(int), ActiveNumber(int)}
UserNumber和ActiveNumber都没有Not null约束。
当我在管道中使用复制活动将TSV数据复制到表时,出现如下错误:
错误代码”:“ 2200”,“消息”: “'Type = System.InvalidOperationException,不允许 DBNull.Value ...
当count1或count2没有值时,我想用0代替空值。 而且我认为这将不再导致错误。
但是我不知道在哪里以及如何执行此转换。
转换应该在源数据集,接收器数据集中还是在复制活动中?
我也不知道转换的正确语法。
我正在尝试设置源数据集格式设置的nullValue 的值为null,0,NULL,但是它们都不起作用,我仍然会收到错误消息。
"typeProperties": {
"format": {
"type": "TextFormat",
"columnDelimiter": "\t",
"nullValue": "NULL",
"treatEmptyAsNull": true,
"skipLineCount": 0,
"firstRowAsHeader": false},
...
}
我还看到了一个问题:Azure Data Factory - can't convert from "null" to datetime field
但是它仍然不能解决我的问题。