ジョブコンピュートの設定
この記事には、 Databricks ジョブのコンピュートを構成するための推奨事項とリソースが含まれています。
重要
ジョブ用サーバレスコンピュートには、次のような制限があります。
継続的なスケジューリングはサポートされていません。
構造化ストリーミングでは、デフォルトまたは時間ベースのインターバルトリガーはサポートされていません。
その他の制限事項については、 サーバレス コンピュートの制限事項を参照してください。
各ジョブには、1 つ以上のタスクを含めることができます。 コンピュート リソースは、タスクごとに定義します。 同じジョブに対して定義された複数のタスクは、同じコンピュート リソースを使用できます。
各タスクの推奨コンピュートは?
次の表は、各タスクの種類で推奨およびサポートされているコンピュートの種類を示しています。
手記
ジョブ用サーバレスコンピュートブには制限があり、すべてのワークロードをサポートしているわけではありません。 サーバレス コンピュートの制限事項を参照してください。
タスク |
おすすめコンピュート |
対応コンピュート |
---|---|---|
ノートブック |
サーバレス ジョブ |
ジョブ用サーバレス、ジョブ用クラシック、汎用クラシック |
Pythonスクリプト |
サーバレス ジョブ |
ジョブ用サーバレス、ジョブ用クラシック、汎用クラシック |
Python Wheel |
サーバレス ジョブ |
ジョブ用サーバレス、ジョブ用クラシック、汎用クラシック |
SQL |
サーバレス SQLウェアハウス |
サーバレス SQLウェアハウス, pro SQLウェアハウス |
Delta Live Tablesパイプライン |
サーバレス パイプライン |
サーバレス パイプライン、クラシックパイプライン |
dbt |
サーバレス SQLウェアハウス |
サーバレス SQLウェアハウス, pro SQLウェアハウス |
dbt CLI コマンド |
サーバレス ジョブ |
ジョブ用サーバレス、ジョブ用クラシック、汎用クラシック |
JAR |
クラシックジョブ |
クラシックジョブ、クラシック万能 |
Spark Submit |
クラシックジョブ |
クラシックジョブ |
ジョブの価格は、タスクの実行に使用されるコンピュートに関連付けられています。 詳細については、「 Databricks の価格」を参照してください。
ジョブのコンピュートを設定するにはどうすればよいですか?
クラシック ジョブ コンピュートは Databricks ジョブ UI から直接設定され、これらの設定はジョブ定義の一部です。 他のすべての使用可能なコンピュート タイプは、他のワークスペース アセットと共に構成を保存します。 次の表に詳細を示します。
クラスタータイプ |
詳細 |
---|---|
クラシックジョブコンピュート |
クラシックジョブのコンピュートは、汎用コンピュートと同じUIと設定を使用して設定します。 コンピュート設定リファレンスを参照してください。 |
ジョブ用サーバレスコンピュート |
ジョブ用サーバレスコンピュートは、それをサポートするすべてのタスクのデフォルトです。 Databricks サーバレス コンピュートのコンピュート設定を管理します。 ワークフローについては、サーバレス コンピュートを使用して Databricks ジョブを実行するを参照してください。このオプションを表示するには、ワークスペース管理者がサーバレス コンピュートを有効にする必要があります。 サーバレス コンピュートの有効化を参照してください。 |
SQLウェアハウス |
サーバレスと Pro SQLウェアハウスは、ワークスペース管理者または無制限のクラスター作成権限を持つユーザーによって構成されます。 既存の SQLウェアハウスに対してタスクを実行するように構成します。 「SQLウェアハウスへの接続」を参照してください。 |
Delta Live Tables パイプライン コンピュート |
Delta Live Tables パイプラインのコンピュート設定は、パイプラインの設定時に構成します。Delta Live Tables パイプラインのコンピュートの設定を参照してください。Databricksがサーバレス Delta Live Tables パイプラインのコンピュートリソースを管理します。サーバレス Delta Live Tables パイプラインの設定を参照してください。 |
汎用コンピューティング |
オプションで、従来の汎用コンピュートを使用してタスクを設定できます。 Databricks では、この構成を本番運用ジョブにはお勧めしません。 「コンピュート設定リファレンス」および「汎用コンピュートをジョブに使用すべきか」を参照してください。 |
ジョブコンピュートのレビュー、設定、切り替え
ジョブ詳細パネルのコンピュートセクションには、現在のジョブのタスクに設定されたすべてのコンピュートが一覧表示されます。
コンピュート リソースを使用するように構成されたタスクは、コンピュート仕様にカーソルを合わせると、タスク グラフで強調表示されます。
スワップ ボタンを使用して、コンピュート リソースに関連付けられているすべてのタスクのコンピュートを変更します。
クラシック ジョブ コンピュート リソースには [構成] オプションがあります。 その他のコンピュート リソースには、コンピュート構成の詳細を表示および変更するオプションがあります。
クラシック ジョブ コンピュートの構成に関する推奨事項
このセクションでは、一部のワークフローに役立つ機能と構成に関する一般的な推奨事項に焦点を当てます。 コンピュート リソースのサイズとタイプを設定するための具体的な推奨事項は、ワークロードによって異なります。
Databricks では、 Photon アクセラレーションを有効にし、最新の Databricks Runtime バージョンを使用し、 Unity Catalog用に構成されたコンピュートを使用することをお勧めします。
ジョブ用サーバレスコンピュートは、すべてのインフラストラクチャを管理するため、次の考慮事項を排除します。 ワークフローについては、サーバレス コンピュートを使用して Databricks ジョブを実行するを参照してください。
手記
構造化ストリーミングワークフローには、特定の推奨事項があります。 構造化ストリーミングについては、本番運用に関する考慮事項を参照してください。
クラスターポリシーを使用する
Databricks では、ワークスペース管理者がジョブのクラスターポリシーを定義し、ジョブを構成するすべてのユーザーにこれらのポリシーを適用することをお勧めします。
クラスターポリシー ワークスペース管理者がコスト管理を設定し、ユーザーの構成オプションを制限できるようにします。 クラスターポリシーの設定の詳細については、「 コンピュート ポリシーの作成と管理」を参照してください。
Databricks は、ジョブ用に構成されたデフォルト ポリシーを提供します。 管理者は、このポリシーを他のワークスペース ユーザーが使用できるようにすることができます。 ジョブ コンピュートを参照してください。
オートスケールを使う
オートスケールを構成して、実行時間の長いタスクがジョブの実行中にワーカーノードを動的に追加および削除できるようにします。 「オートスケールを有効にする」を参照してください。
プールを使用してクラスターの起動時間を短縮する
コンピュート プールを使用すると、クラウド プロバイダーからコンピュート リソースを予約できます。 プールは、新しいジョブ クラスターの開始時間を短縮し、コンピュート リソースの可用性を確保するのに役立ちます。 「プール構成リファレンス」を参照してください。
スポットインスタンスの使用
レイテンシー要件が緩いワークロードのスポットインスタンスを設定して、コストを最適化します。 「 スポットインスタンス」を参照してください。
アベイラビリティゾーンの構成
組織がリザーブドインスタンスを購入した場合はアベイラビリティーゾーン (AZ) を指定し、AWS が容量不足エラーを返した場合は、Auto-AZ を使用して他のアベイラビリティーゾーンで再試行します。 「アベイラビリティゾーン」を参照してください。
汎用コンピュートはジョブに使うべきでしょうか?
Databricksがジョブに汎用コンピュートを使用しないことを推奨する理由は、次のように数多くあります。
Databricks 汎用コンピュートの請求書は、ジョブコンピュートとは異なるレートでお支払いいただけます。
ジョブ コンピュートは、ジョブの実行が完了すると自動的に終了します。 汎用コンピュートは、ジョブ実行の終了ではなく、非アクティブに関連付けられた自動終了をサポートしています。
汎用コンピュートは、多くの場合、ユーザーのチーム間で共有されます。 汎用コンピュートに対してスケジュールされたジョブは、コンピュート リソースの競合により、多くの場合、待機時間が長くなります。
ジョブ コンピュートの構成を最適化するための多くの推奨事項は、汎用コンピュートで実行されるアドホック クエリや対話型ワークロードの種類には適していません。
次に、ジョブに汎用コンピュートを使用することを選択するユースケースを示します。
新しいジョブを繰り返し開発またはテストしています。 ジョブコンピュートの起動時間が長いと、反復開発が面倒になる可能性があります。 汎用コンピュートを使用すると、変更を適用してジョブをすばやく実行できます。
短期間のジョブがあり、頻繁に実行したり、特定のスケジュールで実行したりする必要があります。 現在実行中の汎用コンピュートに関連付けられた起動時間はありません。 このパターンを使用する場合は、アイドル時間に関連するコストを考慮してください。
ジョブ用サーバレスコンピュートは、汎用コンピュートに対して実行を検討するほとんどのタスクタイプの推奨される代替です。