Run, your Databricks job, with サーバレス コンピュート for ワークフロー
サーバレス コンピュート for ワークフローを使用すると、インフラストラクチャを構成およびデプロイせずに Databricks ジョブを実行できます。 サーバレス コンピュートを使用すると、データ処理と分析のパイプラインの実装に集中でき、ワークロードの最適化やスケーリングなど、コンピュート リソースを効率的に管理 Databricks 。 オートスケールと Photon は、ジョブを実行するコンピュート リソースに対して自動的に有効になります。
サーバレス コンピュート for ワークフロー は、インスタンスタイプ、メモリ、処理エンジンなどのインフラストラクチャを自動的かつ継続的に最適化し、ワークロードの特定の処理要件に基づいて最高のパフォーマンスを確保します。
Databricks は、Databricks ジョブの安定性を確保しながら、プラットフォームの機能強化とアップグレードをサポートするために、Databricks Runtime バージョンを自動的にアップグレードします。 サーバレス コンピュートがワークフローに使用している現在の Databricks Runtime バージョンを確認するには、 サーバレス コンピュート リリースノートを参照してください。
クラスターの作成権限は必要ないため、すべてのワークスペース ユーザーはサーバレス コンピュートを使用してワークフローを実行できます。
この記事では、 Databricks Jobs UIを使用して、サーバレス コンピュートを使用するジョブを作成および実行する方法について説明します。 また、サーバレス コンピュートを使用するジョブの作成と実行を、ジョブAPI 、Databricks アセット バンドル、DatabricksSDK のPython と共に自動化することもできます。
- APIJobs を使用して、サーバレス コンピュートを使用するジョブを作成および実行する方法については、 リファレンスの 「ジョブRESTAPI」を参照してください。
- Databricks Asset Bundles を使用して、サーバレス コンピュートを使用するジョブを作成および実行する方法については、「Databricks Asset Bundles を使用して Databricks でジョブを開発する」を参照してください。
- Databricks SDK for Pythonを使用して、サーバレス コンピュートを使用するジョブを作成および実行する方法については、Databricks SDK for Pythonを参照してください。
必要条件
- Databricks ワークスペースで Unity Catalog が有効になっている必要があります。
- サーバレス コンピュート for ワークフローは 標準アクセスモードを使用するため、ワークロードはこのアクセスモードをサポートする必要があります。
- Databricks ワークスペースは、サポートされているリージョンに存在する必要があります。 「地域限定での提供が可能な機能」を参照してください。
サーバレス コンピュートを使用してジョブを作成する
サーバレス コンピュート for ワークフローは、ワークロードを実行するのに十分なリソースがプロビジョニングされていることを確認するため、大量のメモリを必要とするジョブや多くのタスクを含む Databricks ジョブを実行すると、起動時間が長くなる可能性があります。
サーバレス コンピュートは、ノートブック、 Python スクリプト、 dbt、 Python wheel タスク タイプでサポートされています。 デフォルトでは、新しいジョブを作成し、これらのサポートされているタスクタイプのいずれかを追加するときに、サーバレス コンピュートがコンピュートタイプとして選択されます。
Databricks では、すべてのジョブ タスクにサーバレス コンピュートを使用することをお勧めします。 また、ジョブ内のタスクに異なるコンピュートタイプを指定することもできます。これは、タスクタイプがサーバレス ワークフローのコンピュートでサポートされていない場合に必要になることがあります。
ジョブのアウトバウンドネットワーク接続を管理するには、 サーバレス出力制御とはを参照してください。
サーバレス コンピュートを使用するように既存のジョブを構成する
既存のジョブを切り替えて、サポートされているタスクタイプにサーバレス コンピュートを使用するように切り替えることができます。 サーバレス コンピュートに切り替えるには、次のいずれかを実行します。
- ジョブ詳細 サイドパネルで、「 コンピュート 」の下の 「スワップ 」をクリックし、「 新規 」をクリックして、設定を入力または更新し、「 更新 」をクリックします。
[コンピュート] ドロップダウンメニューで [] をクリックし、[ サーバレス] を選択します。
サーバレス コンピュートを使用してノートブックをスケジュールする
ジョブUIを使用してサーバレス コンピュートを使用してジョブを作成およびスケジュールするだけでなく、サーバレス コンピュートを使用するジョブを Databricks ノートブックから直接作成および実行することもできます。 「スケジュールされたノートブック ジョブの作成と管理」を参照してください。
サーバレスの用途に適したサーバレス 予算ポリシーを選択します
プレビュー
この機能は パブリック プレビュー段階です。
サーバレス 予算ポリシー を使用すると、組織はサーバレスの使用状況にカスタムタグを適用して、詳細な請求属性を実現できます。
ワークスペースでサーバレス予算ポリシーを使用してサーバレスの使用量を属性化している場合は、ジョブの詳細UIの 予算ポリシー 設定を使用して、ジョブのサーバレス予算ポリシーを選択できます。 1 つのサーバレス 予算ポリシーにのみ割り当てられている場合、新しいジョブに対してポリシーが自動的に選択されます。
サーバレス 予算ポリシーが割り当てられた後、既存のジョブはポリシーで自動的にタグ付けされません。 既存のジョブにポリシーをアタッチする場合は、既存のジョブを手動で更新する必要があります。
サーバレス 予算ポリシーの詳細については、 サーバレス 予算ポリシーによる属性の使用を参照してください。
Spark 構成パラメーターの設定
サーバレス コンピュートでの Spark の設定を自動化するために、 Databricks では特定の Spark 設定パラメータのみを設定できます。 許容されるパラメーターのリストについては、 サポートされる Spark 構成パラメーターを参照してください。
Spark構成はセッションレベルでのみ設定できます。 これを行うには、それらをノートブックに設定し、そのノートブックを、その 引数 を使用する同じ ジョブ に含まれるタスクに追加します。 「ノートブックで Apache Spark 構成プロパティを取得および設定する」を参照してください。
環境と依存関係を設定する
サーバレス コンピュートを使用してライブラリと依存関係をインストールする方法については、 サーバレス環境の設定を参照してください。
ノートブックのタスク用にハイメモリを構成する
プレビュー
この機能は パブリック プレビュー段階です。
ノートブックのタスクは、より大きなメモリサイズを使用するように設定できます。これを行うには、ノートブックの [環境 ] サイド パネルで [メモリ ] 設定を構成します。Use high memory サーバレス コンピュートを参照してください。
ハイメモリは、ノートブックのタスクタイプでのみ使用できます。
サーバレス コンピュート auto-optimization を構成して再試行を許可しないようにします
サーバレス コンピュート for ワークフローの自動最適化処理 は、ジョブの実行に使用されたコンピュートを自動的に最適化し、失敗したタスクを再試行します。 自動最適化はデフォルトで有効になっており、Databricks では、重要なワークロードが少なくとも 1 回は正常に実行されるように、有効のままにしておくことをお勧めします。 ただし、べき等でないジョブなど、最大で一度に実行する必要があるワークロードがある場合は、タスクを追加または編集するときに自動最適化をオフにできます。
- [再試行 ] の横にある [ 追加 ] をクリックします (再試行ポリシーがすでに存在する場合は [
] をクリックします)。
- [Retry ポリシー ] ダイアログで、[ Enable Serverレス auto-optimization (may include additional retries)] のチェックを外します。
- 確認 をクリックします。
- タスクを追加する場合は、 タスクの作成 をクリックします。 タスクを編集している場合は、 タスクを保存 をクリックします。
サーバレス コンピュート for ワークフローを使用するジョブのコストを監視する
サーバレス コンピュートをワークフローに使用しているジョブのコストは、 課金利用 システムテーブルを照会することで監視できます。 このテーブルは、サーバレスのコストに関するユーザ属性とワークロード属性を含むように更新されています。 「課金利用 システムテーブル リファレンス」を参照してください。
現在の価格とプロモーションに関する情報については、 ワークフロー 価格 ページを参照してください。
ジョブ実行のクエリ詳細を表示する
Spark ステートメントの詳細なランタイム情報 (メトリクスやクエリプランなど) を表示できます。
ジョブ UI からクエリの詳細にアクセスするには、次の手順に従います。
-
サイドバーの
[ ワークフロー ]をクリックします。
-
表示するジョブの名前をクリックします。
-
表示する特定の実行をクリックします。
-
[タイムライン] をクリックすると、実行がタイムラインとして表示され、個々のタスクに分割されます。
-
タスク名の横にある矢印をクリックすると、クエリステートメントとそのランタイムが表示されます。
-
ステートメントをクリックして、 クエリの詳細 パネルを開きます。 このパネルで使用できる情報の詳細については、「 クエリの詳細の表示 」を参照してください。
タスクのクエリ履歴を表示するには:
- タスク実行 サイドパネルの コンピュート セクションで、[ クエリ履歴 ] をクリックします。
- クエリー履歴にリダイレクトされ、参加していたタスクのタスク実行 ID に基づいて事前にフィルタリングされます。
クエリ履歴の使用に関する情報については、「 DLT パイプラインのクエリ履歴へのアクセス 」および 「クエリ履歴」を参照してください。
制限
ワークフローの制限事項に関するサーバレス コンピュートのリストについては、サーバレス コンピュート リリースノートの 「サーバレス コンピュートの制限事項 」を参照してください。