我已经设置了一个Azure数据工厂管道,将数据从我们的SQL Server数据库中的一个表传输到我们的新Azure搜索服务。转移作业不断失败,给出以下错误:
复制活动在接收器侧遇到一个用户错误: GatewayNodeName = sqlmain01,errorCode = userErrorazuersearchoperation,'type = microsoft.datatransfer.common.shared.hhybriddeliveryexception,messages =错误=错误 在将数据写入Azure搜索索引时发生 '001'。 返回了无效状态代码 'requestentityToolarge',source = microsoft.azure.search,'。
从我到目前为止阅读的内容中,请求实体太大错误是REST API中发现的标准HTTP错误413。不过,在我所做的所有研究中,没有什么可以帮助我理解如何真正诊断和解决此错误的方法。
是否有人处理了Azure的特定上下文?我想找出如何将所有数据库数据传达到我们的Azure搜索服务中。如果可以在Azure方面进行调整以增加允许的请求规模,那么这样做的过程肯定是我在Internet上或Azure文档中看到的任何地方都不易出现的。
此错误意味着Azure搜索接收器编写的Azure搜索中的批处理大小太大。默认批处理大小为1000个文档(行(。您可以使用 writeBatchSize 属性的Azure Search sink的属性来平衡大小和性能的值。请参阅使用Azure Data Factory文章中的Azure搜索索引中的复制活动属性到Azure搜索索引。
例如, writeBatchSize 可以在接收器上配置,如下所示:
"sink": { "type": "AzureSearchIndexSink", "writeBatchSize": 200 }