Use Databricks compute with your jobs | Databricks on AWS [2023/5/31時点]の翻訳です。
本書は抄訳であり内容の正確性を保証するものではありません。正確な内容に関しては原文を参照ください。
Databricksジョブを実行する際、タスクのタイプに応じて、クラスターやSQLウェアハウスのいずれかのDatabricks計算資源上でジョブの一部として設定されたタスクが実行されます。ジョブを運用に乗せる際に、コンピュートタイプや設定オプションを選択することが重要となります。本書では、ジョブを実行するためのDatabricks計算資源の活用ガイドを提供します。
共有ジョブクラスターの活用
複数のタスクをオーケストレートするジョブによるリソース使用量を最適化するには、共有ジョブクラスターを使用します。共有ジョブクラスターによって、同じジョブにおける複数のタスクでクラスターを再利用できるようになります。ジョブに含まれる全てのタスクを実行するために単一のジョブクラスターを使うこともできますし、固有のワークロードに最適化された複数のジョブクラスターを使うこともできます。共有ジョブクラスターを使うには:
- タスクを作成する際にNew Job Clustersを選択し、クラスター設定を完了します。
- 新規ジョブクラスターを作成する際、ジョブにタスクを追加する際に新規クラスターを選択します。New Job Clustersを選択して設定した全てのクラスターは当該ジョブのすべてのタスクから利用できます。
共有ジョブクラスターのスコープは単一のジョブ実行であり、他のジョブや同じジョブの別の実行で使用することはできません。
共有ジョブクラスターの設定ではライブラリを宣言することはできません。タスクの設定で依存するライブラリを追加しなくてはなりません。
ジョブに適したクラスタータイプの選択
- New Job Clustersは、ジョブやタスク実行専用のクラスターです。当該クラスターを使用する最初のタスクが起動すると、共有ジョブクラスターが作成・起動され、当該クラスターを使用する最後のタスクが完了した後にジョブクラスターが停止されます。アイドル状態ではこのクラスターは停止されませんが、クラスターを使用するすべてのタスクが完了した後にのみ停止されます。すべてのタスクが完了する前に、共有ジョブクラスターが停止した場合、新たなクラスターが作成されます。タスクが起動した際に単一のタスクスコープのクラスターが作成され、タスクが完了すると停止されます。プロダクション環境では、それぞれのジョブやタスク実行が完全に分離された環境で実行されるように、新規共有クラスターかタスクスコープのクラスターを使用することをお勧めします。
- 新規クラスターでタスクを実行する際、タスクはデータエンジニアリング(タスク)ワークロードとして取り扱われ、タスクワークロードの価格が適用されます。既存のall-purposeクラスターでタスクを実行する際、タスクはデータ分析(all-porpose)ワークロードとして取り扱われ、all-purposeワークロードの価格が適用されます。
- 停止している既存クラスターを選択し、ジョブの所有者にCan Restart権限がある場合、ジョブが実行されるようにスケジュールされた際にはDatabricksがクラスターを起動します。
- 定期的な周期でダッシュボードをアップデートするようなタスクでは、既存のall-purposeクラスターがベストな選択肢となります。
クラスター起動時間を削減するためにプールを活用
新規ジョブクラスターの起動時間を削減するには、プールを作成し、ジョブクラスターでプールを使うように設定します。
自動アベイラビリティゾーン
自動アベイラビリティゾーン(Auto-AZ)を活用するには、Clusters APIを用いて、aws_attributes.zone_id = "auto"
を設定する必要があります。Availability zonesをご覧ください。