拡張自動スケーリングを使用して Delta Live Tables パイプラインのクラスター使用率を最適化する
この記事では、拡張自動スケールを使用して、Azure Databricks で Delta Live Tables パイプラインを最適化する方法について説明します。
拡張自動スケールは、すべての新しいパイプラインに対して既定で有効になっています。
サーバーレス パイプラインの場合、拡張自動スケールは常にオンになっており、無効にすることはできません。 サーバーレス Delta Live Tables パイプラインの構成を参照してください。
拡張自動スケールとは
Databricks 拡張自動スケーリングでは、ワークロード ボリュームに基づいてクラスター リソースを自動的に割り当てることでクラスター使用率が最適化され、パイプラインのデータ処理待機時間への影響が最小限に抑えられます。
Azure Databricks クラスターの自動スケール機能が強化され 次の機能が追加されました。
- 拡張自動スケーリングでは、ストリーミング ワークロードの最適化が実装され、バッチ ワークロードのパフォーマンスを向上させるための機能強化が追加されます。 自動スケールの強化により、ワークロードの変化に合わせてマシンを追加または削除することで、コストが最適化されます。
- 拡張された自動スケールでは、使用率が不足しているノードが事前にシャットダウンされ、シャットダウン中に失敗したタスクがないことを保証します。 既存のクラスターの自動スケール機能では、ノードがアイドル状態の場合にのみノードをスケールダウンします。
拡張自動スケールは、Delta Live Tables UI で新しいパイプラインを作成するときの既定の自動スケール モードです。 UI でパイプライン設定を編集することで、既存のパイプラインの拡張自動スケールを有効にすることができます。 Delta Live Tables API を使用してパイプラインを作成または編集するときに、拡張自動スケールを有効にすることもできます。
拡張自動スケールでは、スケールアップまたはスケールダウンの決定を行うためにどのメトリックが使用されますか?
拡張自動スケールでは、次の 2 つのメトリックを使用して、スケールアップまたはスケールダウンを決定します。
- タスク スロットの使用率: クラスターで使用可能な合計タスク スロット数のビジー タスク スロットの平均比率です。
- タスク キューのサイズ: タスク スロットで実行されるのを待機しているタスクの数です。
Delta Live Tables パイプラインの拡張自動スケールを有効にする
拡張自動スケールは、Delta Live Tables UI で新しいパイプラインを作成するときの既定の自動スケール モードです。 UI でパイプライン設定を編集することで、既存のパイプラインの拡張自動スケールを有効にすることができます。 Delta Live Tables API を使用してパイプラインを作成または編集するときに、拡張自動スケールを有効にすることもできます。
拡張自動スケールを使用するには、次のいずれかの操作を行います。
- デルタ ライブ テーブル UI でパイプラインを作成または編集するときにクラスター モードを Enhanced 自動スケーリングに設定します。
- パイプラインのクラスター構成に
autoscale
設定を追加し、mode
フィールドをENHANCED
に設定します。 デルタ ライブ テーブル パイプライン コンピューティングの構成を参照してください。
運用パイプラインの拡張自動スケールを構成する場合は、次のガイドラインを使用します。
Min workers
設定は既定値のままにします。Max workers
設定は、予算とパイプラインの優先度に基づいた値に設定します。
次の例では、少なくとも 5 つのワーカーと最大 10 個のワーカーで拡張自動スケール クラスターを構成します。 max_workers
は min_workers
以上である必要があります。
Note
- 拡張自動スケールは、
updates
クラスターでのみ使用できます。 従来の自動スケールは、maintenance
クラスターに使用されます。 autoscale
構成には、次の 2 つのモードがあります。LEGACY
: クラスターの自動スケールを使用します。ENHANCED
: 拡張自動スケールを使用します。
{
"clusters": [
{
"autoscale": {
"min_workers": 5,
"max_workers": 10,
"mode": "ENHANCED"
}
}
]
}
パイプラインが継続的な実行用に構成されている場合は、自動スケール構成の変更後に自動的に再起動されます。 再起動後、待機時間が長くなる可能性があります。 この待機時間の短い期間に続いて、 autoscale
構成に基づいてクラスター サイズを更新し、パイプラインの待機時間を以前の待機時間の特性に戻す必要があります。
拡張自動スケーリングを使用するパイプラインのコストを制限する
Note
サーバーレス パイプラインのワーカーを構成することはできません。
パイプライン Compute ペインで Max workers パラメーターを設定すると、自動スケールの上限が設定されます。 使用可能なワーカーの数を減らすと、一部のワークロードの待機時間が長くなる可能性がありますが、コンピューティング集中型の操作中にコンピューティング リソース のコストが急増するのを防ぐことができます。
Databricks では、特定のニーズに対するコスト待機時間のトレードオフのバランスを取るために、 Max workers 設定を調整することをお勧めします。
拡張自動スケールが有効なクラシック パイプラインを監視する
Delta Live Tables ユーザー インターフェイスのイベント ログを使用して、クラシック パイプラインの拡張自動スケール メトリックを監視できます。 拡張自動スケール イベントには、 autoscale
イベントの種類があります。 イベントの例を次に示します。
Event | Message |
---|---|
クラスター サイズ変更要求が開始されました | Scaling [up or down] to <y> executors from current cluster size of <x> |
クラスター サイズ変更要求が成功しました | Achieved cluster size <x> for cluster <cluster-id> with status SUCCEEDED |
クラスター サイズ変更要求が部分的に成功しました | Achieved cluster size <x> for cluster <cluster-id> with status PARTIALLY_SUCCEEDED |
クラスター サイズ変更要求が失敗しました | Achieved cluster size <x> for cluster <cluster-id> with status FAILED |
イベント ログに直接クエリを実行して、拡張自動スケール イベントを表示することもできます
- イベント ログに対してバックログ メトリックのクエリを実行するには、「イベント ログにクエリを実行してデータ バックログを監視する」を参照してください。
- 拡張自動スケール操作中にクラスターのサイズ変更要求と応答を監視するには、「サーバーレスが有効になっていないパイプラインのイベント ログからの拡張自動スケール イベントの監視を参照してください。