【问题标题】:Error - Azure Data Factory transfer from SQL Database to Azure Search错误 - Azure 数据工厂从 SQL 数据库传输到 Azure 搜索
【发布时间】:2017-04-17 13:18:04
【问题描述】:

我设置了一个 Azure 数据工厂管道,将数据从我们的 SQL Server 数据库中的一个表传输到我们新的 Azure 搜索服务。传输作业不断失败,出现以下错误:

复制活动在 Sink 端遇到用户错误: GatewayNodeName=SQLMAIN01,ErrorCode=UserErrorAzuerSearchOperation,'Type=Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,Message=Error 将数据写入 Azure 搜索索引时发生 '001'.,Source=Microsoft.DataTransfer.ClientLibrary.AzureSearch,''Type=Microsoft.Rest.Azure.CloudException,Message=Operation 返回无效的状态码 'RequestEntityTooLarge',Source=Microsoft.Azure.Search,'.

从我目前阅读的内容来看,Request Entity Too Large 错误是在 REST API 中发现的标准 HTTP 错误 413。尽管如此,在我所做的所有研究中,没有什么能帮助我理解如何真正诊断和解决这个错误。

有人在 Azure 的特定上下文中处理过这个问题吗?我想了解如何将我们所有的数据库数据导入我们的 Azure 搜索服务。如果可以在 Azure 端进行调整以增加允许的请求大小,那么我在 Internet 或 Azure 文档中看到的任何地方肯定都没有这样做的过程。

【问题讨论】:

标签: rest azure azure-cognitive-search azure-data-factory


【解决方案1】:

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

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

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

【讨论】:

  • 这个 writeBatchSize 会被添加到链接服务、输入数据集、输出数据集还是管道中?此外,我是否可以在 Azure 门户 UI 中使用“添加活动”按钮并添加到现有 JSON 代码来执行此操作?
  • @Stpete111,在答案中添加了一个示例。
猜你喜欢
  • 2016-10-02
  • 2019-05-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-18
  • 2021-01-15
  • 2020-11-26
  • 2021-06-15
相关资源
最近更新 更多