错误 - Azure 数据工厂从 SQL 数据库传输到 Azure 搜索

Error - Azure Data Factory transfer from SQL Database to Azure Search

我已经设置了一个 Azure 数据工厂管道,以将数据从 SQL 服务器数据库中的一个 table 传输到我们新的 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 文档中看到的任何地方肯定都不容易找到这样做的过程。

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

例如,writeBatchSize可以在sink上配置如下:

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