サーバレス コンピュート for ワークフローを使用してDatabricksジョブを実行する

重要

ワークフロー用サーバレス コンピュートは送信トラフィックの制御をサポートしていないため、ジョブはインターネットに完全にアクセスできます。

サーバーレス コンピュート for ワークフローを使用すると、インフラストラクチャの構成やデプロイを行わずにDatabricksジョブを実行できます。 サーバーレス コンピュートを使用すると、データ処理と分析パイプラインの実装に集中でき、 Databricksワークロードに合わせたコンピュートの最適化やスケーリングなど、コンピュート リソースを効率的に管理します。 オートスケールとPhoton 、ジョブを実行するコンピュート リソースに対して自動的に有効になります。

ワークフロー用サーバレス コンピュートの自動最適化では、ワークロードに基づいてインスタンス タイプ、メモリ、処理エンジンなどの適切なリソースを選択して、コンピュートを自動的に最適化します。 自動最適化では、失敗したジョブも自動的に再試行されます。

Databricks は、Databricks ジョブの安定性を確保しながら、プラットフォームの機能強化とアップグレードをサポートするために、Databricks Runtime バージョンを自動的にアップグレードします。 ワークフローで使用されている現在のDatabricks Runtimeバージョンを確認するには、サーバレス コンピュート リリースノートを参照してください。

クラスター作成権限が不要なため、すべてのワークスペースユーザーがサーバレスコンピュートを利用してワークフローを実行できます。

この記事では、 Databricks Jobs UI を使用して、サーバレス コンピュートを使用するジョブを作成および実行する方法について説明します。 Jobs API 、 Databricks Asset Bundles、 Databricks SDK for Pythonを使用して、サーバレス コンピュートを使用するジョブの作成と実行を自動化することもできます。

  • APIジョブ を使用して、サーバレス コンピュートを使用するジョブを作成および実行する方法については、 リファレンスの 「ジョブ」 RESTAPIを参照してください。

  • Databricksアセット バンドルを使用して、サーバレス コンピュートを使用するジョブを作成および実行する方法については、 「 Databricksアセット バンドルを使用してDatabricksでジョブを開発する」を参照してください。

  • Databricks SDK for Pythonを使用して、サーバーレス コンピュートを使用するジョブを作成および実行する方法については、 Databricks SDK for Pythonを参照してください。

要件

  • Databricks ワークスペースで Unity Catalog が有効になっている必要があります。

  • サーバレス コンピュート for ワークフローは共有アクセス モードを使用するため、ワークロードがこのアクセス モードをサポートしている必要があります。

サーバレスコンピュートを使用してジョブを作成する

注:

ワークフローのサーバーレス コンピュートでは、ワークロードを実行するための十分なリソースがプロビジョニングされることが保証されるため、大量のメモリを必要とするか、多くのタスクを含むDatabricksジョブを実行する場合、起動時間の増加が発生する可能性があります。

サーバーレス コンピュートは、ノートブック、 Pythonスクリプト、 dbt 、およびPython wheelタスク タイプでサポートされています。 新しいジョブを作成し、これらのサポートされているタスク タイプの 1 つを追加すると、サーバーレス コンピュート タイプがコンピュート タイプとして選択されます。

サーバレスタスクの作成

Databricks 、すべてのジョブ タスクにサーバーレス コンピュートを使用することをお勧めします。 ジョブ内のタスクにさまざまなコンピュート タイプを指定することもできます。これは、タスク タイプがワークフローのサーバレス コンピュートでサポートされていない場合に必要になる場合があります。

サーバレスコンピュートを使用するように既存のジョブを構成する

ジョブを編集するときに、サポートされているタスク タイプに対してサーバレス コンピュートを使用するように既存のジョブを切り替えることができます。 サーバレスコンピュートに切り替えるには、次のいずれかを実行します。

  • [ジョブの詳細]サイド パネルで、 [コンピュート]の下の[スワップ]をクリックし、 [新規]をクリックし、設定を入力または更新して、 [更新]をクリックします。

  • クリックダウンキャレットコンピュートドロップダウン メニューで[サーバレス]を選択します。

タスクをサーバレスコンピュートに切り替える

サーバレスコンピュートを使用してノートブックをスケジュールする

ジョブ UI を使用して、サーバレス コンピュートを使用するジョブを作成およびスケジュールするだけでなく、 Databricksノートブックから直接サーバレス コンピュートを使用するジョブを作成して実行することもできます。 「スケジュールされたノートブック ジョブの作成と管理」を参照してください。

Spark構成を設定する

サーバレス コンピュートでのSparkの構成を自動化するために、 Databricks特定のSpark構成のみを設定できます。 許容可能な Spark 構成のリストについては、 「サポートされているSpark構成」を参照してください。

Spark構成はセッションレベルでのみ設定できます。 これを行うには、それらをノートブックに設定し、そのノートブックを、その 引数 を使用する同じ ジョブ に含まれるタスクに追加します。 「ノートブックで Apache Spark 構成プロパティを取得および設定する」を参照してください。

環境と依存関係を構成する

サーバレス コンピュートを使用してライブラリと依存関係をインストールする方法については、 「ノートブックの依存関係をインストールする」を参照してください。

再試行を禁止するようにサーバーレス コンピュートの自動最適化を構成する

ワークフロー用サーバレス コンピュートの自動最適化では、ジョブの実行に使用されるコンピュート を自動的に最適化し、失敗したジョブを再試行します。 自動最適化はデフォルトで有効になっており、重要なワークロードが少なくとも 1 回は正常に実行されるようにするために、Databricks では有効のままにしておくことを推奨しています。 ただし、べき等性のないジョブなど、最大 1 回しか実行する必要のないワークロードがある場合は、タスクを追加または編集するときに自動最適化をオフにすることができます。

  1. 再試行の横にある追加(または編集アイコン(再試行ポリシーがすでに存在する場合)。

  2. [再試行ポリシー]ダイアログで、 [サーバーレス自動最適化を有効にする (追加の再試行が含まれる場合があります)]のチェックを外します。

  3. [確認]をクリックします。

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

ワークフロー用サーバレスコンピュートを使用したジョブのコストを監視する

ワークフローのサーバレスコンピュートを使用するジョブのコストは、課金利用システムテーブルをクエリすることで監視できます。 この表は、サーバーレス コストに関するユーザーおよびワークロード属性を含めるように更新されます。 料金利用システムテーブルリファレンス を参照してください。

Sparkクエリの詳細を表示する

ワークフロー用サーバレス コンピュートには、メトリックやクエリ プランなどのSparkステートメントの詳細な情報を表示するための新しいインターフェイスがあります。 サーバーレス コンピュート上のジョブ実行に含まれるSparkステートメントのクエリ 情報を表示するには:

  1. サイドバーのワークフローアイコンワークフロー]をクリックします。

  2. [名前]列で、情報を表示するジョブ名をクリックします。

  3. 知見を表示したい特定の実行をクリックします。

  4. [タスク実行]サイド パネルの[コンピュート]セクションで、 [クエリ履歴]をクリックします。

  5. あなたが参加していたタスクのタスク実行 ID に基づいて事前にフィルタリングされた、書き込みー履歴にリダイレクトされます。

クエリ履歴の使用に関する情報については、 「クエリ履歴」を参照してください。

制限事項

ワークフローの制限事項の一覧については、サーバレス コンピュート リリースノートの 「サーバレス コンピュート 制限事項」を参照してください。