Azure data factory 无法在Azure Data Explorer标量列中接受空值

Azure data factory 无法在Azure Data Explorer标量列中接受空值,azure-data-factory,azure-data-factory-2,azure-data-explorer,azure-data-flow,Azure Data Factory,Azure Data Factory 2,Azure Data Explorer,Azure Data Flow,我使用Azure Data Factory将数据摄取到Azure Data Explorer中,由于数据转换问题,摄取一直失败 表定义: 。创建表格概览(…,年龄:真实) 当我尝试将null值摄取到年龄列中时,会发生异常 对目标CopyOverviewFromBlobToADE的操作失败:发生故障 在“水槽”一侧。 ErrorCode=UserErrorKustoWriteFailed,'Type=Microsoft.DataTransfer.Common.Shared.HybridDelive

我使用Azure Data Factory将数据摄取到Azure Data Explorer中,由于数据转换问题,摄取一直失败

表定义:
。创建表格概览(…,年龄:真实)

当我尝试将
null
值摄取到年龄列中时,会发生异常

对目标CopyOverviewFromBlobToADE的操作失败:发生故障 在“水槽”一侧。 ErrorCode=UserErrorKustoWriteFailed,'Type=Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,Message=Write to Kusto失败,出现以下错误:源发生错误: “数据阅读器”。错误:'一个或多个错误 发生“”,Source=Microsoft.DataTransfer.Runtime.KustoConnector,''Type=Kusto.inset.Exceptions.insetClientException,Message=An 源“DataReader”发生错误。错误:'一个或多个错误 发生“”,Source=Kusto.inset,''Type=Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,Message=Column “Age”包含无效值“null”。无法将“null”转换为类型 “Double.”,Source=Microsoft.DataTransfer.Common,“Type=System.FormatException,Message=Input 字符串格式不正确,Source=mscorlib,'

上面写着: 所有非字符串数据类型都包含一个特殊的“null”值,表示缺少数据或数据不匹配。例如,尝试将字符串“abc”摄取到int列中会产生此值


那么空值是如何被接受的呢?

我解决了这个问题,从一个记录中删除了Age属性,该记录将其设置为“null”

因此,在我的例子中,源是带有json文件的Blob,如果文档具有有效的实类型值,json将是{…“Age”:“2.5”,…},如果缺少Age,我必须完全去掉文档中的Age属性

事实证明,在ADF中,您可以使用数据流中的以下派生列表达式除去该属性:
iif(等于(年龄,'None'),toString(null()),年龄)。

在摄入时ADX不将字符串文字“null”识别为空值的指示符。 空字符串或省略值/字段将导致接收空值