我一直在尝试通过具有直接到服务器视线的自托管 IR 使用复制活动将一些数据从 SQL Server 16 复制到 Snowflake。我试图在其中一列上启用动态范围分区,以便并行读取,但每次我尝试传递分区列(即使有/没有下限和上限)时,管道都会抛出以下错误 -
ErrorCode=InvalidParameter,'Type=Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,Message=属性“字典”的值无效:'值不能为空。参数名称:字典'.,Source=,''Type=System.ArgumentNullException,Message=Value 不能为空。
我检查了日志,正在创建的日志文件看起来像 -
sql_some_table_name_crt_ts_NA_09242023062959_0.txt
复制活动的解析输入如下 -
{
"source": {
"type": "SqlServerSource",
"additionalColumns": [
{
"name": "ADF_RUN_ID",
}
],
"sqlReaderQuery": "select somecolumns (that includes crt_ts) from some_table where ?DfDynamicRangePartitionCondition",
"queryTimeout": "02:00:00",
"isolationLevel": "ReadCommitted",
"partitionOption": "DynamicRange",
"partitionSettings": {
"partitionColumnName": "crt_ts",
"partitionUpperBound": "2024-10-16T12:59:59Z",
"partitionLowerBound": "2022-09-01T00:00:00Z"
}
},
"sink": {
"type": "SnowflakeV2Sink",
"preCopyScript": "",
"importSettings": {
"type": "SnowflakeImportCopyCommand",
"additionalCopyOptions": {
"ON_ERROR": "ABORT_STATEMENT"
},
"additionalFormatOptions": {
"TIME_FORMAT": "'0:HH:MI:SS.FF7'"
}
}
},
"enableStaging": true,
"stagingSettings": {
"linkedServiceName": {
"referenceName": "",
"type": "LinkedServiceReference"
},
"path": "staging"
},
"enableSkipIncompatibleRow": false,
"logSettings": {
"enableCopyActivityLog": true,
"copyActivityLogSettings": {
"logLevel": "Warning",
"enableReliableLogging": false
},
"logLocationSettings": {
"linkedServiceName": {
"referenceName": "",
"type": "LinkedServiceReference"
},
"path": "logging"
}
}
这让我觉得,虽然该活动在列出源时确实自行计算出上限和下限,但当它将其分割为范围时,第一个范围的下限将作为 NA 发送。这又给出了我看到的错误消息。
这感觉像是一个不可避免的错误。 谁能帮我弄清楚为什么我会收到此错误,或者是否有人以前遇到过此错误 - 您是如何解决的?
非常感谢!
,Message=属性“字典”的值无效:“值不能为空”。参数名称:字典'
我在我的环境中使用示例数据尝试了相同的操作,它工作正常,请检查您使用的数据是否正确。
上述错误可能由以下几个原因引起:
partitionLowerBound
和partitionUpperBound
)的格式是否正确并落在您的数据范围内,如果它不在您的数据范围内,您可能会收到此类错误。如果问题仍然存在,请在此处
提出支持票