従来の Databricks ジョブを構成するためのベスト プラクティス
従来の Databricks ジョブに役立つ機能と構成に関する一般的な推奨事項について説明します。
クラシック ジョブでは、データ変換シナリオのニーズに合わせて、コンピュート リソース、ポリシー、およびパフォーマンス オプションの特定の構成を作成して調整する必要があります。 コンピュート リソースのサイズとタイプを設定するための具体的な推奨事項は、ワークロードによって異なります。 クラシックワークフローの設定を開始する前に、これらのベストプラクティスを確認して、不要な追加コストやパフォーマンスの低下を回避してください。
場合によっては、サーバレス コンピュートがシナリオに適したシンプルなソリューションになることがあります。 サーバレス コンピュート for ジョブは、すべてのインフラストラクチャを管理するため、次の考慮事項を排除します。 ワークフローについては、サーバレス コンピュートを使用して Databricks ジョブを実行 を参照してください。
構造化ストリーミングワークフローには、特定の設定に関する推奨事項があります。構造化ストリーミングについては、本番運用に関する考慮事項を参照してください。
おすすめの方法
Photon Accelerationを一般的なユースケースで有効にする
Databricks では、 Photon アクセラレーションを有効にし、最新の Databricks Runtime バージョンを使用し、 Unity Catalog用に構成されたコンピュートを使用することをお勧めします。
標準アクセス モード (以前の共有アクセス モード) を使用する
Databricks では、ジョブに標準アクセス モードを使用することをお勧めします。「アクセスモード」を参照してください。
クラスターポリシーの使用
Databricks では、ワークスペース管理者がジョブのクラスターポリシーを定義し、ジョブを構成するすべてのユーザーにこれらのポリシーを適用することをお勧めします。
クラスターポリシー ワークスペース管理者がコスト管理を設定し、ユーザーの構成オプションを制限できるようにします。 クラスターポリシーの設定の詳細については、「 コンピュート ポリシーの作成と管理」を参照してください。
Databricks は、ジョブ用に構成されたデフォルト ポリシーを提供します。 管理者は、このポリシーを他のワークスペース ユーザーが使用できるようにすることができます。ジョブ コンピュートを参照してください。
オートスケールを使う
オートスケールを構成して、実行時間の長いタスクがジョブの実行中にワーカーノードを動的に追加および削除できるようにします。 「オートスケールを有効にする」を参照してください。
プールを使用してクラスターの開始時間を短縮する
コンピュート プールを使用すると、クラウド プロバイダーからコンピュート リソースを予約できます。 プールは、新しいジョブのクラスターの開始時間を短縮し、コンピュート リソースの可用性を確保するのに役立ちます。 「プール構成リファレンス」を参照してください。
スポットインスタンスの使用
レイテンシー要件が緩いワークロードのスポットインスタンスを設定して、コストを最適化します。「 スポットインスタンス」を参照してください。
可用性ゾーンの構成
組織がリザーブドインスタンスを購入した場合はアベイラビリティーゾーン (AZ) を指定し、AWS が容量不足エラーを返した場合は、Auto-AZ を使用して他のアベイラビリティーゾーンで再試行します。「可用性ゾーン」を参照してください。
all-purposeコンピュートはジョブに使うべきでしょうか?
Databricksがジョブに汎用コンピュートを使用しないことを推奨する理由は、次のように数多くあります。
- Databricks 汎用コンピュートの請求書は、ジョブコンピュートとは異なるレートでお支払いいただけます。
- ジョブ コンピュートは、ジョブの実行が完了すると自動的に終了します。 汎用コンピュートは、ジョブ実行の終了ではなく、非アクティブに関連付けられた自動終了をサポートしています。
- 汎用コンピュートは、多くの場合、ユーザーのチーム間で共有されます。 汎用コンピュートに対してスケジュールされたジョブは、コンピュート リソースの競合により、多くの場合、待機時間が長くなります。
- ジョブ コンピュートの構成を最適化するための多くの推奨事項は、汎用コンピュートで実行されるアドホック クエリや対話型ワークロードの種類には適していません。
次に、ジョブに汎用コンピュートを使用することを選択するユースケースを示します。
- 新しいジョブを繰り返し開発またはテストしています。 ジョブコンピュートの起動時間が長いと、反復開発が面倒になる可能性があります。 汎用コンピュートを使用すると、変更を適用してジョブをすばやく実行できます。
- 短期間のジョブがあり、頻繁に実行したり、特定のスケジュールで実行したりする必要があります。 現在実行中の汎用コンピュートに関連付けられた起動時間はありません。 このパターンを使用する場合は、アイドル時間に関連するコストを考慮してください。
ジョブ用サーバレスコンピュートは、汎用コンピュートに対して実行を検討するほとんどのタスクタイプの推奨される代替です。