【问题标题】:Copy activitiy (from Cosmos SQL api to ADLS gen2) getting failed in Synapse复制活动(从 Cosmos SQL api 到 ADLS gen2)在 Synapse 中失败
【发布时间】:2022-02-17 14:35:56
【问题描述】:

我正在尝试运行一个管道,该管道将数据从 Cosmos (SQL API) 复制到 ADLS gen2 以用于多个表。 Lookup Activity 正在传递查询列表,Copy Activity 使用自托管 IR 在 ForEach 内运行。 但是它在第一次迭代后一直失败,并出现以下错误:

对目标副本 data1_copy1 的操作失败:“接收器”端发生故障。 ErrorCode=UserErrorFailedFileOperation,'Type=Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,Message=在路径 tfs/OU Cosmos Data/LATAM/fact\dl-br-prod.上传文件失败,Source=Microsoft.DataTransfer.Common,' 'Type=Microsoft.Azure.Documents.RequestTimeoutException,Message=请求超时。

此外,我确信这不是任何一个特定表的问题,因为我尝试以不同的顺序传递查询,在每次尝试中,第一个通过的查询成功完成,并且对于其余的迭代,复制活动运行一段时间并最终失败。

到目前为止,我已经尝试过以下操作:

  1. 以顺序模式运行 ForEach
  2. 将接收端的块大小(MB)更改为 20MB。默认为 100MB

【问题讨论】:

  • 你找到解决办法了吗?
  • @KarthikBhyresh-MT 到目前为止,Microsoft 支持建议的最佳替代方案是改用 Synapse Link。但它也有其自身的局限性,因为我们需要使用自托管 IR。
  • @KarthikBhyresh-MT 参考我的最新答案以获得结论性发现

标签: azure azure-cosmosdb azure-data-factory azure-synapse azure-data-lake-gen2


【解决方案1】:

您能否查看官方 MS 文档中建议的解决方法,因为这涉及自托管 IR。

Request to Azure Data Lake Storage Gen2 account caused a timeout error

原因:该问题是由 Azure Data Lake Storage Gen2 接收器超时错误引起的,该错误通常发生在自托管集成运行时 (IR) 计算机上。

推荐:

  1. 如果可能,请将您的自托管 IR 计算机和目标 Azure Data Lake Storage Gen2 帐户放在同一区域中。这可以帮助 避免随机超时错误并产生更好的性能。

  2. 检查是否有特殊的网络设置,例如 ExpressRoute,并确保网络有足够的带宽。我们 建议您在以下情况下降低自托管 IR 并发作业设置 整体带宽较低。这样做可以帮助避免网络资源 多个并发作业之间的竞争。

  3. 如果文件大小适中或较小,请使用较小的块大小进行非二进制复制以减轻此类超时错误。了解更多信息, 见Blob Storage Put Block

【讨论】:

  • 实际上我尝试遵循建议:自托管 IR 和存储帐户都配置为相同的位置。数据大小以约 10 GB 为单位,因此将 Write Batch Size 保留为默认值,即 100 MB。至于 n/w 带宽,有单独的管道可以成功地将数据写入 ~TBs。有什么我遗漏的具体内容吗?
【解决方案2】:

我得到了 Microsoft Cosmos 产品团队的回复:

根本原因:

SDK 客户端配置了一些超时值和请求 需要更长的时间。

超时的原因是网关延迟增加(网关有 无延迟 SLA),因为结果大小很大。这可能是预期的 (更多的数据往往需要更长的时间来读取、发送和接收)。

分辨率:

增加客户端使用的RequestTimeout。

拥有 Synapse 数据传输(使用 .NET 2.5.1 SDK 并拥有 Microsoft.DataTransfer 应用程序)可以增加 将 .NET SDK 上使用的 RequestTimeout 设置为更高的值。在较新的 SDK 中 版本,该值默认为 65 秒。

虽然我们选择完全绕过这条路线并包括 SynapseLink 或 Private Endpoint。

【讨论】:

    猜你喜欢
    • 2021-01-30
    • 2020-04-20
    • 2020-06-23
    • 2022-08-02
    • 1970-01-01
    • 2021-06-26
    • 2020-09-15
    • 2022-07-20
    • 2020-10-27
    相关资源
    最近更新 更多