排查 Azure 数据工厂和 Azure Synapse 中的 Azure Data Lake Storage 连接器问题

适用于: Azure 数据工厂 Azure Synapse Analytics

提示

试用 Microsoft Fabric 中的数据工厂,这是一种适用于企业的一站式分析解决方案。 Microsoft Fabric 涵盖从数据移动到数据科学、实时分析、商业智能和报告的所有内容。 了解如何免费开始新的试用

本文提供有关排查 Azure 数据工厂和 Azure Synapse 中常见的 Azure Data Lake Storage Gen2 连接器问题的建议。

错误代码:ADLSGen2OperationFailed

  • 消息:ADLS Gen2 operation failed for: %adlsGen2Message;.%exceptionData;.

  • 原因和建议:此错误可能由不同的原因导致。 请查看以下列表,了解可能的原因分析和相关建议。

    原因分析 建议
    如果该错误是由 Azure Data Lake Storage Gen2 引发的,则表明某个操作失败。 请查看 Azure Data Lake Storage Gen2 引发的错误的详细消息。 如果错误是暂时性故障,请重试该操作。 如需更多帮助,请联系 Azure 存储支持部门并提供错误消息中的请求 ID。
    如果错误消息包含“禁止”这一字符串,则你使用的服务主体或托管标识可能没有足够的权限访问 Azure Data Lake Storage Gen2。 若要排查此错误,请参阅在 Azure Data Lake Storage Gen2 中复制和转换数据
    如果错误消息包含字符串“InternalServerError”,则该错误是由 Azure Data Lake Storage Gen2 返回的。 此错误可能是由暂时性故障导致的。 如果是,请重试操作; 如果问题仍然存在,请联系 Azure 存储支持部门并提供错误消息中的请求 ID。
    如果错误消息为 Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host,则集成运行时在连接到 Azure Data Lake Storage Gen2 时出现网络问题。 在 Azure Data Lake Storage Gen2 的防火墙规则设置中,确保 Azure 数据工厂 IP 地址在允许列表中。 有关详细信息,请参阅配置 Azure 存储防火墙和虚拟网络
    如果错误消息为 This endpoint does not support BlobStorageEvents or SoftDelete,你正在使用 Azure Data Lake Storage Gen2 链接服务连接到启用 Blob 存储事件或软删除的 Azure Blob 存储帐户。 请尝试以下选项:
    1. 如果仍要使用 Azure Data Lake Storage Gen2 链接服务,请将Azure Blob 存储升级到 Azure Data Lake Storage Gen2。 有关详细信息,请参阅升级具有 Azure Data Lake Storage Gen2 功能的 Azure Blob 存储
    2. 将链接服务切换到 Azure Blob 存储。
    3. 禁用 Azure Blob 存储帐户中的 Blob 存储事件或软删除。

“请求 Azure Data Lake Storage Gen2 帐户导致超时”错误

  • 消息

    • 错误代码 = UserErrorFailedBlobFSOperation
    • 错误消息 = BlobFS operation failed for: A task was canceled.
  • 原因:此问题是由 Azure Data Lake Storage Gen2 接收器超时错误引起的,此错误通常发生在自承载集成运行时 (IR) 计算机上。

  • 建议

    • 如果可能,请将自承载 IR 计算机和目标 Azure Data Lake Storage Gen2 帐户置于同一区域中。 这可避免随机超时错误,还可提高性能。

    • 检查是否有特殊的网络设置(例如 ExpressRoute),并确保网络具有足够的带宽。 建议在总体带宽较低时调低自承载 IR 并发作业设置。 这样做有助于避免跨多个并发作业的网络资源竞争。

    • 如果文件大小适中或较小,请为非二进制复制使用较小的块大小,以缓解此类超时错误。 有关详细信息,请参阅 Blob 存储放置块

      若要指定自定义块大小,请在 JSON 文件编辑器中编辑属性,如下所示:

      "sink": {
          "type": "DelimitedTextSink",
          "storeSettings": {
              "type": "AzureBlobFSWriteSettings",
              "blockSizeInMB": 8
          }
      }
      

复制活动无法从 Azure Data Lake Storage Gen2 选取文件

  • 症状:当文件名为“Asset_Metadata”时,复制活动无法从 Azure Data Lake Storage Gen2 选取文件。 此问题仅出现在 Parquet 类型数据集中。 文件名相同的其他类型的数据集可正常工作。

  • 原因:为了向后兼容,_metadata 被视为文件名中的保留子字符串。

  • 建议:更改文件名以避免以下 Parquet 的保留列表:

    1. 文件名包含 _metadata
    2. 文件名以 .(点)开头。

错误代码:ADLSGEN2ForbiddenError

  • 消息ADLS Gen2 failed for forbidden: Storage operation % on % get failed with 'Operation returned an invalid status code 'Forbidden'.

  • 原因: 有两个可能的原因:

    1. 集成运行时被 Azure 存储帐户防火墙设置中的网络访问阻止。
    2. 服务主体或托管标识没有足够的权限访问数据。
  • 建议

    1. 检查 Azure 存储帐户网络设置以查看是否已禁用公共网络访问。 如果禁用,请使用托管虚拟网络集成运行时并创建专用终结点以进行访问。 有关详细信息,请参阅托管虚拟网络使用托管虚拟网络和专用终结点构建复制管道

    2. 如果在 Azure 存储帐户网络设置中启用了选定的虚拟网络和 IP 地址:

      1. 这是有可能的,因为你的存储帐户防火墙设置不允许集成运行时的某些 IP 地址范围。 将 Azure 集成运行时 IP 地址或自托管集成运行时 IP 地址添加到存储帐户防火墙。 有关 Azure 集成运行时 IP 地址,请参阅 Azure 集成运行时 IP 地址;要了解如何在存储帐户防火墙中添加 IP 范围,请参阅管理 IP 网络规则

      2. 如果允许受信任的 Azure 服务在防火墙中访问此存储帐户,则必须在复制活动中使用托管标识身份验证

      有关 Azure 存储帐户防火墙设置的详细信息,请参阅配置 Azure 存储防火墙和虚拟网络

    3. 如果使用服务主体或托管标识身份验证,请授予服务主体或托管标识执行复制的相应权限。 对于源,至少为“存储 Blob 数据读取者”角色。 对于接收器,至少为“存储 Blob 数据参与者”角色。 有关详细信息,请参阅复制和转换 Azure Data Lake Storage Gen2 中的数据

尝试通过以下资源获得故障排除方面的更多帮助: