次の方法で共有


Fabric 環境でライブラリを管理する

Microsoft Fabric 環境では、Spark ジョブを実行するための柔軟な構成が提供されます。 ライブラリは、ノートブックと Spark ジョブ定義に再利用可能なコードを提供します。 各 Spark ランタイムに付属する組み込みのライブラリに加えて、Fabric 環境にパブリック ライブラリとカスタム ライブラリをインストールできます。

注意

環境が配置されているワークスペースに移動し、左側のナビゲーション ウィンドウで環境とライブラリ管理オプションを選択します。 環境が作成されていない場合は、「 Fabric で環境を作成、構成、および使用する」を参照してください。

組み込みライブラリ

Fabric では、各ランタイム バージョンには、Python、R、Java、Scala 全体のパフォーマンス、互換性、およびセキュリティ用に最適化された組み込みライブラリのキュレーションされたセットが事前に読み込まれています。 環境内 の組み込み ライブラリ ページでは、選択したランタイムに基づいて、プレインストールされているこれらのライブラリを参照して検索できます。

これらのライブラリは、すべての環境に既定でインストールされ、変更することはできません。 この環境でノートブックまたは Spark ジョブ定義を実行すると、使用できるようになります。

各ランタイムのプレインストール済みパッケージとそのバージョンの一覧を表示するには、 Fabric の Apache Spark ランタイムを参照してください。

注意

ノートブックごとのアプローチである Notebook Resources フォルダーやインライン インストール コマンド (たとえば、コード セル内の %pip install%conda install など) は手動であり、セッションスコープまたはノートブックスコープのものであり、環境の発行の影響を受けません。 これらを使用して、対話型開発時に 1 回限りのライブラリを簡単に追加できます。

Important

Fabric では、パッケージを管理するさまざまな方法がサポートされています。 その他のオプションと ベスト プラクティスについては、 Fabric での Apache Spark ライブラリの管理に関するページを参照してください。 ワークスペースで ワークスペースの送信アクセス保護マネージド VNet などのネットワーク機能を使用している場合、PyPI などのパブリック リポジトリへのアクセスはブロックされます。 ガイダンスについては、 Fabric でのネットワーク アクセスが制限されたライブラリの管理に関するページを参照してください。 組み込みのライブラリ バージョンがニーズを満たしていない場合は、外部リポジトリ セクションで目的のバージョンを指定するか、独自のカスタム パッケージをアップロードすることで、それらをオーバーライドできます。

外部リポジトリ

PyPI や Conda などのパブリック リポジトリから、またはプライベート リポジトリからライブラリを追加できます。 ソース モードと発行モードのオプションは、リポジトリの種類によって異なります。 ライブラリを追加するときは、発行モード (フルまたはクイック) を選択します。 各モードのしくみの詳細については、「ライブラリの 発行モードを選択する」を参照してください。

環境の [外部リポジトリ ライブラリ] 画面を示すスクリーンショット。

パブリック リポジトリからライブラリを追加する

パブリック リポジトリを使用すると、PyPI または Conda からパッケージをインストールできます。

  1. [ 外部リポジトリ ] タブで、[ ライブラリの追加] を選択します。

  2. パブリック リポジトリから [ライブラリの追加] を選択します

  3. ソース (PyPI または Conda) を選択します。

  4. 検索ボックスにライブラリ名を入力します。 入力すると、一般的なライブラリが検索ボックスに表示されますが、一覧は制限されます。 ライブラリが表示されない場合は、その完全な名前を入力します。

    パブリック リポジトリからライブラリを追加するプロセスを示すスクリーンショット。

    ライブラリ名が見つかった場合は、使用可能なバージョンが表示されます。

  5. バージョンを選択し、環境を保存して発行します。

プライベート リポジトリからライブラリを追加する

プライベート リポジトリを使用すると、pip または conda を使用してパッケージをインストールできます。

  1. [ 外部リポジトリ ] タブで、[ ライブラリの追加] を選択します。

  2. プライベート リポジトリから [ライブラリの追加] を選択します。

  3. ソース (pip または conda) を選択します。

  4. ライブラリ名とバージョンを入力します。 入力時にプライベート リポジトリ内のライブラリを検索することはサポートされていないため、ライブラリ 名とバージョンを正確に入力してください。 パッケージ情報が正しくないと、発行が失敗します。

Azure Artifact Feed からライブラリを追加する

Azure Artifact フィードのスコープは、プロジェクト (プライベート) または組織 (パブリック) のいずれかに設定できます。 Fabric では、両方のスコープがサポートされています。 Azure DevOps でのフィードの可視性に関係なく、Fabric は常に認証済みの Data Factory 接続を介して接続するため、パブリック フィードの場合でも接続を設定する必要があります。

注意

Azure Artifact Feed からのライブラリのインストールは、Spark 3.5 でサポートされています。 Private Link または送信アクセス保護が有効になっているワークスペースではサポートされていません。

Azure Artifact Feed の接続を設定する

Fabric は資格情報を直接格納しません。 代わりに、 Data Factory コネクタ を使用して接続を作成し、YML ファイル内の接続 ID で参照します。 Azure Artifact Feed の詳細を確認します。

  1. Fabric ポータルの右上隅にある [設定] 歯車アイコンを選択し、[ 接続とゲートウェイの管理] を選択します。

    環境外部リポジトリ コネクタのエントリポイントを示すスクリーンショット。

  2. 新しい接続を作成します。 [ + 新規 ] を選択し、種類として [クラウド ] を選択し、接続の種類として [Azure Artifact Feed (プレビュー)] を選択します。

    Azure Artifact Feed (プレビュー) が選択された状態で新しいクラウド接続を作成する例を示すスクリーンショット。

  3. パッケージ化>読み取りスコープを使用して、フィード URL と個人用アクセス トークン (PAT) を入力します。

  4. [ ノートブックなどの Code-First 成果物にこの接続へのアクセスを許可する (プレビュー)]を選択します。

    新しいコネクタ画面を作成する例を示すスクリーンショット。

  5. [ 作成] を選択して接続を保存します。 接続一覧に表示されます。

  6. 作成後に接続 ID を記録します。 次の手順で必要になります。

YML ファイルを準備してアップロードする

インストールするパッケージを一覧表示する YML ファイルを作成し、フィード URL と資格情報の代わりに接続 ID を参照します。 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 の場合は、URL を前に記録した接続 ID に置き換えます。

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

YML ファイルを環境に直接アップロードするか、 YML エディター ビュー に切り替えてコンテンツを貼り付けます。 環境を発行すると、Fabric によってフィードからパッケージが読み取られ、保持されます。 Azure Artifact Feed でパッケージを更新する場合は、 環境を再発行 して最新バージョンを取得します。

注意

  • リスト ビューでは、既存のフィード接続からライブラリを追加、削除、または編集できます。 フィード接続自体を追加、削除、または編集するには、 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) はい いいえ
Azure アーティファクト フィード はい いいえ
カスタム .whl.py.tar.gz はい はい
カスタム .jar はい いいえ

ニーズに適したモードを選択する

依存関係の複雑さとワークロードの種類を使用して、どのモードに適合するかを決定します。

  • フル モード では、依存関係が解決され、互換性が検証され、発行中に安定したライブラリ スナップショットが作成されます。 そのスナップショットは、新しいセッションの開始時にデプロイされます。 より大きな依存関係セット (たとえば、10 個を超えるパッケージ)、運用ワークロード、パイプラインに最適です。 通常、発行には 3 ~ 6 分かかります。セッションのスタートアップでは、依存関係のサイズに応じて、依存関係のデプロイに 1 ~ 3 分が追加されます。 約 5 秒のセッション開始を達成しながら安定したスナップショットを維持するには、 カスタム ライブ プールと共にフル モードを使用します。
  • クイック モード では、発行中に依存関係の処理がスキップされ、代わりにノートブック セッションの起動時にパッケージがインストールされます。 より軽い依存関係セット、迅速な反復、および初期段階の実験に最適です。 発行は約 5 秒で完了します。ライブラリのインストールはセッション開始時に行われます。

開発中にモードを混在させることができます。 一般的なパターンは、クイック モードで反復処理し、安定した運用スナップショットの検証済み依存関係をフル モードに移動することです。 また、既存のフル モード のスナップショットを変更せずに、新しいテスト パッケージをクイック モードでレイヤー化することもできます。フル モード のスナップショットは最初にデプロイされ、次にクイック モード パッケージが一番上にインストールされます。

モードの制限事項と動作

発行モードを使用する場合は、これらの制約に留意してください。

  • クイック モードはノートブックでのみ機能し、Spark ジョブ定義では機能しません。
  • モード間でカスタム ライブラリを移動するには、ファイルをダウンロードし、現在のモードから削除してから、ターゲット モードにアップロードします。 モード間の直接転送はサポートされていません。
  • インストール ログはノートブックに表示されません。 監視 (レベル 2) を使用して進行状況を追跡し、トラブルシューティングを行います。
  • 両方のモードにパッケージが含まれている場合は、最初にフル モード スナップショットが適用されます。 クイック モード パッケージが一番上にインストールされ、同じ名前のフル モード パッケージがオーバーライドされます。
  • 複数のモードに重複するパッケージが存在する場合、クイック モード バージョンは、現在のノートブック セッションに対してのみフル モード バージョンをオーバーライドします。 新しいセッションを開始すると、最初にフル モード スナップショットが再適用され、次にクイック モード パッケージが一番上にインストールされます。
  • クイック モード パッケージは、その言語の最初のコード セルが実行されるときにインストールされます。 たとえば、Python パッケージは最初の Python セルの実行時にインストールされ、R パッケージは最初の R セルの実行時にインストールされます。