強化オートスケール によるDelta Live Tablesパイプラインのクラスター利用の最適化

この記事では、強化オートスケールを使用して 上のDelta Live Tables パイプラインを最適化する方法について説明します。Databricks

強化オートスケールは、すべての新しいパイプラインのデフォルトによって有効になります。

サーバレス パイプラインの場合、強化オートスケールは常にオンになっており、無効にすることはできません。 サーバレス Delta Live Tables パイプラインの設定を参照してください。

強化オートスケールとは?

Databricks 強化オートスケールは、ワークロードの量に基づいてクラスター リソースを自動的に割り当てることで、パイプラインのデータ処理レイテンシへの影響を最小限に抑えながら、クラスターの使用率を最適化します。

強化オートスケールは、Databricksクラスター オートスケールの機能を改善し、次の機能を備えています。

  • 強化オートスケールは、ストリーミングワークロードの最適化を実装し、バッチワークロードのパフォーマンスを向上させるための拡張機能を追加します。 強化オートスケールは、ワークロードの変化に応じてマシンを追加または削除することでコストを最適化します。

  • 強化オートスケールは、使用率の低いノードをプロアクティブにシャットダウンし、シャットダウン中にタスクが失敗しないことを保証します。 既存のクラスター オートスケール機能は、ノードがアイドル状態の場合にのみノードをスケールダウンします。

強化オートスケールは、 Delta Live Tables UI で新しいパイプラインを作成するときのデフォルト オートスケール モードです。 既存のパイプラインの強化オートスケールを有効にするには、UIでパイプライン設定を編集します。 強化オートスケールは、Delta Live TablesのAPI でパイプラインを作成または編集するときにも有効にできます。

強化オートスケールはスケールアップやスケールダウンの判断にどのメトリクスを使用していますか?

強化オートスケールは、2つのメトリクスを使用してスケールアップまたはスケールダウンを決定します。

  • タスク スロット使用率: これは、クラスターで使用可能なタスク スロットの合計に対するビジー タスク スロットの数の平均比率です。

  • タスクキューサイズ:これは、タスクスロットで実行を待機しているタスクの数です。

Delta Live Tables パイプラインの強化オートスケールを有効にする

強化オートスケールは、 Delta Live Tables UI で新しいパイプラインを作成するときのデフォルト オートスケール モードです。 既存のパイプラインの強化オートスケールを有効にするには、UIでパイプライン設定を編集します。 強化オートスケールは、 Delta Live Tables APIを使用してパイプラインを作成または編集するときにも有効にできます。

強化オートスケールを使用するには、次のいずれかの操作を行います。

  • Delta Live Tables UIでパイプラインを作成または編集するときに、 クラスターモード強化オートスケールに設定します。

  • autoscale設定をパイプラインクラスター設定に追加し、modeフィールドを ENHANCEDに設定します。Delta Live Tables パイプラインのコンピュートの設定を参照してください。

強化オートスケールを本番運用 パイプラインに設定する場合は、次のガイドラインを使用してください。

  • Min workers設定はデフォルトのままにしておきます。

  • Max workers設定を、予算とパイプラインの優先度に基づいた値に設定します。

次の例では、最小 5 ワーカー、最大ワーカー 10 の強化オートスケール クラスターを構成します。 max_workersmin_workers以上である必要があります。

  • 強化オートスケールは、 updates クラスターでのみ使用できます。 レガシーオートスケールは maintenance クラスターに使用されます。

  • autoscale 構成には、次の 2 つのモードがあります。

{
  "clusters": [
    {
      "autoscale": {
        "min_workers": 5,
        "max_workers": 10,
        "mode": "ENHANCED"
      }
    }
  ]
}

パイプラインが連続実行に設定されている場合は、オートスケールの設定が変更されると自動的に再開されます。 再起動後、待機時間が短時間増加することが予想されます。 この短い期間のレイテンシーの増加の後、クラスター サイズは autoscale 設定に基づいて更新され、パイプラインのレイテンシーは以前のレイテンシー特性に戻る必要があります。

強化オートスケールを使用するパイプラインのコストを制限する

ワーカーをサーバレス パイプラインに設定することはできません。

パイプラインの コンピュートペインで ワーカーの最大数 パラメーターを設定すると、オートスケールの上限が設定されます。使用可能なワーカーの数を減らすと、一部のワークロードのレイテンシーが増加する可能性がありますが、コンピュートを集中的に使用する操作中にコンピュート リソースのコストがバーストするのを防ぐことができます。

Databricks では、特定のニーズに合わせてコストと待機時間のトレードオフのバランスを取るために、 最大ワーカー数 の設定を調整することをお勧めします。

パイプラインUIのコンピュートペインでは、オートスケールのワーカーの最大数を設定できます

強化オートスケールが有効化されたクラシックパイプラインの監視

Delta Live Tables ユーザーインターフェースのイベントログを使用して、クラシックパイプラインの強化オートスケール メトリクスをモニタリングできます。強化オートスケール イベントのイベント・タイプは autoscale です。 イベントの例を次に示します。

出来事

メッセージ

クラスターのサイズ変更要求が開始されました

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

強化オートスケール イベントを表示するには、 イベント ログを直接クエリします。