次の方法で共有


ノートブックで 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 ノートブックでは、インテリセンスエンジンとして Pylance を、他の Fabric カスタマイズ言語サービスと共に採用し、ノートブック開発者に最先端のコーディング体験を提供することを目指しています。

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

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

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

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

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

Fabric ノートブックを開くと、[ホーム] タブの言語ドロップダウン メニューで [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 エンドポイント、および組み込みのリソース フォルダーを操作できます。

レイクハウスの相互作用

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

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

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

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

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

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

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

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

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

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

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

カーネルの操作

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

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

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

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

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

ライブラリ管理

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

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

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

セッション構成のマジック コマンド

ノートブックで Spark セッション構成をカスタマイズするのと同様に、Python ノートブックでも %%configure を使用できます。 Python ノートブックでは、コンピューティング ノードのサイズ、マウント ポイント、およびノートブック セッションの既定のレイクハウスのカスタマイズがサポートされています。 対話型ノートブックとパイプライン ノートブックの両方のアクティビティで使用できます。 ノートブックの冒頭で %%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

ノートブック ユーティリティ (NotebookUtils) は、Fabric ノートブックで一般的なタスクを簡単に実行するのに役立つ組み込みパッケージです。 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;")

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

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

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

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

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

視覚化

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

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

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

Code intelliSense

Python ノートブックでは、Python のコーディング エクスペリエンスを向上させるために Pylance が統合されています。Pylance は、Visual Studio Code における Python の既定の言語サービス サポートです。 キーワードの強調表示、クイック ヒント、コード補完、パラメータ情報、構文エラー検出など、使いやすい機能が多数用意されています。 さらに、ノートブックが長いときに、Pylance のパフォーマンスが向上します。

データ サイエンス機能

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

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

  • MLflow: 機械学習の実験は、関連するすべての機械学習の実行を編成および制御するための主要な単位です。 実行はモデル コードの 1 回の実行に対応します。

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

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

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

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

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

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

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

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

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