我已经设置了一个Azure数据工厂管道,用于将数据从SQL Server数据库中的一个表传输到我们的新Azure搜索服务。传输作业持续失败,并出现以下错误:
复制活动在Sink端遇到用户错误: GatewayNodeName = SQLMAIN01,错误码= UserErrorAzuerSearchOperation,'类型= Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,消息=错误 将数据写入Azure搜索索引时发生 ' 001'源= Microsoft.DataTransfer.ClientLibrary.AzureSearch,''类型= Microsoft.Rest.Azure.CloudException,消息=操作 返回了无效的状态代码 ' RequestEntityTooLarge'源= Microsoft.Azure.Search,'
根据我迄今为止所阅读的内容,Request Entity Too Large错误是REST API中发现的标准HTTP错误413。在我所做的所有研究中,没有什么能帮助我理解如何真正诊断和解决这个错误。
是否有人使用Azure的特定上下文处理此问题?我想了解如何将所有数据库数据导入Azure搜索服务。如果可以在Azure端进行调整以增加允许的请求大小,那么在我在互联网或Azure文档中看到的任何地方都无法轻易获得这样做的过程。
答案 0 :(得分:1)
此错误表示Azure Search汇入Azure搜索的批量大小太大。默认批处理大小为1000个文档(行)。您可以使用Azure搜索接收器的 writeBatchSize 属性将其减小到可以平衡大小和性能的值。请参阅Copy Activity Properties文章中的Push data to an Azure Search index by using Azure Data Factory。
例如,可以在接收器上配置 writeBatchSize ,如下所示:
"sink": { "type": "AzureSearchIndexSink", "writeBatchSize": 200 }