管理 Fabric 環境中的函式庫

Microsoft Fabric 環境提供靈活的 Spark 作業配置。 函式庫提供可重複使用的筆記本程式碼和 Spark 工作定義。 除了每個 Spark 執行時內建的函式庫外,你還可以在 Fabric 環境中安裝公開和自訂函式庫。

注意

導覽到你所在環境的工作區,選擇你的環境,圖書館管理選項位於左側導覽窗格。 如果你還沒建立環境,請參考建立、配置並使用環境,Fabric。

內建程式庫

在 Fabric 中,每個執行版本都預載了一組精心策劃的內建函式庫,這些函式庫在 Python、R、Java 和 Scala 上都經過優化,以提升效能、相容性與安全性。 環境中的 內建 函式庫頁面讓你可以根據所選執行環境瀏覽和搜尋這些預裝函式庫。

這些函式庫預設安裝在每個環境中,無法更改。 如果你在這個環境下運行筆記本或 Spark 作業定義,它們將可用。

要查看每個執行時的預裝套件及其版本清單,請參閱 Fabric 中的 Apache Spark 執行時。

注意

針對各筆記本的方式,例如 notebook 資源資料夾和內嵌安裝指令(例如在程式碼儲存格中的 %pip install 或 %conda install),都是手動的,且範圍包括會話或筆記本,並且不受環境發佈的影響。 在互動開發期間,將它們用於快速且一次性的程式庫新增。

這很重要

Fabric 支援多種管理套件的方式。 如需更多選項及最佳實務,請參見Fabric 中的 Apache Spark 函式庫管理。 如果你的工作區使用網路功能,如 Workspace 出站存取保護 或 受管理 VNets,則會封鎖對公共倉庫如 PyPI 的存取。 如需指引,請參閱管理網路存取受限的圖書館,Fabric。 如果內建函式庫版本不符合需求,你可以在外部儲存庫區塊指定想要的版本,或上傳自訂套件來覆蓋它們。

外部資料庫

你可以從像 PyPI、Conda 和 Maven 這類公開倉庫,或私人倉庫新增函式庫。 來源與發佈模式的選項會依儲存庫類型而異。 新增函式庫時,你會選擇發佈模式(完整或快速)。 關於每種模式的運作方式,詳見 「選擇圖書館的發佈模式」。

顯示外部倉庫函式庫畫面的截圖。

從公開的 Python 倉庫新增函式庫

公開的軟體庫允許你安裝來自 PyPI 或 Conda 的套件。

  1. 在 外部儲存庫 標籤中,選擇 新增資料庫。

  2. 選擇 從公開倉庫新增圖書館。

  3. 選擇來源(PyPI 或 Conda)。

  4. 在搜尋框輸入圖書館名稱。 當你輸入時,搜尋框會建議熱門圖書館,但清單有限。 如果你看不到你的圖書館,請輸入它的全名。

    截圖顯示從公開倉庫新增函式庫的過程。

    如果找到圖書館名稱,你就會看到可用的版本。

  5. 選擇版本,然後儲存並發佈你的環境。

從 Maven 新增函式庫

Fabric 支援直接從 Maven 軟體庫安裝函式庫。 要做到這點,請建立一個POM 檔案,列出您想安裝的 Maven 相依性,然後上傳到環境。

  1. 在 外部儲存庫 標籤中,選擇 匯入 pom.xml。

  2. 從你本機目錄中選擇 pom.xml 檔案。

注意

  • 匯入 pom.xml 僅支援於 Spark 4.0 及以後版本。
  • 匯入 pom.xml 僅支援完整模式。 在此模式下,Fabric 會為 Maven 套件執行相依性解析與衝突偵測。 如果任何函式庫與執行時不相容,發佈後會出現錯誤。
  • 啟用出站存取保護的工作區不支援匯入 pom.xml。 在這些工作區裡,從 Maven 下載所需的函式庫,然後以自訂函式庫形式上傳。

從私人倉庫新增程式庫

私人倉庫允許你使用 pip 或 conda 來安裝套件。

  1. 在 外部儲存庫 標籤中,選擇 新增資料庫。

  2. 選擇 從私人倉庫新增圖書館。

  3. 選擇來源(pip 或 conda)。

  4. 輸入函式庫名稱和版本。 請確保你正確輸入 圖書館名稱和版本,因為在私人資料庫中邊打字邊搜尋圖書館是不被支援的。 錯誤的套件資訊會導致發佈失敗。

從 Azure Artifact Feed 新增函式庫

Azure 工件資料源可設定為專案(私人)或組織(公開)。 Fabric 支援兩種瞄準鏡。 不論串流在 Azure DevOps 中的可見性如何,Fabric 總是透過認證過的資料工廠連線連線,因此即使是公開串流,也需要設定連線。

注意

Spark 3.5 支援從 Azure Artifact Feed 安裝函式庫。 在啟用 Private Link 或 Outbound Access Protection 的工作空間中,這功能不被支援。

為你的 Azure Artifact Feed 設定連線

環境不會直接儲存憑證。 相反地,你透過 Data Factory Connector 建立連線,並在 YML 檔案中以連線 ID 來參考。 了解更多關於 Azure Artifact Feed。

  1. 在Fabric入口網站右上角選擇設定齒輪圖示,然後選擇管理連線與閘道。

    顯示環境入口的截圖,外部倉庫連接器。

  2. 建立新的連線。 選擇 + New,然後選擇 Cloud作為類型,並選擇 Azure Artifact Feed (Preview) 作為連線類型。

    截圖,顯示選取Azure Artifact Feed(預覽)後建立新雲端連線的範例。

  3. 請以以下任一格式輸入訂閱網址:

    https://pkgs.dev.azure.com/{organization}/{project}/_packaging/{feed}/pypi/simple/
    https://{organization}.pkgs.visualstudio.com/{project}/_packaging/{feed}/pypi/simple/
    
  4. 透過個人存取令牌(PAT)或工作區身份授予資訊流存取權限

    • 對於 PAT 權杖模式,請在 ADO → 使用者設定 → 個人存取權杖 中產生具有 封裝: 讀取 範圍的 PAT。 在「Feed → 設定 → 權限」中,將 PAT 擁有者使用者新增至該摘要來源,角色設為 Feed Reader。
    • 在工作區身份模式中,工作區管理員會在工作區設定中啟用工作區身份→工作區身份→ + 工作區身份。 在 ADO Feed 中,找到 Feed settings → Permissions → Add users/groups,新增工作區身分(名稱與工作區相同),並賦予至少 Feed Reader 角色。
  5. 選擇允許 Code-First Artifacts 如筆記本存取此連線(預覽)。

    截圖顯示建立新連接器畫面的範例。

  6. 選取 [ 建立 ] 以儲存連線。 你應該會在連線清單裡看到它。

  7. 建立後記錄連線 ID。 您在下一步需要用到它。

準備並上傳 YML 檔案

建立一個 YML 檔案,列出你想安裝的套件,並參考連線 ID 而非訂閱源的 URL 和憑證。 Fabric 會利用連線 ID 在發佈時驗證並從你的串流中拉取套件。

標準的 PIP 設定會直接參考資訊來源的 URL 和憑證:

dependencies:
  - pip:
    - fuzzywuzzy==0.18.0
    - wordcloud==1.9.4
    - --index-url <URL_TO_THE_AZURE_ARTIFACT_FEED_WITH_AUTH>

對於 Fabric,請將網址替換成你之前記錄的連線 ID:

dependencies:
  - pip:
    - fuzzywuzzy==0.18.0
    - wordcloud==1.9.4
    - --index-url <YOUR_CONNECTION_ID>

直接將 YML 檔案上傳到環境,或切換到 YML 編輯器檢視 並貼上內容。 當你發佈環境時,Fabric 會從你的訂閱源讀取套件並持續保存。 如果你在 Azure 工件饋送中更新套件,請重新發佈環境以取得最新版本。

注意

  • 在 清單檢視中,你可以新增、移除或編輯現有訂閱源連線中的函式庫。 若要新增、移除或編輯一個串流連線本身,請切換到 YML 編輯器檢視 並直接更新 YML 檔案。
  • 你可以在 YML 檔案中指定 多個訂閱源 。 Fabric 會依照列出的順序搜尋,直到找到包裹為止。 即使這類公開的倉庫如 PyPI 和 Conda 沒被包含在 YML 檔案中,它們仍然會自動成為最後搜尋的對象。
  • 如果 YML 檔案中的套件在任何列出的訂閱源中都找不到,發佈就會失敗。 發佈前請再次確認套件名稱和版本。

管理外部函式庫

新增外部函式庫後,你可以從 外部儲存庫 區塊管理。

  • 篩選 – 使用套件名稱作為關鍵字來篩選外部函式庫清單。
  • 更新 – 選擇函式庫以在清單檢視中更新 其名稱、 版本或 來源類型 。 在 YML 編輯器檢視中,你也可以更新 Azure Artifact Feed 連線 ID。
  • 刪除 – 將滑鼠移到資料庫列上以顯示 刪除 選項,或選擇多個資料庫後再選擇 刪除。 你也可以使用 YML 編輯器檢視來移除函式庫。
  • 檢視相依關係 – 將滑鼠移至公共儲存庫庫上,選擇 「檢視相依 性」以取得其相依樹。 私有函式庫或來自 Azure Artifact Feed 的函式庫無法取得相依性資訊。
  • 匯出到.yml – 將完整的外部函式庫清單匯出成 .yml 檔案,並下載到您的本地目錄。

自訂程式庫

自訂程式庫是指由您或組織所建置的程式碼。 Fabric 支援自訂函式庫檔案,格式為 .whl、.py、.jar 及 .tar.gz。 和外部函式庫一樣,上傳自訂套件時,你會選擇發佈模式(完整或快速)。 詳情請參閱 選擇圖書館的發布模式。

注意

Fabric 僅支援 R 語言的 .tar.gz 檔案。 Python語言請使用 .whl 和 .py 檔案格式。

請使用自訂圖書館頁面的「上傳」和「下載」按鈕,從你本地目錄新增圖書館或本地下載。

顯示環境自訂程式庫畫面的螢幕擷取畫面。

要刪除一個函式庫,請將滑鼠移到該資料庫的列上並選擇垃圾桶圖示,或選擇多個函式庫後再選擇 刪除。

選擇函式庫的發佈模式

當你新增外部或自訂函式庫時,會選擇發佈模式。 全模式適用於所有函式庫來源與工作負載類型。 快速模式 可用於公開資料庫及大多數自訂函式庫格式,但僅限於執行筆記本時。

這張截圖顯示了圖書館管理畫面中不同模式的樣貌。

下表顯示每個函式庫來源所支援的發佈模式。

函式庫來源 完整模式 快速模式
公開倉庫(PyPI/Conda) 是的 是的
私有儲存庫(pip/conda) 是的 No
Azure Artifact Feed 是的 No
自訂 .whl、.py、.tar.gz 是的 是的
自訂 .jar 是的 No

選擇最適合你需求的模式

利用相依性複雜度和工作負載類型來決定哪種模式適合。

  • 完整模式 解決相依性、驗證相容性,並在發佈時建立穩定的函式庫快照。 該快照會在新工作階段開始時部署。 最適合較大的相依性集合(例如超過 10 個套件)、生產工作負載和管線。 發布通常需要 3 到 6 分鐘; 會話啟動取決於依賴項的大小,增加 1 到 3 分鐘。 為了在維持穩定快照的同時達成約 5 秒的會話啟動時間,建議使用全模式搭配 自訂即時資源池。
  • 快速模式 在發佈時跳過相依處理,改在筆記本啟動時安裝套件。 最適合較輕的依賴性集合、快速迭代和早期實驗。 發佈約需 5 秒完成;函式庫安裝於會話開始時進行。

你可以在開發過程中混合模式。 常見的模式是在快速模式中迭代,然後將驗證過的相依性移至完整模式,以獲得穩定的生產快照。 你也可以保留現有的完整模式快照不變,並在快速模式下疊加新的測試套件——完整模式快照先部署,然後快速模式套件安裝在上面。

模式限制與行為

在使用發佈模式時,請牢記這些限制。

  • 快速模式只適用於筆記本,無法支援 Spark 工作定義。
  • 若要在不同模式間移動自訂函式庫,先下載檔案,從目前模式移除,再上傳到目標模式。 不支援模式間的直接傳輸。
  • 安裝日誌不會出現在筆記本裡。 使用 監控(二級) 來追蹤進度並排除故障。
  • 當兩種模式都包含套件時,完整模式快照會優先應用。 快速模式套件會安裝在上面,並覆蓋任何同名的完整模式套件。
  • 當不同模式間存在重複封包時,快速模式版本僅覆蓋目前筆記本會話中的完整模式版本。 啟動新工作階段時,會先重新套用完整模式快照,然後在上面安裝快速模式套件。
  • 快速模式套件會在該語言的第一個程式碼單元執行時安裝。 例如,Python 套件在第一個 Python 儲存格執行時安裝,R 套件則在第一個 R 儲存格執行時安裝。