Share via


針對 Azure Data Factory 與 Azure Synapse 中的 Azure Data Lake Storage 連接器進行疑難排解

適用於:Azure Data Factory Azure Synapse Analytics

提示

試用 Microsoft Fabric 中的 Data Factory,這是適用於企業的全方位分析解決方案。 Microsoft Fabric 涵蓋從資料移動到資料科學、即時分析、商業智慧和報告等所有項目。 了解如何免費啟動新的試用版

本文提供針對 Azure Data Factory 與 Azure Synapse 中 Azure Data Lake Storage Gen1 與 Gen2 連接器常見問題進行疑難排解的建議。

Azure Data Lake Storage Gen1

錯誤訊息:基礎連線已關閉:無法為 SSL/TLS 安全通道建立信任關係。

  • 徵兆:複製活動因下列錯誤而失敗:

    Message: ErrorCode = UserErrorFailedFileOperation, Error Message = The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel.

  • 原因:憑證驗證在 TLS 交握期間失敗。

  • 解決方法:因應措施是,使用分段複本跳過 Azure Data Lake Storage Gen1 的傳輸層安全性 (TLS) 驗證。 您需要重現此問題,並收集網路監視器 (netmon) 追蹤,然後與您的網路小組連絡以檢查區域網路設定。

    Diagram of Azure Data Lake Storage Gen1 connections for troubleshooting issues.

錯誤訊息:遠端伺服器傳回錯誤:(403) 禁止

  • 徵兆:複製活動因下列錯誤而失敗:

    Message: The remote server returned an error: (403) Forbidden. Response details: {"RemoteException":{"exception":"AccessControlException""message":"CREATE failed with error 0x83090aa2 (Forbidden. ACL verification failed. Either the resource does not exist or the user is not authorized to perform the requested operation.)....

  • 原因:其中一個可能原因是您使用的服務主體或受控識別沒有存取特定資料夾或檔案的權限。

  • 解決方法:對您需要複製的所有資料夾與子資料夾,授與適當的權限。 如需詳細資訊,請參閱將資料複製到 Azure Data Lake Storage Gen1 或從該處複製資料

錯誤訊息:無法使用服務主體取得存取權杖。 ADAL 錯誤:service_unavailable

  • 徵兆:複製活動因下列錯誤而失敗:

    Failed to get access token by using service principal. ADAL Error: service_unavailable, The remote server returned an error: (503) Server Unavailable.

  • 原因︰當 Microsoft Entra ID 所擁有的 Service Token Server (STS) 無法使用時 (表示過於忙碌而無法處理要求),其會傳回 HTTP 錯誤 503。

  • 解決方法:在數分鐘後重新執行複製活動。

Azure Data Lake Storage Gen2

錯誤碼:ADLSGen2OperationFailed

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

  • 原因與建議:有不同的原因可能會導致此錯誤。 請查看下列清單,以了解可能原因的分析與相關建議。

    原因分析 建議
    若 Azure Data Lake Storage Gen2 擲回錯誤,表示某些作業失敗。 檢查 Azure Data Lake Storage Gen2 擲回的詳細錯誤訊息。 若錯誤是暫時性失敗,請重試一次作業。 若您需要進一步協助,請連絡 Azure 儲存體支援服務,並提供錯誤訊息中的要求識別碼。
    若錯誤訊息包含字串 "Forbidden",則您所使用的服務主體或受控識別可能沒有足夠權限可存取 Azure Data Lake Storage Gen2。 若要針對此錯誤進行疑難排解,請參閱複製及轉換 Azure Data Lake Storage Gen2 中的資料
    若錯誤訊息包含字串 "InternalServerError",則錯誤會由 Azure Data Lake Storage Gen2 傳回。 此錯誤可能是因為暫時性失敗所造成。 若是如此,請重試該作業。 若問題持續發生,請連絡 Azure 儲存體支援服務,並提供錯誤訊息中的要求識別碼。
    如果錯誤訊息為 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 Data Factory 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 儲存體帳戶網路設定,以查看是否已停用公用網路存取。 如果停用,請使用受控虛擬網路整合執行階段,並建立私人端點以存取。 如需詳細資訊,請參閱受控虛擬網路使用受控 VNet 和私人端點建置複製管線

    2. 如果您已在 Azure 儲存體帳戶網路設定中啟用選取的虛擬網路和 IP 位址:

      1. 這可能是因為您的儲存體帳戶防火牆設定不允許您整合執行階段的某些 IP 位址範圍。 將 Azure 整合執行階段 IP 位址或自我裝載整合執行階段 IP 位址新增至儲存體帳戶防火牆。 針對 Azure 整合執行階段 IP 位址,請參閱 Azure Integration Runtime IP 位址。若要了解如何在儲存體帳戶防火牆中新增 IP 範圍,請參閱管理 IP 網路規則

      2. 如果您在防火牆中允許受信任的 Azure 服務存取此儲存體帳戶,則必須在複製活動中使用受控識別驗證

      如需 Azure 儲存體帳戶防火牆設定的詳細資訊,請參閱設定 Azure 儲存體防火牆和虛擬網路

    3. 如果您使用服務主體或受控識別驗證,請將執行複製的適當權限授與服務主體或受控識別。 針對來源,至少授與 [儲存體 Blob 資料讀者] 角色。 針對接收器,至少授與 [儲存體 Blob 資料參與者] 角色。 如需詳細資訊,請參閱在 Azure Data Lake Storage Gen2 中複製和轉換資料

如需更多疑難排解的協助,請嘗試下列資源: