2017-04-17 84 views
1

我已经设置了一个Azure数据工厂管道来将数据从我们的SQL Server数据库中的一个表传输到我们的新Azure搜索服务。转移工作连续失败给了以下错误:错误 - 从SQL数据库到Azure搜索的Azure数据工厂传输

Copy activity encountered a user error at Sink side: GatewayNodeName=SQLMAIN01,ErrorCode=UserErrorAzuerSearchOperation,'Type=Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,Message=Error happened when writing data to Azure Search Index '001'.,Source=Microsoft.DataTransfer.ClientLibrary.AzureSearch,''Type=Microsoft.Rest.Azure.CloudException,Message=Operation returned an invalid status code 'RequestEntityTooLarge',Source=Microsoft.Azure.Search,'.

从我迄今阅读,请求实体过大的误差是REST API里面发现了一个标准的HTTP错误413。在我所做的所有研究中,没有任何东西能帮助我理解如何真正诊断和解决这个错误。

有没有人用Azure的特定上下文处理过这个问题?我想知道如何将我们所有的数据库数据都放到我们的Azure搜索服务中。如果可以在Azure方面进行调整以增加允许的请求大小,那么在Internet上或Azure文档中所看到的任何地方都无法轻松实现此过程。

+0

请仔细阅读[在什么情况下我想补充“紧急”或其他类似的短语我的问题,为了获得更快的答案?](https://meta.stackoverflow.com/q/326569) - 总结是,这不是解决志愿者的理想方式,并且可能会对获得答案起反作用。请不要将这添加到您的问题。 – halfer

回答

1

此错误表示由Azure搜索写入Azure搜索的批量大小过大。默认的批量大小是1000个文档(行)。您可以通过使用Azure搜索接收器的writeBatchSize属性将其减小到平衡大小和性能的值。请参阅Copy Activity PropertiesPush data to an Azure Search index by using Azure Data Factory文章。

例如,writeBatchSize可以在水槽配置如下:

"sink": { "type": "AzureSearchIndexSink", "writeBatchSize": 200 }

+0

是否将此writeBatchSize添加到链接服务,输入数据集,输出数据集或管道?此外,我是否可以通过使用“添加活动”按钮并添加到现有的JSON代码来从Azure门户UI中执行此操作? – Stpete111

+0

@ Stpete111,为答案增加了一个例子。 –

+0

这解决了我的问题。非常感谢尤金。 – Stpete111

相关问题