了解如何針對由於執行階段變更而造成的 U-SQL 執行階段失敗進行疑難排解

重要

Azure Data Lake Analytics 於 2024 年 2 月 29 日淘汰。 透過此公告深入瞭解。

針對數據分析,您的組織可以使用 Azure Synapse AnalyticsMicrosoft Fabric

Azure Data Lake U-SQL 執行階段 (包括編譯器、最佳化工具和作業管理員) 會處理您的 U-SQL 程式碼。

選擇您的 U-SQL 執行階段版本

當您從 Visual Studio、ADL SDK 或 Azure Data Lake Analytics 入口網站提交 U-SQL 作業時,您的作業將會使用目前可用的預設執行階段。 新版本的U-SQL運行時間會定期發行,並同時包含次要更新和安全性修正。

您也可以選擇自定義運行時間版本;因為您想要試用新的更新,所以需要留在舊版的運行時間上,或已針對無法等候一般新更新的回報問題提供 Hotfix。

警告

選擇與預設值不同的執行階段可能會中斷您的 U-SQL 作業。 請只使用這些其他版本進行測試。

在少數情況下,Microsoft 支援服務 可以將不同版本的運行時間釘選為帳戶的預設值。 請確定您儘快還原此釘選。 如果您仍然釘選至該版本,則其會在稍後的日期到期。

監視您的作業 U-SQL 執行階段版本

您可以透過 Visual Studio 的作業瀏覽器或Azure 入口網站的作業歷程記錄,在帳戶的作業歷程記錄中查看過去作業已使用的執行階段版本。

  1. 在 Azure 入口網站中,移至您的 Data Lake Analytics 帳戶。
  2. 選取 [檢視所有作業]。 帳戶中所有作用中作業和最近完成作業的清單即會出現。
  3. 您可以選擇性地選取 [篩選],以協助您依時間範圍作業名稱和作者值尋找作業。
  4. 您可以查看已完成作業中使用的執行階段。

顯示過去作業的執行階段版本

可用的執行階段版本會隨著時間變更。 默認運行時間一律稱為「預設」,我們至少保留一段時間可用的先前運行時間,並基於各種原因提供特殊運行時間。 明確命名的執行階段通常會遵循下列格式 (斜體用於變數部分,而 [] 表示選用部分):

release_YYYYMMDD_adl_buildno[_modifier]

例如,release_20190318_adl_3394512_2 表示 2019 年 3 月 18 日執行階段版本的組建 3394512 第二個版本,release_20190318_adl_3394512_private則表示相同版本的私人組建。 注意:日期與該版本上次簽入的日期相關,不一定是官方發行日期。

針對 U-SQL 執行階段版本問題進行疑難排解

您可能會遇到兩個可能的執行時間版本問題:

  1. 指令碼或某些使用者程式碼正在將行為從一個版本變更為下一個版本。 這類中斷性變更通常會發行版本資訊事先傳達。 如果您遇到這類重大變更,請連絡 Microsoft 支援服務 回報此中斷行為 (,以防尚未記載) ,並針對較舊的運行時間版本提交作業。

  2. 您已明確或隱含地使用非預設運行時間,當它已釘選到您的帳戶,且該運行時間在一段時間后已移除。 如果您遇到遺漏的執行階段,請升級您的指令碼,以搭配目前的預設執行階段執行。 如果您需要更多時間,請連絡 Microsoft 支援服務

已知問題

  1. 在 USQL 指令碼中參考 Newtonsoft.Json 檔案 12.0.3 版或更新版本會導致下列編譯失敗:

    「抱歉;在 Data Lake Analytics 帳戶中的作業執行速度有可能會變慢,或是無法完成。 非預期的問題導致無法自動將這項功能還原到您的 Azure Data Lake Analytics 帳戶。 已連絡 Azure Data Lake 工程師進行調查。」

    呼叫堆疊將包含的位置:
    System.IndexOutOfRangeException: Index was outside the bounds of the array.
    at Roslyn.Compilers.MetadataReader.PEFile.CustomAttributeTableReader.get_Item(UInt32 rowId)
    ...

    解決方案:使用 Newtonsoft.Json 檔案 v12.0.2 或更低版本。

  2. 客戶可能會在其市集上看到暫存檔和資料夾。 這些是在正常作業執行過程中產生的,但通常會在客戶看到之前將其刪除。 在某些情況下,這些是罕見且隨機的,它們可能會保持可見狀態。 它們最終會遭到刪除,且永遠不會算為用戶記憶體的一部分,或產生任何形式的費用。 根據客戶的工作邏輯,其可能會造成問題。 例如,如果作業列舉資料夾中的所有檔案,然後比較檔案清單,其可能會由於非預期的暫存檔存在而失敗。 同樣地,如果下游作業列舉給定資料夾中的所有檔案,進行進一步處理,其也可能列舉暫存檔。

    解決方案:修正會在運行時間中識別,其中暫存檔案會儲存在帳戶層級暫存資料夾中,而不是目前的輸出資料夾。 暫存檔會寫入這個新的暫存資料夾中,並在作業執行結束時刪除。
    由於此修正程式正在處理客戶數據,因此在發行之前,請務必在 MSFT 內妥善驗證此修正。 此修正預期會在 2021 年中間以 Beta 運行時間的形式提供,並在 2021 年後半作為預設運行時間。

另請參閱