メインコンテンツまでスキップ

サーバレス環境の設定

この記事では、サーバレス ノートブックの 環境 サイド パネルを使用して、依存関係、サーバレス予算ポリシー、メモリ、および環境バージョンを構成する方法について説明します。 このパネルでは、ノートブックのサーバレス設定を 1 か所で管理できます。 このパネルでの設定は、ノートブックがサーバレス コンピュートに接続されている場合にのみ適用されます。

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

サーバレス 予算ポリシーとサーバレス環境パネル

非ノートブック ジョブ タスクの環境設定の構成に関する情報については、「 非ノートブック ジョブ タスクの環境の構成」を参照してください。

メモリー容量の多いサーバレス コンピュートの利用

備考

プレビュー

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

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

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

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

サーバレス 予算ポリシーの選択

備考

プレビュー

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

サーバレス 予算ポリシー を使用すると、組織はサーバレスの使用状況にカスタムタグを適用して、詳細な請求属性を実現できます。

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

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

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

サーバレス 予算ポリシーとサーバレスノートブック環境パネル

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

注記

ノートブックが Git リポジトリから作成されている場合、 またはサーバレス 予算ポリシーが割り当てられていない場合、次にサーバレス コンピュートにアタッチされるときに、最後に選択したサーバレス 予算ポリシーにデフォルトになります。

環境バージョンの選択

環境バージョンを使用すると、サーバレスワークロードは、アプリケーションの互換性に影響を与えることなく、独立したエンジンアップグレードを受け取ることができます。 各環境バージョンの詳細については、 サーバレス環境バージョンを参照してください。 Databricks では、最新のノートブック機能を利用するために、最新バージョンを選択することをお勧めします。

環境バージョンを選択するには:

  1. ノートブック UI で、サイドパネルの [ 環境 ] 環境サイドパネルをクリックします。
  2. 環境バージョン で、バージョンを選択します。
  3. [適用] をクリックします。

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

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

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

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

  2. 「依存関係 」セクションで、「 依存関係の追加 」をクリックし、フィールドに依存関係のパスを入力します。依存関係は、 requirements.txt ファイルで有効な任意の形式で指定できます。Python wheel ファイルまたは Python プロジェクト ( pyproject.tomlsetup.pyを含むディレクトリなど) は、ワークスペース ファイルまたは Unity Catalog ボリュームに配置できます。

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

サーバレス コンピュートを使用するジョブは、ノートブックの環境仕様をインストールしてからノートブックのコードを実行します。 つまり、ノートブックをジョブとしてスケジュールするときに依存関係を追加する必要はありません。

important

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

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

基本環境への依存関係の追加

基本環境は、ワークスペース ファイルとして、または追加の環境依存関係を指定する Unity Catalog ボリュームに格納される YAML ファイルです。[ 基本環境 ] ドロップダウン メニューからワークスペースの基本環境の 1 つを選択するか、[ カスタム] を選択してカスタム環境仕様を使用できます。

追加の依存関係をベース環境の上に個別にインストールできます。個別にインストールされた依存関係は、そのノートブックの基本環境をオーバーライドまたは拡張します。

ワークスペース管理者の手順については、「 サーバレスベース環境の管理」を参照してください。

カスタム環境仕様の作成

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

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

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

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

次の例は、一般的なユーティリティをワークスペースファイルに保存し、それをサーバレスノートブックに依存関係として追加する方法を示しています。

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

    Shell
    helper_utils/
    ├── helpers/
    │ └── __init__.py # your common functions live here
    ├── pyproject.toml
  2. 次のように pyproject.toml を入力します。

    Python
    [project]
    name = "common_utils"
    version = "0.1.0"
  3. init.pyファイルに関数を追加します。例えば:

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

  5. 「依存関係 」セクションで、「 依存関係の追加 」をクリックし、utilファイルのパスを入力します。たとえば、 /Workspace/helper_utilsのようになります。

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

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

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

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

Hello, world!

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

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

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

注記

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

サーバレス コンピュートに添付されたノートブックの [環境] サイド パネルで指定された依存関係を環境キャッシュをクリアし、新規インストールを実行するには、[ 適用] の横にある矢印をクリックし、[リセット] を [デフォルト] をクリックします。

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

デフォルトの Python パッケージリポジトリを構成する

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

手順については、ワークスペース管理者の「 デフォルト Python パッケージ リポジトリの構成」を参照してください。

ノートブック以外のジョブタスクの環境を構成する

Python script、Python wheel、dbt タスクなどのジョブ タスク タイプの場合、ライブラリの依存関係はサーバレス環境バージョンから継承されます。インストールされているライブラリのリストを表示するには、使用している環境バージョンの インストールされている Python ライブラリ セクションを参照してください。タスクにインストールされていない Python ライブラリが必要な場合は、 ワークスペース ファイル、Unity Catalog ボリューム、またはパブリック パッケージ リポジトリからライブラリをインストールできます。

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

  1. 環境とライブラリ ドロップダウン メニューで、 デフォルト 環境の横にある編集アイコンをクリックするか、 + 新しい環境の追加 をクリックします。

    デフォルト環境の編集

  2. 環境バージョン ドロップダウンから環境バージョンを選択します。サーバレス環境のバージョンを参照してください。Databricks では、最新の機能を利用するために、最新バージョンを選択することをお勧めします。

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

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

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

  • ワークスペース ファイル内の Python wheel の場合、パスは絶対パスで、/Workspace/ で始まる必要があります。

  • Python wheelボリューム内のUnity Catalog の場合、パスは/Volumes/<catalog>/<schema>/<volume>/<path>.whl である必要があります。

  • requirements.txtファイルの場合は、 PyPi を選択し、 -r /path/to/requirements.txtと入力します。

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

  1. 別のライブラリを追加するには、 確認 または + ライブラリの追加 をクリックします。
  2. タスクを追加する場合は、[ タスクを作成 ] をクリックします。タスクを編集している場合は、[ タスクを保存 ] をクリックします。