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