共用方式為


在 Notebook 上使用 Python 體驗

注意

此功能目前為預覽狀態。

Python 筆記本是一種新的體驗,建立於 Fabric 筆記本之上。 它是專為數據分析、視覺效果和機器學習而設計的多功能互動式工具。 它提供順暢的開發體驗,讓您撰寫和執行 Python 程式代碼。 這使得它成為數據科學家、分析師和 BI 開發人員的重要工具,特別是對於不需要巨量數據和分散式運算的探索工作。

使用 Python 筆記本,您可以取得:

  • 多個內建 Python 核心:Python 筆記本提供不含 Spark 的純 Python 程式代碼環境,預設提供兩個版本的 Python 核心 - Python 3.10 和 3.11,以及支援的原生 ipython 功能,例如 iPyWidget、magic 命令。

  • 符合成本效益:新的 Python 筆記本預設會在具有 2vCores/16GB 記憶體的單一節點叢集上執行,以提供節省成本的好處。 這可確保在數據探索專案中,即使資料量較小,也能有效利用資源。

  • Lakehouse & 資源具備原生可用性:Fabric Lakehouse 與 Notebook 內建資源的全功能均可在 Python 筆記本中使用。 這可讓用戶輕鬆地將數據帶入 python 筆記本,只要嘗試拖放 & 即可取得代碼段。

  • 混合程序設計與 T-SQL:Python 筆記本可讓您輕鬆地在總管中與數據倉儲和 SQL 端點互動,方法是使用 Notebookutils 數據連接器,輕鬆地在 Python 內容下執行 T-SQL 腳本。

  • 支援熱門數據分析連結庫:Python 筆記本隨附預安裝的連結庫,例如 DuckDB、Polars 和 Scikit-learn,提供完整的數據操作、分析和機器學習工具組。

  • 進階 Intellisense:Python 筆記本採用 Pylance 作為 Intellisense 引擎,以及其他 Fabric 自定義語言服務,目的是為筆記本開發人員提供最先進的程式代碼撰寫體驗。

  • NotebookUtils & 語意連結:功能強大的 API 工具組可讓您輕鬆地使用具有程式代碼優先體驗的網狀架構和 Power BI 功能。

  • 豐富的視覺效果功能:除了熱門的豐富數據框架預覽 『Table』 函式和 『Chart』 函式之外,我們也支援熱門的視覺效果連結庫,例如 Matplotlib、Seaborn 和 Plotly。 PowerBIClient 也支援這些連結庫,以協助用戶進一步了解數據模式和深入解析。

  • 網狀架構筆記本的一般功能:所有筆記本層級功能自然都適用於 Python 筆記本,例如編輯功能、自動儲存、共同作業、共用和許可權管理、Git 整合、匯入/導出等。

  • 完整堆疊數據科學功能:進階低程序代碼工具組 Data Wrangler、機器學習架構 MLFlow 和強大的 Copilot 全都可以在 Python 筆記本上使用。

如何存取 Python Notebook

開啟網狀架構筆記本之後,您可以在 [首頁] 索引標籤 [首頁] 索引標籤的 [語言] 下拉功能表中切換至 Python,並將整個筆記本設定轉換成 Python。

顯示從筆記本語言功能表切換至 Python 的螢幕快照。

大部分的常見功能都在筆記本層級上支援,您可以參考 如何使用 Microsoft Fabric 筆記本開發、執行及管理 Microsoft Fabric 筆記本 來瞭解詳細的使用方式。 我們在這裡列出 Python 案例的特定一些重要功能。

執行 Python 筆記本

Python 筆記本支援多個作業執行方式:

  • 互動式執行:您可以像使用原生 Jupyter 筆記本一樣互動執行 Python 筆記本。
  • 排程執行:您可以使用筆記本設定頁面上的輕量化排程工具,以批次作業執行 Python 筆記本。
  • 管線執行:您可以在 數據管線中將 Python 筆記本協調為筆記本活動。 快照將於作業執行之後產生。
  • 參考執行:您可以使用 notebookutils.notebook.run()notebookutils.notebook.runMultiple() 來在另一個 Python 筆記本中作為批次作業執行 Python 筆記本。 參考執行完成後將會產生快照。
  • 公用 API 執行:您可以使用 Notebook 執行公用 API 來排程 Python 筆記本執行,,確定公用 API 承載的筆記本元數據中的語言和核心屬性已正確設定。

您可以在功能區索引標籤上監視 Python Notebook 作業執行詳細資料,執行 ->檢視所有執行

數據互動

您可以在 Python 筆記本上與 Lakehouse、Warehouses、SQL 端點和內建資源資料夾互動。

湖泊屋互動

您可以將 Lakehouse 設為預設,或新增多個 Lakehouse 以便在筆記本中探索和使用。

如果您不熟悉如何讀取數據物件,例如 差異數據表,請嘗試將檔案和差異數據表拖放至筆記本工作區,或使用物件下拉功能表中的 [載入數據]。 Notebook 會自動將代碼段插入程式碼資料格,並產生用於讀取目標資料物件的程式代碼。

注意

如果您在載入大量數據時遇到 OOM,請嘗試使用 DuckDB、Polars 或 PyArrow 數據框架,而不是 pandas。

您可以在 瀏覽代碼段 中找到撰寫 Lakehouse 操作 ->將數據寫入 Delta 表

顯示寫入 lakehouse 作業的螢幕快照。

倉儲互動和混合程序設計與 T-SQL

您可以從 Notebook 的倉儲總管新增數據倉儲或 SQL 端點。 同樣地,您可以將資料表拖放到筆記本畫布中,或使用數據表下拉功能表中的快捷方式作業。 Notebook 會自動為您產生程式碼片段。 您可以使用 notebookutils.data 公用程式 來建立與 Warehouses 的連線,並使用 Python 內容中的 T-SQL 語句來查詢數據。

顯示倉儲數據表快捷方式的螢幕快照。

注意

SQL 端點在這裡是唯讀的。

筆記本資源資料夾

Notebook 資源 內建資源資料夾可在 Python Notebook 上原生使用。 您可以使用 Python 程式代碼,輕鬆地與內建 resources 資料夾中的檔案互動,就像您使用本機文件系統一樣。 目前不支持環境資源資料夾。

核心作業

Python 筆記本目前支援兩個內建核心,Python 3.10Python 3.11,默認選取的核心 Python 3.11。 您可以輕鬆地在它們之間切換。

您可以在功能區 首頁 索引標籤上中斷、重新啟動或切換核心。 在 Python 筆記本中中斷核心與在 Spark 筆記本中取消儲存格相同。

顯示核心作業的螢幕快照。

異常核心結束會導致程式代碼執行中斷並遺失變數,但不會停止筆記本會話。

有一個命令可能導致核心死亡。 例如,quit()exit()

圖書館管理

您可以使用內嵌安裝 %pip%conda 命令,命令同時支援公用連結庫和自定義連結庫。

針對自定義連結庫,您可以將 lib 檔案上傳至 內建資源 資料夾。 我們支援多種連結庫類型,例如 .whl.jar.dll.py等,只要嘗試將&拖放至檔案,並自動產生代碼段。

您可能需要重新啟動核心,才能使用更新的套件。

會話設定魔法命令

與在筆記本中個人化 Spark 工作階段設定 類似,您也可以在 Python 筆記本中使用 %%configure。 Python Notebook 支援自定義筆記本會話的計算節點大小、裝入點和預設 Lakehouse。 它們可用於互動式筆記本和管線筆記本活動。 建議您在筆記本開頭使用 %%configure 命令,或者您必須重新啟動筆記本會話,讓設定生效。

以下是 Python 筆記本中支援的屬性 %%configure

%%configure
{
    "vCores": 4, // Recommended values: [4, 8, 16, 32, 64], Fabric will allocate matched memory according to the specified vCores.
    "defaultLakehouse": {  
        // Will overwrites the default lakehouse for current session
        "name": "<lakehouse-name>",
        "id": "<(optional) lakehouse-id>",
        "workspaceId": "<(optional) workspace-id-that-contains-the-lakehouse>" // Add workspace ID if it's from another workspace
    },
    "mountPoints": [
        {
            "mountPoint": "/myMountPoint",
            "source": "abfs[s]://<file_system>@<account_name>.dfs.core.windows.net/<path>"
        },
        {
            "mountPoint": "/myMountPoint1",
            "source": "abfs[s]://<file_system>@<account_name>.dfs.core.windows.net/<path1>"
        },
    ],
}

您可以在筆記本狀態列上檢視計算資源更新,並即時監視計算節點的 CPU 和記憶體使用量。

顯示計算資源更新的螢幕快照。

NotebookUtils

Notebook 公用程式 (NotebookUtils) 是內建套件,可協助您輕鬆地在網狀架構筆記本中執行一般工作。 它在 Python 執行環境中預先安裝。 您可以使用 NotebookUtils 來處理文件系統、取得環境變數、將筆記本鏈結在一起、存取外部記憶體,以及使用秘密。

您可以使用 notebookutils.help() 來列出可用的 API,並取得方法的說明,或參考 NotebookUtils檔。

資料工具

注意

  • 此功能目前為預覽狀態。
  • API 合約可能會在近期內變更。

您可以使用 notebookutils.data 公用程式來建立與所提供數據源的連線,然後使用 T-SQL 語句讀取和查詢數據。

執行下列命令以取得可用方法的概觀:

notebookutils.data.help()

輸出:

Help on module notebookutils.data in notebookutils:

NAME
    notebookutils.data - Utility for read/query data from connected data sources in Fabric

FUNCTIONS
    connect_to_artifact(artifact: str, workspace: str = '', artifact_type: str = None) -> pyodbc.Connection
        Establishes and returns an ODBC connection to a specified artifact within a workspace 
        for subsequent data queries using T-SQL.
        
        :param artifact: The name or ID of the artifact to connect to.
        :param workspace:  Optional; The workspace in which the provided artifact is located, if not provided,
                             use the workspace where the current notebook is located.
        :param artifactType: Optional; The type of the artifact, Currently supported type are Lakehouse, Warehouse and MirroredDatabase. 
                                If not provided, the method will try to determine the type automatically.
        :return: A connection object to the specified artifact.
        
        :raises UnsupportedArtifactException: If the specified artifact type is not supported to connect.
        :raises ArtifactNotFoundException: If the specified artifact is not found within the workspace.
        
        Examples:
            sql_query = "SELECT DB_NAME()"
            with notebookutils.data.connect_to_artifact("ARTIFACT_NAME_OR_ID", "WORKSPACE_ID", "ARTIFACT_TYPE") as conn:
                cursor = conn.cursor()
                cursor.execute(sql_query)
                rows = cursor.fetchall()
                for row in rows:
                    print(row)
    
    help(method_name=None)
        Provides help for the notebookutils.data module or the specified method.
        
        Examples:
        notebookutils.data.help()
        notebookutils.data.help("connect_to_artifact")
        :param method_name: The name of the method to get help with.

DATA
    __all__ = ['help', 'connect_to_artifact']

FILE
    /home/trusted-service-user/jupyter-env/python3.11/lib/python3.11/site-packages/notebookutils/data.py

從 Lakehouse 查詢數據

conn = notebookutils.data.connect_to_artifact("lakehouse_name_or_id", "optional_workspace_id", "optional_lakehouse_type")

cursor = conn.cursor()
cursor.execute("SELECT * FROM sys.schemas;")
rows = cursor.fetchall()
for row in rows:
    print(row)

從倉儲查詢數據

conn = notebookutils.data.connect_to_artifact("warehouse_name_or_id", "optional_workspace_id", "optional_warehouse_type")

cursor = conn.cursor()
cursor.execute("SELECT * FROM sys.schemas;")
rows = cursor.fetchall()
for row in rows:
    print(row)

注意

  • NotebookUtils 中的數據公用程式目前僅適用於 Python 筆記本。
  • 已知限制:對於 connect_to_artifact API,傳回的 conn 物件會在內部初始化 PBI 令牌,以在連接到數據源時驗證使用者。 不過,它不支援令牌更新。 PBI 令牌目前僅有效一小時,任何超過一小時的查詢都會因為令牌到期問題而失敗。

瀏覽程式碼片段

您可以在 [編輯] 索引標籤上找到實用的 Python 代碼段,>瀏覽代碼段,現在已有新的 Python 範例可供使用。 您可以從 Python 代碼段學習,以開始探索筆記本。

顯示流覽 Python 代碼段位置的螢幕快照。

語意連結是一項功能,可讓您在 Microsoft Fabric 中建立 語意模型 與 Synapse Data Science 之間的連線。 Python Notebook 原生支援此功能。 BI 工程師和Power BI開發人員可以輕鬆地使用語意連結連線和管理語意模型。 若要深入瞭解語意連結,請閱讀 公用檔

可視化

除了使用程式庫繪製圖表之外,內建的視覺化 函式可讓您將 DataFrames 轉換成豐富格式的資料視覺化。 您可以使用資料框架上的 display() 函式來產生豐富的資料框架數據表檢視和圖表檢視。

顯示 Python 筆記本中視覺效果體驗的螢幕快照。

注意

圖表組態會保存在 Python 筆記本中,這表示在重新執行程式碼數據格之後,如果目標數據框架架構尚未變更,則儲存的圖表仍會保存下來。

程式碼 intelliSense

Python 筆記本整合 Pylance 以增強 Python 程式代碼撰寫體驗,Pylance 是 Visual Studio Code 中 Python 的默認語言服務支援。 它提供許多易於使用的函式,例如關鍵詞醒目提示、快速資訊、程序代碼完成、參數資訊和語法錯誤偵測。 此外,當筆記本內容較多時,Pylance 的效能更佳。

數據科學功能

請流覽 Microsoft Fabric 中的數據科學檔,以深入瞭解 Fabric 中的數據科學和 AI 體驗。 在這裡,我們列出 Python 筆記本上原生支援的一些重要數據科學功能。

  • Data Wrangler:Data Wrangler 是以筆記本為基礎的工具,可提供沉浸式介面來探索數據分析。 此功能將網格樣式的數據展示與動態摘要統計、內建的視覺化工具和常見數據清理作業的資料庫整合在一起。 它提供數據清理、數據轉換和整合,可加速使用 Data Wrangler 進行數據準備。

  • MLflow:機器學習實驗是所有相關機器學習執行的組織和控制主要單位。 執行對應到模型程式的一次執行。

  • Fabric 自動記錄:Microsoft Fabric 中的 Synapse 數據科學包含自動記錄,這可大幅減少在訓練期間自動記錄機器學習模型參數、計量和項目所需的程式代碼數量。

    自動記錄延伸 MLflow 追蹤功能。 自動記錄可以擷取各種計量,包括精確度、遺失、F1 分數,以及您定義的自定義計量。 藉由使用自動記錄,開發人員和數據科學家可以輕鬆地追蹤和比較不同模型和實驗的效能,而不需要手動追蹤。

  • Copilot:適用於數據科學和數據工程筆記本的 Copilot 是可協助您分析和可視化數據的 AI 助理。 它可與 Lakehouse 數據表、Power BI 數據集和 pandas/spark 數據框架搭配使用,直接在筆記本中提供答案和代碼段。 您可以在筆記本中使用 Copilot 聊天面板和 Char-magic,而 AI 會提供回應或程式代碼,以複製到您的筆記本中。

公開預覽版本的已知限制

  • 對於每個 Python 筆記本執行,都不能保證即時集區體驗。 如果筆記本執行未達到即時集區,則會話啟動時間可能最多需要 3 分鐘。隨著 Python 筆記本使用量的增加,我們的智慧共用方法將逐漸增加即時集區的配置以滿足需求。

  • Python 筆記本的公開預覽版無法使用環境整合功能。

  • 設定會話逾時目前無法使用。

  • Copilot 可能會產生 Spark 語句,這可能無法在 Python 筆記本中執行。

  • 目前,Python 筆記本上的 Copilot 在多個地區尚未完全支援。 部署程式仍在進行中,請持續關注,因為我們繼續在更多區域推出支援。