Azure data factory 将csv文件从blob容器复制到Azure SQL DB时,获取null和空字符串时出错

Azure data factory 将csv文件从blob容器复制到Azure SQL DB时,获取null和空字符串时出错,azure-data-factory,azure-blob-storage,Azure Data Factory,Azure Blob Storage,我尝试了数据类型的所有组合,但每次我的数据工厂管道都会出现以下错误: { “错误代码”:“2200”, “message:“ErrorCode=UserErrorColumnNameNotAllowFull,'Type=Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,message=Empty或在列名2中找到Null字符串。请确保列名不为Null,然后重试,'Source=Microsoft.DataTransfer.Co

我尝试了数据类型的所有组合,但每次我的数据工厂管道都会出现以下错误:

{ “错误代码”:“2200”, “message:“ErrorCode=UserErrorColumnNameNotAllowFull,'Type=Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,message=Empty或在列名2中找到Null字符串。请确保列名不为Null,然后重试,'Source=Microsoft.DataTransfer.Common'”, “failureType”:“UserError”, “目标”:“xxx”, “详情”:[] }

我的复制数据源代码如下:
{
“名称”:“xxx”,
“说明”:“uuu”,
“类型”:“复制”,
“dependsOn”:[],
“政策”:{
“超时”:“7.00:00:00”,
“重试”:0,
“重试间隔秒”:30,
“secureOutput”:false,
“secureInput”:false
},
“用户属性”:[],
“类型属性”:{
“来源”:{
“类型”:“DelimitedTextSource”,
“存储设置”:{
“类型”:“azureblobstorageradsettings”,
“递归”:正确,
“通配符文件名”:“*”
},
“格式设置”:{
“类型”:“DelimitedTxtReadSettings”
}
},
“水槽”:{
“类型”:“AzureSqlSink”
},
“enableStaging”:false,
“翻译人员”:{
“类型”:“表格转换器”,
“映射”:[
{
“来源”:{
“名称”:“人口ID”,
“类型”:“Guid”
},
“水槽”:{
“名称”:“人口ID”,
“类型”:“字符串”
}
},
{
“来源”:{
“名称”:“输入时间”,
“类型”:“日期时间”
},
“水槽”:{
“名称”:“输入时间”,
“类型”:“日期时间”
}
},
{
“来源”:{
“名称”:“输入计数”,
“类型”:“十进制”
},
“水槽”:{
“名称”:“输入计数”,
“类型”:“十进制”
}
},
{
“来源”:{
“名称”:“输入生物量”,
“类型”:“十进制”
},
“水槽”:{
“名称”:“输入生物量”,
“类型”:“十进制”
}
},
{
“来源”:{
“名称”:“输入编号”,
“类型”:“十进制”
},
“水槽”:{
“名称”:“输入编号”,
“类型”:“十进制”
}
},
{
“来源”:{
“名称”:“utcOffset”,
“类型”:“字符串”
},
“水槽”:{
“名称”:“utcOffset”,
“类型”:“Int32”
}
},
{
“来源”:{
“名称”:“fishGroupName”,
“类型”:“字符串”
},
“水槽”:{
“名称”:“fishgroupname”,
“类型”:“字符串”
}
},
{
“来源”:{
“名称”:“yearClass”,
“类型”:“字符串”
},
“水槽”:{
“名称”:“yearclass”,
“类型”:“字符串”
}
}
]
}
},
“投入”:[
{
“referenceName”:“DelimitedTextFTDimensions”,
“类型”:“DatasetReference”
}
],
“产出”:[
{
“referenceName”:“AzureSqlTable1”,
“类型”:“DatasetReference”
}
]
}
谁能帮我理解这个问题。我在一些博客中看到,他们要求我使用treatnullasempty,但不允许我修改JSON。有没有办法做到这一点???

我建议使用DerivedColumn可以帮助您构建表达式来替换空列

例如:

派生列,如果
Column_2
为null=
true
,则返回'dd':

iifNull(Column_2,'dd')

映射列

参考:


希望这有帮助。

修复了它。这是一个简单的修复,因为我在destination中的一列被标记为not null,我将其更改为null,它就工作了。

您的意思是CSV文件第2列中有空值吗?你能给我们看一下你的源数据集吗?你可以接受(标记)它作为答案。这可能对其他社区成员有益。非常感谢。