我正在尝试通过Azure数据工厂(ADF)将数据从本地SQL服务器复制到Azure数据湖存储(ADLS)。一切似乎都正常,除了我运行(调试或触发)管道时,我收到错误消息:
{ “ errorCode”:“ 2200”, “消息”:“失败发生在'接收器'侧。ErrorCode = UserErrorAdlsFileWriteFailed,'Type = Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,Message =写入'AzureDataLakeStore'失败。消息:远程服务器返回错误:(411 )所需长度。响应详细信息:\ r \ n所需长度\ r \ n \ r \ n
所需长度
\ r \ n
HTTP错误411。请求必须分块或具有内容长度。
\ r \ n \ r \ n,Source = Microsoft.DataTransfer.ClientLibrary,''Type = System.Net.WebException,Message =远程服务器返回错误: (411)要求的长度。,Source = System,'“, “ failureType”:“ UserError”, “ target”:“ CopyData1” }
真正奇怪的是,以下管道确实起作用:
即读/写访问按预期方式工作。后者的管道还能够创建/覆盖sink.txt文件。
但是当我运行管道时
我收到所需长度错误。并且如果sink.txt存在,管道甚至会删除它!
我正在使用ADFv2,ADLS Gen1,ADF和ADLS驻留在同一订阅/资源组中,并使用自托管/ Azure集成运行时(分别用于SQL / ADLS)。 我已经测试了源语句,就像“ SELECT 1 Col”一样简单。还测试了没有数据集架构以及架构+映射的情况。
这是一个错误,还是我缺少一些东西? 哪个“长度”是必需的?
pipeline1.json
{
"name": "pipeline1",
"properties": {
"activities": [
{
"name": "CopyData1",
"type": "Copy",
"policy": {
"timeout": "7.00:00:00",
"retry": 0,
"retryIntervalInSeconds": 30,
"secureOutput": false,
"secureInput": false
},
"typeProperties": {
"source": {
"type": "SqlSource",
"sqlReaderQuery": "SELECT TOP 1 'x' AS col1 FROM sys.tables"
},
"sink": {
"type": "AzureDataLakeStoreSink"
},
"enableStaging": false,
"dataIntegrationUnits": 0
},
"inputs": [
{
"referenceName": "table1",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "sink1",
"type": "DatasetReference"
}
]
}
]
}
}
table1.json
{
"name": "table1",
"properties": {
"linkedServiceName": {
"referenceName": "SqlServer1",
"type": "LinkedServiceReference"
},
"type": "SqlServerTable",
"typeProperties": {
"tableName": "sys.tables"
}
}
}
sink1.json
{
"name": "sink1",
"properties": {
"linkedServiceName": {
"referenceName": "AzureDataLakeStore1",
"type": "LinkedServiceReference"
},
"type": "AzureDataLakeStoreFile",
"structure": [
{
"name": "col1",
"type": "String"
}
],
"typeProperties": {
"format": {
"type": "TextFormat",
"columnDelimiter": ",",
"rowDelimiter": "",
"nullValue": "\\N",
"treatEmptyAsNull": true,
"skipLineCount": 0,
"firstRowAsHeader": true
},
"fileName": "sink1.txt",
"folderPath": "myDir"
}
}
}
答案 0 :(得分:1)
您的自托管IR是否具有某些代理设置或经过特殊的网络设置?当ADF的ADLS连接器尝试与ADLS服务进行对话时,此类错误应由中间代理服务引起。