サーバーレス環境を構成する

このページでは、サーバーレス ノートブックの [環境 ] サイド パネルを使用して、依存関係、サーバーレス使用ポリシー、メモリ、基本環境を構成する方法について説明します。 このパネルには、ノートブックのサーバーレス設定を管理するための 1 つの場所が用意されています。 このパネルで構成された設定は、ノートブックがサーバーレス コンピューティングに接続されている場合にのみ適用されます。

[環境] サイド パネルを展開するには、ノートブックの右側にある環境ボタンをクリックします。

サーバーレス環境パネル

AI ランタイム (サーバーレス GPU) の使用

Important

AI ランタイムは パブリック プレビュー段階です

Databricks ノートブックで、サーバーレス GPU コンピューティングを利用して AI ランタイムを構成するには、次の手順に従います。

  1. ノートブックで、上部にあるコンピューティング ドロップダウン メニューをクリックし、[ サーバーレス GPU] を選択します。
  2. [ 環境] アイコン をクリックして、[ 環境 ] サイド パネルを開きます。
  3. [アクセラレータ] フィールドから A10 を選択します。
  4. [ 基本環境] で、既定の環境の 場合は [Standard ] を 選択し、 事前にインストールされている機械学習ライブラリを使用する AI 最適化環境の場合は [AI] を選択します。
  5. [ 適用 ] をクリックし、AI ランタイムをノートブック環境に適用することを 確認 します。

詳細については、 AI ランタイムに関するページを参照してください。

高メモリ サーバーレス コンピューティングを使用する

Important

この機能は パブリック プレビュー段階です

ノートブックでメモリ不足エラーが発生した場合は、より大きなメモリ サイズを使用するようにノートブックを構成できます。 この設定により、ノートブックでコードを実行するときに使用される REPL メモリのサイズが大きくなります。 Spark セッションのメモリ サイズには影響しません。 メモリが多いサーバーレス使用量は、標準メモリよりも DBU の放射率が高くなります。

使用可能なメモリ オプションは次のとおりです。

  • Standard: 16 GB の合計メモリ。
  • : 合計 32 GB のメモリ。

ノートブックのメモリ設定を構成するには:

  1. ノートブック UI で、[ 環境 ] サイド パネル 環境をクリックします。
  2. [メモリ] で、[大容量メモリ] を選択します。
  3. [適用] をクリックします。

この設定は、ノートブックのメモリ設定を使用して実行されるノートブック ジョブ タスクにも適用されます。 ノートブックのメモリ設定を更新すると、次のジョブの実行に影響します。

サーバーレス使用ポリシーを選択する

Important

この機能は パブリック プレビュー段階です

サーバーレス使用ポリシーを 使用すると、組織は、詳細な課金属性のために、サーバーレスの使用状況にカスタム タグを適用できます。

ワークスペースでサーバーレス使用ポリシーを使用してサーバーレスの使用状況を属性付けする場合は、ノートブックに適用するサーバーレス使用ポリシーを選択できます。 ユーザーが 1 つのサーバーレス使用ポリシーにのみ割り当てられている場合、そのポリシーは既定で選択されます。

ノートブックがサーバーレス コンピューティングに接続された後は、 環境 のサイド パネルを使用して、サーバーレス使用ポリシーを選択できます。

  1. ノートブック UI で、[ 環境 ] サイド パネル 環境をクリックします。
  2. [ サーバーレス使用ポリシー ] で、ノートブックに適用するサーバーレス使用ポリシーを選択します。
  3. [適用] をクリックします。

このセットアップが完了すると、すべてのノートブックの使用は、サーバーレス使用ポリシーのカスタム タグを継承します。

Note

ノートブックが Git リポジトリから作成された場合、または サーバーレス使用ポリシーが割り当てられない場合は、次にサーバーレス コンピューティングにアタッチされるときに、最後に選択したサーバーレス使用ポリシーが既定で設定されます。

基本環境を選択する

基本環境によって、サーバーレス ノートブックで使用できるプレインストール済みのライブラリと環境のバージョンが決まります。 [環境] サイド パネルの [基本環境] セレクターには、環境を選択するための統一されたインターフェイスが用意されています。 各環境バージョンの詳細については、 サーバーレス環境のバージョンに関するページを参照してください。 Databricks では、最新バージョンを使用して、ノートブック機能を最新の状態に保つことをお勧めします。

基本環境セレクターには、次のオプションが含まれています。

  • 標準: Databricks が提供するライブラリを含む既定の基本環境。
  • AI: 事前にインストールされた機械学習ライブラリを備えた AI 最適化ベース環境。 このオプションは、アクセラレータ (GPU) が選択されている場合にのみ表示されます。
  • その他: 展開して追加のオプションを表示します。
    • 以前のバージョンの Standard 環境と AI 環境。
    • カスタム: YAML ファイルを使用してカスタム環境を指定できます。
  • ワークスペース環境: 管理者によってワークスペース用に構成されたすべての互換性のある基本環境が一覧表示されます。

基本環境を選択するには:

  1. ノートブック UI で、[ 環境 ] サイド パネル 環境をクリックします。
  2. [ 基本環境] で、ドロップダウン メニューから環境を選択します。
  3. [適用] をクリックします。

ノートブックに依存関係を追加する

サーバーレスはコンピューティング ポリシーや init スクリプトをサポートしていないため、 環境 サイド パネルを使用してカスタム依存関係を追加する必要があります。 依存関係を個別に追加することも、共有可能な基本環境を使用して複数の依存関係をインストールすることもできます。

依存関係を個別に追加するには:

  1. ノートブック UI で、[ 環境 ] サイド パネル 環境をクリックします。

  2. [ 依存関係 ] セクションで、[ 依存関係の追加 ] をクリックし、フィールドに依存関係のパスを入力します。 依存関係は、requirements.txt ファイルで有効な形式であれば、どの形式でも指定できます。 Pythonホイール ファイルまたはPython プロジェクト (たとえば、pyproject.toml または setup.py を含むディレクトリ) は、ワークスペース ファイルまたは Unity カタログ ボリュームに配置できます。

    • ワークスペース ファイルを使用する場合、パスは絶対パスで、 /Workspace/で始まる必要があります。
    • Unity カタログ ボリュームでファイルを使用する場合、パスは次の形式にする必要があります: /Volumes/<catalog>/<schema>/<volume>/<path>.whl
  3. [適用] をクリックします。 これにより、ノートブック仮想環境に依存関係がインストールされ、Python プロセスが再起動されます。

Important

サーバーレス ノートブックには、PySpark または PySpark を依存関係としてインストールするライブラリをインストールしないでください。 インストールすると、セッションが停止しエラーが発生します。 これが発生した場合は、そのライブラリを削除し、環境をリセットしてください。

インストールされている依存関係を表示するには、[環境] サイド パネルの [インストール済み] タブをクリックします。 パネルの下部にある pip ログ をクリックして、ノートブック環境の pip インストール ログも使用できます。

カスタム環境仕様を作成する

カスタム環境仕様を作成して再利用できます。

  1. サーバーレス ノートブックで、基本環境を選択し、インストールする依存関係を追加します。
  2. Kebab メニュー アイコン [Kebab] メニュー アイコン をクリックします。環境パネルの下部にある [ 環境のエクスポート] をクリックします。
  3. 仕様をワークスペース ファイルまたは Unity カタログ ボリュームとして保存します。

ノートブックでカスタム環境仕様を使用するには、[基本環境] ドロップダウン メニューから [カスタム] を選択し、フォルダー アイコンの [フォルダー] アイコンを使用します。YAML ファイルを選択します。

ワークスペース間で共有する共通ユーティリティを作成する

次の例では、ワークスペース ファイルに共通ユーティリティを格納し、サーバーレス ノートブックに依存関係として追加する方法を示します。

  1. 次の構造のフォルダーを作成します。 プロジェクトのコンシューマーがファイル パスに適切なアクセス権を持っていることを確認します。

    helper_utils/
    ├── helpers/
    │   └── __init__.py   # your common functions live here
    ├── pyproject.toml
    
  2. pyproject.toml を次の形式で入力してください。

    [project]
    name = "common_utils"
    version = "0.1.0"
    
  3. init.py ファイルに関数を追加します。 例えば次が挙げられます。

    def greet(name: str) -> str:
        return f"Hello, {name}!"
    
  4. ノートブック UI で、[ 環境 ] サイド パネルの [環境] アイコンをクリックします。

  5. [ 依存関係 ] セクションで、[ 依存関係の追加 ] をクリックし、util ファイルのパスを入力します。 たとえば、 /Workspace/helper_utilsと指定します。

  6. [適用] をクリックします。

これで、ノートブックで関数を使用できるようになりました。

from helpers import greet
print(greet('world'))

これは次のように出力されます。

Hello, world!

環境の依存関係をリセットする

ノートブックがサーバーレス コンピューティングに接続されている場合、Databricks はノートブックの仮想環境のコンテンツを自動的にキャッシュします。 つまり、通常、既存のノートブックが非アクティブのため切断されている場合でも、Environment サイド パネルで指定されているPythonの依存関係を再インストールする必要はありません。

Python仮想環境のキャッシュもジョブに適用されます。 ジョブが実行されると、必要な依存関係は既に使用可能であるため、その実行において完了したタスクと同じ依存関係セットを共有するジョブのタスクは高速になります。

Note

サーバーレスのジョブで使用されるカスタム Python パッケージの実装を変更する場合は、ジョブが最新の実装を取得できるように、そのバージョン番号も更新する必要があります。

環境キャッシュをクリアし、サーバーレス コンピューティングに接続されているノートブックの 環境 側パネルで指定された依存関係の新しいインストールを実行するには、[ 適用 ] の横にある矢印をクリックし、[ 既定値にリセット] をクリックします。

コア ノートブックまたは Apache Spark 環境を中断または変更するパッケージをインストールする場合は、問題のあるパッケージを削除してから、環境をリセットします。 新しいセッションを開始しても、環境キャッシュ全体がクリアされるわけではありません。

既定のPython パッケージ リポジトリを構成する

ワークスペース管理者は、サーバーレス ノートブックとサーバーレス ジョブの両方の既定の pip 構成として、ワークスペース内のプライベートまたは認証済みのパッケージ リポジトリを構成できます。 これにより、ユーザーは、index-url または extra-index-url を明示的に定義せずに、内部Python リポジトリからパッケージをインストールできます。

手順については、ワークスペース管理者が Configure の既定のPython パッケージ リポジトリを参照できます。

ジョブ タスクの環境を構成する

ノートブック、Python スクリプト、Python ホイール、JAR、dbt タスクなどのジョブ タスクの種類の場合、ライブラリの依存関係はサーバーレス環境バージョンから継承されます。 インストールされているライブラリの一覧を表示するには、インストールされているPython ライブラリまたは使用している environment バージョンの 「Java ライブラリと Scala ライブラリのインストール2>」セクションを参照してください。 タスクにインストールされていないライブラリが必要な場合は、 ワークスペース ファイル、Unity カタログ ボリューム、またはパブリック パッケージ リポジトリからライブラリ インストールできます。

既存のノートブックの環境を持つノートブックの場合は、ノートブックの環境を使用してタスクを実行するか、代わりにジョブ レベルの環境を選択してオーバーライドできます。

Important

JAR タスクにサーバーレス コンピューティングを使用することは、 パブリック プレビュー段階です

ジョブ タスクを作成または編集するときにライブラリを追加するには:

  1. [環境とライブラリ] ドロップダウン メニューで、[Edit IconEdit Icon既定の環境] の横にある をクリックするか、[+ 新しい環境の追加] をクリックします。

    既定の環境を編集する

  2. [環境バージョン] ドロップダウンから環境バージョンを選択します。 「サーバーレス環境バージョン」を参照してください。 Databricks では、最新バージョンを選択して最新の機能を入手することを推奨しています。

  3. [環境の構成] ダイアログで、[+ ライブラリを追加] をクリックします。

  4. [ライブラリ] ドロップダウン メニューから依存関係の種類を選択します。

  5. [ファイル パス] テキスト ボックスに、ライブラリへのパスを入力します。

    • ワークスペース ファイル内の Python Wheel の場合、パスは絶対パスで、/Workspace/ で始まる必要があります。
    • Unity カタログ ボリューム内の Python Wheel の場合、パスは /Volumes/<catalog>/<schema>/<volume>/<path>.whl にする必要があります。
    • requirements.txt ファイルの場合は、PyPi を選択し、「-r /path/to/requirements.txt」と入力します。

    タスク ライブラリを追加する

  6. 別のライブラリを追加するには、[確認] をクリックするか、[+ ライブラリの追加] をクリックします。

  7. タスクを追加する場合は、[タスクの 作成] をクリックします。 タスクを編集している場合は、[タスクの 保存] をクリックします。

ジョブ タスクの基本環境

サーバーレス ジョブは、Python、Python ホイール、ノートブック タスク用の YAML ファイルで定義されたカスタム基本環境をサポートします。 ノートブック タスクの場合は、ジョブの環境構成でカスタム基本環境を選択するか、ワークスペース環境とカスタム基本環境の両方をサポートするノートブック独自の環境設定を使用できます。 いずれの場合も、タスクに必要な依存関係のみが実行時にインストールされます。 ジョブの環境設定でカスタム基本環境を直接選択できます。 カスタム基本環境を作成するには、「 カスタム環境の仕様を作成する」を参照してください。

ジョブ内の管理された基本環境

Important

この機能は ベータ版です。 ワークスペース管理者は、[ プレビュー] ページからこの機能へのアクセスを制御できます。 Manage Azure Databricks プレビューを参照してください。

ジョブの環境設定で、マネージド ベース環境を直接選択できます。 これには、ワークスペース管理者によって構成されたワークスペース基本環境と、StandardAI など、Azure Databricksによって提供される基本環境が含まれます。 これらは、ノートブック環境セレクターで使用できるのと同じ基本環境です。 ワークスペース基本環境の作成と管理の詳細については、「 サーバーレス ワークスペースの基本環境の管理」を参照してください。

マネージド ベース環境は、ノートブック、Python スクリプト、およびPython ホイール タスクでサポートされています。 JAR タスクではサポートされていません。

環境とコンピューティングの互換性

選択する基本環境は、タスクのコンピューティングの種類と互換性がある必要があります。 たとえば、GPU コンピューティング用に構築された環境は、CPU コンピューティングと互換性がありません。 ジョブ UI では、互換性のない環境は基本環境のドロップダウンで淡色表示されます。

ノートブック タスクを構成する場合、コンピューティングの種類 (CPU または GPU) と基本環境はそれぞれ、ジョブ設定またはノートブック設定から取得できます。

  • ジョブ レベルでハードウェア アクセラレータ (GPU) を設定する場合は、ジョブ レベルで基本環境も選択する必要があります。 ジョブ レベル アクセラレータでは、ノートブックの環境を使用できません。
  • ノートブックを参照するジョブを作成した後でノートブックのコンピューティングの種類 (CPU から GPU など) を変更すると、既存のタスクが構成された環境と互換性を持たなくなる可能性があります。 ノートブックのコンピューティング構成を変更した後、ジョブの環境設定を確認します。
  • API ユーザーの場合、基本環境がジョブ レベルで設定されているが、コンピューティングの種類がノートブックから継承されている場合、互換性はジョブ作成時ではなく実行時に検証されます。 構成に互換性がない場合、実行はエラーで失敗します。