オートスケールを使用した LakeFlow Declarative パイプラインのクラスタリング利用の最適化
この記事では、拡張オートスケールを使用して、LakeFlow で Declarative パイプラインを最適化する方法について説明します。Databricks
拡張オートスケールは、すべての新しいパイプラインのデフォルトによって有効になります。 サーバレス パイプラインも垂直オートスケールを使用します。 垂直 オートスケールとはを参照してください。
サーバレス パイプラインの場合、拡張オートスケールは常にオンになっており、無効にすることはできません。 サーバレス パイプラインの設定を参照してください。
拡張 オートスケールとは?
Databricks 拡張 オートスケールは、ワークロードの量に基づいてクラスター リソースを自動的に割り当てることで、パイプラインのデータ処理レイテンシへの影響を最小限に抑えながら、クラスターの使用率を最適化します。
拡張オートスケールは、Databricksクラスター オートスケールの機能を強化し、次の機能を備えています。
- 拡張オートスケールは、ストリーミングワークロードの最適化を実装し、バッチワークロードのパフォーマンスを向上させるための拡張機能を追加します。 拡張オートスケールは、ワークロードの変化に応じてマシンを追加または削除することでコストを最適化します。
- 拡張 オートスケールは、使用率の低いノードをプロアクティブにシャットダウンし、シャットダウン中にタスクが失敗しないことを保証します。 既存のクラスター オートスケール機能は、ノードがアイドル状態の場合にのみノードをスケールダウンします。
拡張オートスケールは、 LakeFlow 宣言型パイプライン UI で新しいパイプラインを作成するときのデフォルト オートスケール モードです。 既存のパイプラインの拡張オートスケールを有効にするには、UIでパイプライン設定を編集します。 拡張オートスケールは、LakeFlow Declarative パイプライン APIを使用してパイプラインを作成または編集するときにも有効にできます。
拡張 オートスケールはスケールアップやスケールダウンの判断にどのメトリクスを使用していますか?
拡張オートスケールは、2つのメトリクスを使用してスケールアップまたはスケールダウンを決定します。
- タスク スロット使用率 : これは、クラスターで使用可能なタスク スロットの合計 に対する ビジー タスク スロットの数 の平均比率です。
- タスクキューサイズ :これは、タスクスロットで実行を待機しているタスクの数です。
LakeFlow Declarative パイプラインの拡張オートスケールを有効にする
拡張オートスケールは、 LakeFlow 宣言型パイプライン UI で新しいパイプラインを作成するときのデフォルト オートスケール モードです。 既存のパイプラインの拡張オートスケールを有効にするには、UIでパイプライン設定を編集します。 拡張オートスケールは、 LakeFlow Declarative パイプライン を使用してパイプラインを作成または編集するときにも有効にできます API。
拡張オートスケールを使用するには、次のいずれかの操作を行います。
- Declarative パイプライン UI でパイプラインを作成または編集するときは、 クラスタリング モード を Enhanced オートスケール に設定します。 LakeFlow
autoscale
設定をパイプライン クラスタリング構成に追加し、mode
フィールドをENHANCED
に設定します。「宣言型パイプラインのコンピュートの構成」LakeFlowを参照してください。
拡張オートスケールを本番運用 パイプラインに設定する場合は、次のガイドラインを使用してください。
Min workers
設定はデフォルトのままにします。Max workers
設定を、予算とパイプラインの優先度に基づく値に設定します。
次の例では、最小 5 人のワーカーと最大 10 人のワーカーを持つ拡張オートスケール クラスターを構成します。 max_workers
は min_workers
以上である必要があります。
- 拡張 オートスケールは、
updates
クラスターでのみ使用できます。 レガシー オートスケールは、maintenance
クラスターに使用されます。 autoscale
構成には、次の 2 つのモードがあります。LEGACY
: クラスター オートスケールを使用します。ENHANCED
:拡張オートスケールを使用します。
{
"clusters": [
{
"autoscale": {
"min_workers": 5,
"max_workers": 10,
"mode": "ENHANCED"
}
}
]
}
パイプラインが連続実行に設定されている場合は、オートスケールの設定が変更されると自動的に再開されます。 再起動後、待機時間が短時間増加することが予想されます。 この短い待機時間の増加の後、クラスター サイズは autoscale
構成に基づいて更新され、パイプラインの待機時間は以前の待機時間特性に戻る必要があります。
拡張オートスケールを使用するパイプラインのコストを制限する
ワーカーをサーバレス パイプラインに設定することはできません。
パイプラインの コンピュート ペインで ワーカーの最大数 パラメーターを設定すると、オートスケールの上限が設定されます。使用可能なワーカーの数を減らすと、一部のワークロードのレイテンシーが増加する可能性がありますが、コンピュートを集中的に使用する操作中にコンピュート リソースのコストがバーストするのを防ぐことができます。
Databricks では、特定のニーズに合わせてコストと待機時間のトレードオフのバランスを取るために、 最大ワーカー数 の設定を調整することをお勧めします。
拡張オートスケール有効化クラシックパイプラインの監視
LakeFlow Declarative パイプライン ユーザー インターフェイスのイベント ログを使用して、クラシック パイプラインの拡張オートスケール メトリクスを監視できます。拡張オートスケール イベントのイベント・タイプは autoscale
です。 イベントの例を次に示します。
イベント | メッセージ |
---|---|
クラスター サイズ変更要求が開始されました |
|
クラスター サイズ変更要求が成功しました |
|
クラスター サイズ変更要求が部分的に成功しました |
|
クラスター サイズ変更要求が失敗しました |
|
拡張オートスケール イベントを表示するには、 イベント ログを直接クエリします。
- イベント ログで backlog メトリクスのクエリを実行するには、「 イベント ログのクエリによるデータ バックログの監視」を参照してください。
- 拡張オートスケール操作中のクラスターサイズ変更要求と応答を監視するには、 サーバレスが有効になっていないパイプラインのイベントログから拡張オートスケールイベントの監視を参照してください。
垂直 オートスケールとは?
サーバレス パイプラインは、 Databricks Enhanced オートスケールが提供する水平方向のオートスケールに加えて、メモリ不足エラーによる失敗なしに LakeFlow 宣言型パイプラインを実行できる最もコスト効率の高いインスタンス タイプを自動的に割り当てます。 Vertical オートスケールは、パイプライン更新を実行するためにより大きなインスタンスタイプが必要な場合にスケールアップし、小さなインスタンスタイプで更新を実行できると判断した場合にもスケールダウンします。 Vertical オートスケールは、ドライバー ノード、ワーカー ノード、またはドライバー ノードとワーカー ノードの両方をスケールアップまたはスケールダウンするかどうかを決定します。
Vertical オートスケールは、LakeFlow Databricks SQLマテリアライズドビュー やストリーミングテーブルで使用されるパイプラインを含む、すべてのサーバレス Declarative パイプラインで使用されます。
垂直 オートスケールは、メモリ不足エラーが原因で失敗したパイプライン更新を検出することで機能します。 垂直 オートスケールは、失敗した更新から収集されたメモリ不足データに基づいて、これらの障害が検出された場合に、より大きなインスタンスタイプを割り当てます。 本番運用モードでは、新しいコンピュートリソースを使用した新しい更新が自動的に開始されます。 開発モードでは、新しい更新プログラムを手動で開始するときに、新しいコンピュート リソースが使用されます。
垂直 オートスケールは、割り当てられたインスタンスのメモリが一貫して十分に活用されていないことを検出した場合、インスタンスタイプをスケールダウンして次回のパイプライン更新で使用します。