Python 筆記本是一種新的體驗,建立於 Fabric 筆記本之上。 它是一款多功能且互動的工具,專為資料分析、視覺化和機器學習設計。 它提供順暢的開發體驗,讓您撰寫和執行 Python 程式代碼。 這項功能使其成為數據科學家、分析師和 BI 開發人員的重要工具,尤其是不需要巨量數據和分散式運算的探索工作。
使用 Python 筆記本,你可以得到:
多個內建 Python 核心:Python 筆記本提供純 Python 編碼環境,無需 Spark,內建三個 Python 核心版本:Python 3.10、Python 3.11 與 Python 3.12。 該環境支援原生 IPython 功能,如 iPyWidget 和魔法指令。
符合成本效益:新的 Python 筆記本預設會在具有 2vCores/16GB 記憶體的單一節點叢集上執行,以提供節省成本的好處。 此設定可確保數據探索專案具有較小數據大小的有效資源使用率。
Lakehouse 與 Resources 現已原生支援:Fabric Lakehouse 與 Notebook 內建 Resources 的完整功能皆可在 Python 筆記本中使用。 這個功能讓使用者可以輕鬆把資料帶到 Python 筆記本,只要試著拖放就能取得程式碼片段。
搭配 T-SQL 進行混合程式設計:Python notebook 提供了與 Data Warehouse 及 SQL 分析端點在檔案總管中互動的簡單方式。 透過使用 notebookutils data connector,你可以輕鬆在 Python 的上下文下執行 T-SQL 腳本。
支援熱門資料分析函式庫:Python 筆記本預載函式庫如 DuckDB、Polars 與 Scikit-learn,提供完整的資料處理、分析與機器學習工具包。
進階 IntelliSense:Python 筆記本採用 Pylance 作為 IntelliSense 引擎,並與其他 Fabric 客製化語言服務一同使用,旨在為筆記型電腦開發者提供最先進的程式設計體驗。
NotebookUtils 與 Semantic link:強大的 API 工具包讓你輕鬆使用 Fabric 和 Power BI 功能,並以程式碼為優先的體驗。
豐富視覺化功能:除了流行的豐富資料框預覽「Table」功能與「Chart」功能外,也支援 Matplotlib、Seaborn 和 Plotly 等熱門視覺化函式庫。 PowerBIClient 也支援這些連結庫,以協助用戶進一步了解數據模式和深入解析。
Fabric Notebook 的共通功能:所有 Notebook 層級的功能自然適用於 Python 筆記本,例如編輯功能、自動儲存、協作、分享與權限管理、Git 整合、匯入/匯出等。
完整堆疊數據科學功能:進階低程序代碼工具組 Data Wrangler、機器學習架構 MLFlow 和強大的 Copilot 全都可以在 Python 筆記本上使用。
如何存取 Python Notebook
打開 Fabric 筆記本後,你可以在 Home 標籤的語言下拉選單切換成 Python,並將整個筆記本設定轉換成 Python。
大多數常見功能在筆記本層級都支援。 欲了解更多,請參閱如何使用 Microsoft Fabric 筆記本及開發、執行與管理 Microsoft Fabric 筆記本。 本文列出了一些針對 Python 情境的特定關鍵功能。
操作 Python 筆記本
Python 筆記本支援多種工作執行方法:
- 互動式執行:您可以像使用原生 Jupyter 筆記本一樣互動執行 Python 筆記本。
- 排程執行:你可以在筆記本設定頁面使用輕量排程器的體驗,將 Python 筆記本當作批次工作執行。
- 管線執行:您可以將 Python 筆記本編排為 Pipeline 中的筆記本活動。 該程序會在工作執行後產生快照。
-
參考執行:您可以使用
notebookutils.notebook.run()或notebookutils.notebook.runMultiple()來在另一個 Python 筆記本中作為批次作業執行 Python 筆記本。 該程序會在參考執行結束後產生快照。 -
%run:你可以用
%run來參考並執行同一執行上下文中的其他筆記本,因此你可以直接呼叫函式並重用那些筆記本中定義的變數。 欲了解更多詳情,請參閱有關如何操作筆記本的文件。 - 公共 API 執行:你可以用 筆記本執行公開 API 來排程你的 Python 筆記本執行。 工作排程器 API 支援參數化執行及從筆記本執行中回傳出口值。 出口值可用於條件式協調與訊號結果,以協調自動化及 CI/CD 情境下的 Python 筆記本。 確保公開 API payload 的筆記本元資料中語言和核心屬性設定正確。 透過公共 API 傳遞的參數值,在執行時可透過 Fabric 筆記本中使用的標準參數存取模式提供給 Python 筆記本。 關於參數請求形狀及退出值擷取的詳細資訊,請參閱 「在 Fabric 中管理與執行 API 筆記本」。 你可以透過 Job Scheduler API 監控執行狀態並取消工作實例,這與 in-UI 查看所有執行 的體驗相輔相成。
注意
支援 Items REST API(筆記本的 CRUD)及 Job Scheduler API(執行)的服務主體認證,這使得 Python 筆記本能夠安全地進行無人值守的自動化和 CI/CD。 將服務主體加入工作空間,並設定適當的角色以使用這些 API。
您可以在功能區索引標籤上的 執行 ->檢視所有執行 中監視 Python Notebook 的作業執行詳細資料。
注意
目前只%run支援在筆記本Python中引用筆記本項目,不支援從筆記本資源資料夾中引用程式碼模組(如.py檔案)。
數據互動
你可以在 Python Notebook 上與 Lakehouse、Warehouse、SQL 分析端點以及內建資源資料夾互動。
注意
Python Notebook 執行環境預裝了 delta-rs 和 duckdb 函式庫,以支援讀寫 Delta Lake 資料。 不過,Delta Lake 的一些功能可能尚未完全支援。 更多細節及最新更新,請參閱 delta-rs 與 DuckDB 文件。
湖泊屋互動
您可以將 Lakehouse 設為預設,或新增多個 Lakehouse 以便在筆記本中探索和使用。
如果你不熟悉讀取像是 delta table 這類資料物件,可以試著拖曳檔案和 delta 表格到 notebook 畫布,或是使用物件下拉選單中的 Load data 選項。 筆記本會自動將程式碼片段插入程式碼格,並產生用於讀取目標資料物件的程式碼。
注意
如果你在載入大量資料時遇到 OOM,可以試試 DuckDB、Polars 或 PyArrow 資料框,而不是 pandas。
您可以在 瀏覽代碼段 中找到撰寫 Lakehouse 操作 ->將數據寫入 Delta 表。
資料倉儲互動及使用 T-SQL 的混合編程
你可以從 Notebook 的倉庫總管新增倉庫或 SQL 分析端點。 同樣地,您可以將資料表拖放到筆記本畫布中,或使用數據表下拉功能表中的快捷方式作業。 筆記本會自動為你產生一段程式碼片段。 你可以使用 notebookutils.data 工具工具建立與倉庫的連線,並在 Python 的情境下使用 T-SQL 語句查詢資料。
注意
SQL 分析端點為唯讀。
筆記本資源資料夾
Notebook 資源 內建資源資料夾可在 Python Notebook 上原生使用。 你可以像操作本地檔案系統一樣,使用 Python 程式碼輕鬆與內建資源資料夾中的檔案互動。 目前,環境資源資料夾尚未被支援。
核心作業
Python 筆記本支援三個內建核心:Python 3.10、Python 3.11 和 Python 3.12。 預設選擇的核心是 Python 3.12。 你可以很容易地在兩者之間切換。
你可以在功能區的 Home 標籤中中斷、重新啟動或切換核心。 在 Python 筆記本中中斷核心,就像在 Spark 筆記本中取消儲存格一樣。
異常的核心退出會導致程式碼執行中斷並遺失變數,但不會停止筆記本會話。
有些指令可能會導致核心死亡。 例如,quit() 和 exit()
關於每個 Python 核心版本的支援生命週期,包括支援終止日期與遷移步驟,請參閱 Python 筆記本執行時間及 Fabric 的核心生命週期。
圖書館管理
使用 %pip 和 %conda 指令進行線上安裝。 這些指令支援公共函式庫與自訂函式庫。
對於自訂函式庫,請將函式庫檔案上傳到 內建資源 資料夾。 該平台支援多種函式庫,包括 Wheel(.whl)、JAR(.jar)、DLL(.dll)和 Python(.py)。 只要拖放檔案,程式碼片段就會自動產生。
你可能需要重新啟動核心才能使用更新的套件。
為了更好地理解並使用類似指令,請參考下表。
| 命令/語法 | 主要用途 | 它在 Jupyter Notebook 中的運作方式 | 典型的使用案例 | 注意事項 |
|---|---|---|---|---|
%pip install package |
安裝 Python 套件 | 在筆記本環境的 Python 內核中執行 pip | 安裝套件的建議方式 | 在 Python Notebook 中,與 !pip 相同;不會自動重新啟動核心 |
!pip install package |
透過命令列安裝 Python 套件 | 以 shell 命令的形式執行 pip | 安裝套件的替代方式 | 在 Python Notebook 中,與 %pip 相同;不會自動重新啟動核心 |
import sys; sys.exit(0) |
重新啟動筆記本核心 | 立即重新啟動核心 | 以程序設計方式重新啟動核心 | 清除所有變數和狀態; 不建議 直接使用 |
notebookutils.session.restartPython() |
重新啟動筆記本核心 | 內部呼叫sys.exit(0) |
重新啟動核心的建議方式 | 官方 API,比直接使用 sys.exit(0) 更安全且更相容 |
注意
- 在 Python Notebook 中,
%pip兩者!pip的行為相同:兩者都會將套件安裝到目前核心的環境中,且安裝後都不會自動重啟核心。 - 如果你需要重新啟動核心(例如安裝某些套件後),請用
notebookutils.session.restartPython()取代import sys; sys.exit(0)。-
notebookutils.session.restartPython()是一個官方 API 包裝sys.exit(0),且在筆記型電腦環境中更安全且相容。
-
- 除非必要,否則不要直接使用
sys.exit(0)。
Python筆記本即時資源使用情況監控
這很重要
這項功能目前處於預覽階段。
透過使用資源監控窗格,您可以直接在筆記本內追蹤關鍵的執行時資訊,如會話長度、運算類型及即時資源指標,包括 CPU 和記憶體消耗。 此功能可即時概覽您的活動工作階段及其所使用的資源。
資源監視器可改善 Python 工作負載如何利用系統資源的可見度。 它可協助您最佳化效能、管理成本,並降低記憶體不足 (OOM) 錯誤的風險。 透過即時監控指標,您可以識別資源密集型操作、分析使用模式,並就擴展或修改程式碼做出明智的決策。
若要開始使用它,請將筆記本語言設定為 Python 並啟動工作階段。 然後,您可以按一下筆記本狀態列中的計算資源,或從工具列選取 [ 檢視資源使用量 ] 來開啟監視器。 資源監控窗格會自動出現,為 Fabric 筆記本中的 Python 程式碼提供整合式監控體驗。
會話設定魔法命令
就像在筆記本中個人化 Spark 會話設定一樣,你也可以在 Python 筆記本中使用 %%configure。 Python 筆記本支援自訂運算節點大小、掛載點以及筆記本會話的預設湖屋。 你可以在互動式筆記本和管線筆記本活動中使用這些設定。 請在筆記本開頭使用 %%configure 指令,否則必須重新啟動筆記本工作階段才能讓設定生效。
以下是 Python 筆記本中支援的屬性 %%configure:
%%configure -f
{
"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 與記憶體使用情況。
注意
API 觸發的執行會尊重會話配置,例如計算 vCore,以及透過筆記本元資料指定的 defaultLakehouse 或 %%configure。 工作排程器 API 也支援在執行時選擇目標湖屋與環境。 關於有效載荷欄位的詳細資訊,請參見 「在 Fabric 中管理並執行 API 筆記本」。
NotebookUtils
Notebook Utilities(NotebookUtils)是一個內建套件,幫助你輕鬆執行 Fabric Notebook 中的常見任務。 它是預先安裝在 Python 執行環境裡。 使用 NotebookUtils 來處理檔案系統、取得環境變數、串接筆記本、存取外部儲存,以及處理秘密資料。
用來 notebookutils.help() 列出可用的 API,並獲得方法上的協助。 欲了解更多資訊,請參閱 NotebookUtils 文件。
資料工具
注意
此功能目前為預覽狀態。
利用 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 = '', **kwargs)
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.
:param **kwargs Optional: Additional optional configuration. Supported keys include:
- tds_endpoint : Allow user to specify a custom TDS endpoint to use for connection.
: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:
df = conn.query(sql_query)
display(df)
help(method_name: str = '') -> 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.10/lib/python3.10/site-packages/notebookutils/data.py
從 Lakehouse 查詢數據
conn = notebookutils.data.connect_to_artifact("lakehouse_name_or_id", "optional_workspace_id", "optional_lakehouse_type")
df = conn.query("SELECT * FROM sys.schemas;")
從倉儲查詢數據
conn = notebookutils.data.connect_to_artifact("warehouse_name_or_id", "optional_workspace_id", "optional_warehouse_type")
df = conn.query("SELECT * FROM sys.schemas;")
來自 SQL 資料庫的查詢資料
conn = notebookutils.data.connect_to_artifact("sqldb_name_or_id", "optional_workspace_id", "optional_sqldatabase_type")
df = conn.query("SELECT * FROM sys.schemas;")
注意
NotebookUtils 中的資料公用程式目前僅適用於 Python 筆記本。
瀏覽程式碼片段
你可以在編輯標籤中選擇瀏覽程式碼片段,找到有用的 Python 程式碼片段。 現在已經有新的 Python 範例可用。 要開始探索筆記本,可以從 Python 程式碼片段學習。
語意連結
語意連結是一項功能,可用來連接 Microsoft Fabric 中的語意模型與 Synapse 資料科學。 Python notebook 原生支援此功能。 BI 工程師與 Power BI 開發者可輕鬆使用 Semantic Link 連接並管理語意模型。 欲了解更多,請參閱 公開文件。
可視化
除了使用程式庫繪製圖表之外,內建的視覺化 函式可讓您將 DataFrames 轉換成豐富格式的資料視覺化。 在資料框架上使用 顯示() 函式來產生豐富的資料框表格視圖與圖表視圖。
注意
Python 筆記本會持續保存圖表配置。 重新執行程式碼格後,如果目標資料框結構沒有改變,儲存的圖表會保留。
程式碼 IntelliSense
Python 筆記本也會使用 Pylance 作為語言伺服器。 如需詳細資訊,請參閱使用 Pylance 增強 Python 開發。
數據科學功能
欲了解更多關於 Microsoft Fabric 中資料科學與 AI 體驗的資訊,請參閱 Microsoft Fabric 中的資料科學文件。 本文列出 Python 筆記本原生支援的幾個關鍵資料科學特性。
Data Wrangler:Data Wrangler 是一款基於筆記本的工具,提供沉浸式介面以進行探索性資料分析。 此功能將網格樣式的數據展示與動態摘要統計、內建的視覺化工具和常見數據清理作業的資料庫整合在一起。 它提供資料清理、資料轉換與整合,透過使用 Data Wrangler 加速資料準備。
MLflow:機器學習實驗是所有相關機器學習執行的組織和控制主要單位。 執行對應到模型程式的一次執行。
Fabric 自動記錄:Microsoft Fabric 中的 Synapse 數據科學包含自動記錄,這可大幅減少在訓練期間自動記錄機器學習模型參數、計量和項目所需的程式代碼數量。
自動記錄延伸 MLflow 追蹤功能。 自動記錄可以擷取各種計量,包括精確度、遺失、F1 分數,以及您定義的自定義計量。 藉由使用自動記錄,開發人員和數據科學家可以輕鬆地追蹤和比較不同模型和實驗的效能,而不需要手動追蹤。
Copilot:Copilot for Data Engineering and Data Science notebooks是一款AI助理,協助你分析與視覺化資料。 Copilot 能立即掌握情境,無需你啟動會話。 它了解工作空間、附加的 Lakehouse 架構、資料表與檔案、筆記本結構及執行時狀態,並能跨整個筆記本工作流程運作。
Copilot 支援全筆記本的多步驟功能:它可以在 Python 筆記本中產生、重構、摘要並驗證多個儲存格與步驟的程式碼。 你可以在筆記本中使用 Copilot 聊天面板和如
/fix的聊天指令。當儲存格失敗時, Fix with Copilot 會顯示錯誤摘要、根本原因分析及建議修正,並可選擇在顯示核准差異後自動套用程式碼變更。 你也可以在 Copilot 聊天中使用這個
/fix指令,針對特定儲存區或整個筆記本進行針對性診斷。
已知的限制
每次 Python 筆記本運行,都不保證有 live pool 體驗。 如果筆記本跑沒有進入即時池,遊戲開始時間可能長達三分鐘。 隨著 Python 筆記本使用率的增加,智慧池化方法逐漸增加活池分配以滿足需求。
Python 筆記本不提供環境整合功能。
設定的會話逾時功能無法使用。
Copilot 對 Python 筆記本的上下文感知和協助有所提升,但偶爾可能會建議使用 Python 筆記本中無法直接執行的 Spark 程式碼。 Copilot 修復功能適用於失敗的 Python 程式碼單元;對於純粹的 Python 執行,Spark 作業診斷不適用。
目前,Python notebook 上的 Copilot 在多個地區尚未完全支援。 部署過程仍在進行中。 請持續關注更多地區的支援。