サーバレス・コンピュートでワークフロー用のDatabricksジョブを実行する

重要

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

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

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

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

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

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

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

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

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

要件

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

  • serverless Conpute for ワークフローは共有アクセス モードを使用するため、ワークロードはこのアクセス モードをサポートする必要があります。

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

注:

サーバーレス ワークロードでは、ワークロードを実行するために十分なリソースが確保されるため、大量のメモリを必要とする、または多くのタスクを含むDatabricksジョブを実行するときに起動時間が長くなる可能性があります。

サーバレス コンピュート は、 デル、 Pythonスクリプト、 dbt 、およびPython wheelタスク タイプでサポートされています。 デフォルトでは、新しいジョブを作成し、サポートされているタスク タイプのいずれかを追加するときに、サーバレス コンピュート がコンピュート タイプとして選択されます。

サーバーレスタスクを作成する

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

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

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

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

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

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

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

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

Spark構成を設定する

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

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

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

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

サーバレスコンピュートの自動最適化を設定して再試行を禁止する

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

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

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

  3. 「確認」をクリックします。

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

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

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

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

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

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

  2. 「名前」列で、知見を表示するジョブ名をクリックします。

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

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

  5. 参加していたタスクのタスク実行 ID に基づいて事前にフィルタリングされたクエリ履歴にリダイレクトされます。

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

制限事項

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