次の方法で共有


ノートブックで Python エクスペリエンスを使用する

Python ノートブックは、Fabric ノートブック上に構築される新しいエクスペリエンスです。 これは、データ分析、視覚化、機械学習用に設計された、汎用性の高い対話型ツールです。 Python コードを記述して実行するためのシームレスな開発エクスペリエンスを提供します。 この機能により、データ サイエンティスト、アナリスト、BI 開発者にとって、特にビッグ データや分散コンピューティングを必要としない探索タスクに不可欠なツールになります。

Python ノートブックを使用すると、次のものを取得できます。

  • 複数の組み込み Python カーネル: Python ノートブックは、既定で 2 つのバージョンの Python カーネル (Python 3.10 と 3.11) が使用できる、Spark を使用しない純粋な Python コーディング環境を提供します。また、iPyWidget やマジック コマンドなどのネイティブ ipython 機能がサポートされています。

  • コスト効率: 新しい Python ノートブックは、既定で 2 仮想コア/16 GB メモリを持つ単一ノード クラスターで実行することで、コスト削減の利点を提供します。 この設定により、データ サイズが小さいデータ探索プロジェクトの効率的なリソース使用率が確保されます。

  • レイクハウス & リソースがネイティブに使用可能: Fabric レイクハウスとノートブック組み込みリソースのすべての機能が、Python ノートブックで利用できます。 この機能を使用すると、ユーザーはデータを Python ノートブックに簡単に取り込み、ドラッグ & ドロップするだけでコード スニペットを取得できます。

  • T-SQL を使用した混合プログラミング: Python ノートブックでは、エクスプローラーでデータ ウェアハウスと SQL エンドポイントを簡単に操作できます。notebookutils データ コネクタを使用すると、Python のコンテキストで T-SQL スクリプトを簡単に実行できます。

  • 人気のあるデータ分析ライブラリのサポート: Python ノートブックには、DuckDB、Polars、Scikit-learn などのライブラリがプレインストールされており、データ操作、分析、機械学習のための包括的なツールキットが提供されます。

  • 高度な IntelliSense: Python ノートブックでは、IntelliSense エンジンとして Pylance を他の Fabric カスタマイズ言語サービスと共に採用し、ノートブック開発者に最先端のコーディング エクスペリエンスを提供することを目指しています。

  • NotebookUtils & セマンティック リンク: 強力な API ツールキットを使用すると、コード ファーストのエクスペリエンスで Fabric と Power BI の機能を簡単に使用できます。

  • 豊富な視覚化機能: 人気の高いリッチ データフレーム プレビューの 'Table' 関数や 'Chart' 関数を除き、Matplotlib、Seaborn、Plotly などの人気の高い視覚化ライブラリもサポートしています。 また、PowerBIClient でも、ユーザーがデータ パターンや分析情報をより深く理解できるように、これらのライブラリがサポートされています。

  • Fabric ノートブックの一般的な機能: ノートブック レベルのすべての機能は、もちろん Python ノートブックに適用されます。たとえば、編集機能、自動保存、コラボレーション、共有とアクセス許可の管理、Git 統合、インポート/エクスポートなどです。

  • フルスタックのデータ サイエンス機能: 高度なローコード ツールキットである Data Wrangler、機械学習フレームワーク MLFlow、および強力な Copilot がすべて、Python ノートブックで利用できます。

Python ノートブックにアクセスする方法

Fabric Notebook を開いた後、言語ドロップダウン メニューの [ホーム] タブで Python に切り替え、ノートブックのセットアップ全体を Python に変換できます。

ノートブックの言語メニューから Python への切り替えを示すスクリーンショット。

一般的な機能のほとんどはノートブック レベルとしてサポートされています。詳細な使用方法については、「Microsoft Fabric ノートブックの使用方法」および「Microsoft Fabric ノートブックの開発、実行、管理」を参照してください。 Python シナリオに固有のいくつかの主な機能を次に示します。

Python ノートブックを実行する

Python ノートブックでは、複数のジョブ実行方法がサポートされています。

  • 対話型の実行: ネイティブ Jupyter ノートブックと同様に、Python ノートブックを対話形式で実行できます。
  • 実行のスケジュール: ノートブック設定ページの軽量スケジューリング機能を使用して、Python ノートブックをバッチ ジョブとして実行することができます。
  • パイプラインの実行: パイプラインで Python ノートブックをノートブック アクティビティとして調整できます。 ジョブの実行後にスナップショットが生成されます。
  • 参照実行: notebookutils.notebook.run() または notebookutils.notebook.runMultiple() を使用して、別の Python ノートブックで実行 Python ノートブックをバッチ ジョブとして参照できます。 スナップショットは、参照実行が完了した後に生成されます。
  • パブリック API の実行: ノートブック実行パブリック API を使用して Python ノートブックの実行をスケジュールできます。パブリック API ペイロードのノートブック メタデータの言語とカーネル プロパティが正しく設定されていることを確認してください。

Python ノートブック ジョブの実行の詳細は、リボン タブの [ 実行 ] ->[すべての実行の表示] で監視できます。

データの相互作用

Python ノートブックで、レイクハウス、ウェアハウス、SQL エンドポイント、および組み込みのリソース フォルダーを操作できます。

Note

  • Python Notebook ランタイムには、Delta Lake データの読み取りと書き込みの両方をサポートする delta-rs ライブラリと duckdb ライブラリがプレインストールされています。 ただし、現時点では、一部の Delta Lake 機能が完全にはサポートされていない場合があることに注意してください。 詳細と最新の更新プログラムについては、 公式の delta-rsduckdb の Web サイトを参照してください。
  • 現在、deltalake(delta-rs) バージョン 1.0.0 以降はサポートされていません。 ご期待ください。

Lakehouseの相互作用

レイクハウスを既定として設定できます。または、複数のレイクハウスを追加してノートブックで探索して使用することもできます。

デルタ テーブルなどのデータ オブジェクトの読み取りに慣れていない場合は、ファイルとデルタ テーブルをノートブック キャンバスにドラッグ アンド ドロップするか、オブジェクトのドロップダウン メニューの [データの読み込み] を使用してみてください。 ノートブックでは、コード スニペットがコード セルに自動的に挿入され、ターゲット データ オブジェクトを読み取るためのコードが生成されます。

Note

大量のデータを読み込むときに OOM が検出された場合は、Pandas の代わりに DuckDB、Polars、PyArrow データフレームを使用してみてください。

Lakehouse の書き込み操作は、コードスニペットを参照する ->デルタテーブルにデータを書き込むで確認できます。

レイクハウスの書き込み操作を示すスクリーンショット。

ウェアハウスの操作と T-SQL を使用した混合プログラミング

ノートブックのウェアハウス エクスプローラからデータ ウェアハウスまたは SQL エンドポイントを追加できます。 同様に、ノートブックのキャンバスにテーブルをドラッグ アンド ドロップするか、テーブルのドロップダウン メニューでショートカット操作を使用することができます。 ノートブックによって自動的にコード スニペットが生成されます。 notebookutils.data ユーティリティを使用すると、ウェアハウスとの接続を確立し、Python のコンテキストで T-SQL ステートメントを使用してデータにクエリを実行できます。

ウェアハウス テーブルのショートカットを示すスクリーンショット。

Note

ここでは、SQL エンドポイントは読み取り専用です。

ノートブックリソースフォルダー

Notebook リソースの組み込みリソース フォルダーは、Python Notebook でネイティブに使用できます。 ローカル ファイル システムを使用する場合と同様に、Python コードを使用して組み込みリソース フォルダー内のファイルを簡単に操作できます。 現時点では、環境リソース フォルダーはサポートされていません。

カーネル操作

Python ノートブックでは現在、2 つの組み込みカーネルがサポートされています。これらは Python 3.10Python 3.11 です。既定で選択されているカーネルは Python 3.11 です。 これらを簡単に切り替えることができます。

リボンの [ ホーム ] タブでカーネルを中断、再起動、または切り替えることができます。 Python ノートブックでのカーネルの中断は、Spark ノートブックでセルを中止するのと同じです。

カーネルの操作を示すスクリーンショット。

カーネルが異常終了すると、コードの実行が中断され、変数が失われますが、ノートブック セッションは停止しません。

カーネルが停止する原因となる可能性のあるコマンドがあります。 たとえば、 quit()exit()などです。

ライブラリ管理

インライン インストールには %pip コマンドと %conda コマンドを使用できます。このコマンドは、パブリック ライブラリとカスタマイズされたライブラリの両方をサポートします。

カスタマイズされたライブラリの場合は、lib ファイルを 組み込みのリソース フォルダーに アップロードできます。 Wheel (.whl)、JAR (.jar)、DLL (.dll)、Python (.py) などの形式など、複数の種類のライブラリがサポートされています。 ファイルにドラッグ&ドロップするだけで、コード スニペットが自動的に生成されます。

更新されたパッケージを使用するには、カーネルの再起動が必要になる場合があります。

同様のコマンドを明確に理解して使用するには、次の表を参照してください。

Command/Syntax 主な目的 Jupyter Notebook での動作 一般的な使用例 Notes
%pip install package Python パッケージのインストール ノートブックの Python カーネルで pip を実行します パッケージをインストールするための推奨される方法 Python Notebook では、!pipと同じですが、カーネルは自動的に再起動されません
!pip install package シェルを使用して Python パッケージをインストールする シェル コマンドとして pip を実行します パッケージをインストールする別の方法 Python Notebook では、%pipと同じですが、カーネルは自動的に再起動されません
import sys; sys.exit(0) ノートブック カーネルを再起動する カーネルを直ちに再起動します カーネルをプログラムで再起動する すべての変数と状態をクリアします。直接使用することはお勧めしません
notebookutils.session.restartPython() ノートブック カーネルを再起動する sys.exit(0) を内部で呼び出す カーネルを再起動する推奨される方法 sys.exit(0)を直接使用するよりも安全で互換性の高い公式 API

Note

  • Python Notebook では、 %pip!pip動作は同じです。両方ともパッケージを現在のカーネルの環境にインストールし、インストール後にカーネルを自動的に再起動しません。
  • カーネルを再起動する必要がある場合 (たとえば、特定のパッケージをインストールした後)、ではなくnotebookutils.session.restartPython()を使用import sys; sys.exit(0)
    • notebookutils.session.restartPython() は、 sys.exit(0) をラップする公式 API であり、ノートブック環境でより安全で互換性があります。
  • 必要な場合を除き、を直接使用sys.exit(0)

Python ノートブックのリアルタイム リソース使用状況の監視

Important

この機能は プレビュー段階です

リソース モニター ウィンドウでは、セッション期間、コンピューティングの種類、リアルタイム リソース メトリック (CPU とメモリの消費量など) などの重要なランタイム情報をノートブック内で直接追跡できます。 この機能では、アクティブなセッションと使用されているリソースの概要をすぐに確認できます。

リソース モニターを使用すると、Python ワークロードがシステム リソースを利用する方法の可視性が向上します。 パフォーマンスの最適化、コストの管理、メモリ不足 (OOM) エラーのリスクの軽減に役立ちます。 メトリックをリアルタイムで監視することで、リソースを集中的に使用する操作を特定し、使用パターンを分析し、コードのスケーリングや変更に関する情報に基づいた意思決定を行うことができます。

使用を開始するには、ノートブックの言語を Python に設定し、セッションを開始します。 その後、ノートブックのステータス バーでコンピューティング リソースをクリックするか、ツール バーから [ リソース使用状況の表示 ] を選択して、モニターを開くことができます。 リソース モニター ウィンドウが自動的に表示され、Fabric ノートブックの Python コードの統合された監視エクスペリエンスが提供されます。

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 とメモリの使用状況をリアルタイムで監視できます。

コンピューティング リソースの更新を示すスクリーンショット。

NotebookUtils

ノートブック ユーティリティ (NotebookUtils) は、Fabric ノートブックで一般的なタスクを簡単に実行するのに役立つ組み込みパッケージです。 Python ランタイムにプレインストールされています。 NotebookUtils を使用すると、ファイル システムを操作し、環境変数を取得し、ノートブックをまとめてチェーン化し、外部ストレージにアクセスし、シークレットを操作できます。

notebookutils.help()を使用して、使用可能な API を一覧表示したり、メソッドに関するヘルプを表示したり、Doc NotebookUtils を参照したりすることもできます。

データ ユーティリティ

Note

現在、この機能はプレビュー段階にあります。

notebookutils.data ユーティリティを使用して、指定されたデータ ソースとの接続を確立し、T-SQL ステートメントを使用してデータの読み取りとクエリを実行できます。

次のコマンドを実行して、使用可能なメソッドの概要を取得します。

notebookutils.data.help()

Output:

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;")

Note

NotebookUtils のデータ ユーティリティは、現時点では Python ノートブックでのみ使用できます。

コード スニペットを参照する

[ 編集 ] タブ>Browse コード スニペットで便利な Python コード スニペットを見つけることができます。新しい Python サンプルが利用可能になりました。 Python コード スニペットから学習して、ノートブックの探索を開始できます。

Python コード スニペットを参照する場所を示すスクリーンショット。

セマンティック リンクは、Microsoft Fabric で セマンティック モデル と Synapse Data Science の間の接続を確立できる機能です。 これは Python ノートブックでネイティブにサポートされています。 BI エンジニアと Power BI 開発者は、セマンティック リンク接続を使用してセマンティック モデルを簡単に管理できます。 セマンティック リンクの詳細については、 パブリック ドキュメント を参照してください。

Visualization

組み込みの視覚化関数では、ライブラリを使用したグラフの描画に加えて、DataFrame を高度な形式のデータ視覚化に変換できます。 データフレームで display() 関数を使用すると、豊富なデータフレーム テーブル ビューとグラフ ビューを生成できます。

Python ノートブックでの視覚化エクスペリエンスを示すスクリーンショット。

Note

グラフの構成は Python ノートブックに保持されます。つまり、コード セルを再実行した後、ターゲット データフレーム スキーマが変更されていない場合、保存されたグラフは保持されます。

Code IntelliSense

Python ノートブックでは、言語サーバーとして Pylance も使用されます。 詳細については、「Pylance を使用して Python 開発を強化する」を参照してください。

データ サイエンス機能

Fabric のデータ サイエンスと AI エクスペリエンスの詳細については、「Microsoft Fabric Data Science のドキュメント」を参照してください。 ここでは、Python ノートブックでネイティブにサポートされている主なデータ サイエンス機能をいくつか示します。

  • Data Wrangler: Data Wrangler は、探索データ分析のためのイマーシブ インターフェイスを提供するノートブック ベースのツールです。 この機能は、グリッドのようなデータ表示と動的な概要統計、組み込みの視覚化、および一般的なデータ クリーニング操作のライブラリを組み合わせたものです。 データ クリーニング、データ変換、統合を提供し、Data Wrangler を使用したデータの準備を迅速化します。

  • MLflow: 機械学習実験は、関連するすべての機械学習実行の組織と制御の主要な単位です。 実行はモデル コードの 1 回の実行に対応します。

  • Fabric の自動ログ記録: Microsoft Fabric の Synapse Data Science には自動ログ記録が含まれており、トレーニング中に機械学習モデルのパラメータ、メトリック、項目を自動的にログに記録するために必要なコードの量が大幅に削減されます。

    自動ログ記録により、MLflow 追跡機能が拡張されます。 自動ログ記録では、精度、損失、F1 スコア、定義したカスタム メトリックなど、さまざまなメトリックをキャプチャできます。 自動ログ記録を使用すると、開発者とデータ サイエンティストは、手動追跡なしでさまざまなモデルや実験のパフォーマンスを簡単に追跡および比較できます。

  • Copilot: データ サイエンスとデータ エンジニアリング用の Copilot ノートブックは、データの分析と視覚化に役立つ AI アシスタントです。 レイクハウス テーブル、Power BI データセット、pandas/spark データフレームで動作し、回答とコード スニペットをノートブックに直接提供します。 ノートブックでは Copilot チャット パネルとチャットマジックを使用できます。AI は、ノートブックにコピーするための応答やコードを提供します。

パブリック プレビューの既知の制限事項

  • ライブ プール エクスペリエンスは、Python ノートブックを実行するたびに保証されるわけではありません。 ノートブックの実行がライブ プールにヒットしない場合、セッションの開始時刻には最大 3 分かかることがあります。 Python ノートブックの使用量が増加するにつれて、インテリジェント なプール方法によって、需要に合わせてライブ プールの割り当てが徐々に増加します。

  • 環境の統合は、パブリック プレビューでは Python ノートブックに使用できません。

  • セッション タイムアウトの設定は、現時点では使用できません。

  • Copilot が生成する Spark ステートメントが、Python ノートブックで実行できない可能性があります。

  • 現時点では、Python ノートブックの Copilot は、いくつかのリージョンでは完全にはサポートされていません。 デプロイプロセスはまだ進行中です。より多くのリージョンでのサポート展開を継続しますので、ぜひご期待ください。