メインコンテンツまでスキップ

予測的最適化 for Unity Catalog マネージドテーブル

Databricks は、2024年11月11日以降に作成されたすべてのアカウントに対して、デフォルトによる予測的最適化を有効にします。

予測的最適化により、Unity Catalog マネージドテーブルのメンテナンス操作を手動で管理する必要がなくなります。Databricks

予測的最適化を有効にすると、 Databricks は自動的に次の処理を行います。

  • メンテナンス操作の恩恵を受けるテーブルを特定し、これらの操作を実行するキューに入れます。
  • データがマネージドテーブルに書き込まれるときに統計を収集します。

メンテナンス操作は必要に応じて実行されるため、メンテナンス操作の不要な実行と、パフォーマンスの追跡とトラブルシューティングに関連する負担の両方を排除します。

Databricks は、すべてのマネージドテーブルに対して自動リキッドクラスタリングと予測的最適化 Unity Catalog を使用することをお勧めします。 これらの機能により、データ使用パターンに基づいてデータレイアウトをインテリジェントに最適化できます。 「Deltaテーブルにリキッドクラスタリングを使用する」を参照してください。

important

予測的最適化 Only Rund on Unity Catalog マネージドテーブル.

Databricks SQL または DLT パイプラインを使用して作成されたストリーミングテーブルまたはマテリアライズドビューでは、予測的最適化は実行されません。

予測的最適化 はどのような操作を実行しますか?

予測的最適化 有効なテーブルに対して、次の操作を自動的に実行します。

オペレーション

説明

OPTIMIZE (1)

有効なテーブルのインクリメンタル・クラスタリングをトリガーします。 「Deltaテーブルにリキッドクラスタリングを使用する」を参照してください。 ファイルサイズを最適化することで、クエリのパフォーマンスを向上させます。 「データファイルレイアウトの最適化」を参照してください。

VACUUM

テーブルで参照されなくなったデータファイルを削除することにより、ストレージコストを削減します。 「 vacuumを使用した未使用のデータファイルの削除」を参照してください。

ANALYZE

統計の増分更新をトリガーして、クエリの性能を向上させます。 ANALYZE TABLEを参照してください。

(1) OPTIMIZE 予測的最適化で実行した場合、 ZORDER は実行されません。 Z-Orderを使用するテーブルでは、予測的最適化はZ-orderedファイルを無視します。

自動リキッドクラスタリングが有効になっている場合、予測的最適化では、データのクラスタリングの前に新しいクラスタリングキーが選択されることがあります。 「Deltaテーブルにリキッドクラスタリングを使用する」を参照してください。

警告

VACUUM コマンドの保持期間は、delta.deletedFileRetentionDuration table プロパティ (既定値は 7 日間) によって決まります。つまり VACUUM 過去 7 日間に Delta テーブル バージョンによって参照されなくなったデータ ファイルが削除されます。 データをより長く保持する場合 (タイムトラベルを長期間サポートする場合など)、次の例のように、予測的最適化を有効にする前に、このテーブル プロパティを適切に設定する必要があります。

SQL
ALTER TABLE table_name SET TBLPROPERTIES ('delta.deletedFileRetentionDuration' = '30 days');

予測的最適化 はどこで実行されますか?

予測的最適化は、 ANALYZEOPTIMIZE、および VACUUM 操作からメリットが得られるテーブルを特定し、サーバレス コンピュート for ジョブを使用して実行するようにキューに入れます。 お客様のアカウントは、マネージド サービスに固有の SKU を使用して、これらのワークロードに関連付けられているコンピュートに対して Databricks請求されます。 Databricks マネージドサービスの価格を参照してください。システムテーブルを使用して予測的最適化を追跡するを参照してください。

予測的最適化の前提条件

予測的最適化を有効にするには、次の要件を満たす必要があります。

  • Databricksワークスペースは、予測的最適化をサポートするリージョンの Premium プラン以上である必要があります。「地域限定での提供が可能な機能」を参照してください。
  • 予測的最適化を有効にする場合は、SQLウェアハウスまたは Databricks Runtime 12.2 LTS 以降を使用する必要があります。
  • マネージドテーブル Unity Catalog のみがサポートされています。

Enable 予測的最適化

アカウント、カタログ、またはスキーマの予測的最適化を有効にできます。 すべての Unity Catalog マネージドテーブルは、デフォルトによってアカウント値を継承します。 カタログまたはスキーマのアカウント デフォルトをオーバーライドして、そのレベルで予測的最適化を有効または無効にすることができます。

注記

2024年11月11日以降に作成されたアカウントの場合、デフォルトによってアカウントに対して予測的最適化が有効になります。

指定したレベルで予測的最適化を有効または無効にするには、次の権限が必要です。

Unity Catalog オブジェクト

権限

アカウント

アカウント管理者

CATALOG

カタログ所有者

SCHEMA

スキーマの所有者

Enable or disable predictistic optimization for your アカウント

アカウント管理者は、次の手順を実行して、アカウント内のすべてのメタストアに対して予測的最適化を有効にできます。 アカウント内のオブジェクトは、デフォルトでこの設定を継承します (ただし、この設定はカタログ レベルまたはスキーマ レベルで上書きできます)。

  1. アカウントコンソールにアクセスします。
  2. [ 設定]、[ 機能の有効化 ] の順に移動します。
  3. 「予測的最適化 」の横にある使用するオプション ( 「有効 」など) を選択します。
注記
  • 予測的最適化をサポートしていないリージョンのメタストアは有効になっていません。
  • アカウントレベルで予測的最適化を無効にしても、特に有効にしたカタログまたはスキーマでは無効になりません。

カタログまたはスキーマの予測的最適化を有効または無効にする

予測的最適化は、継承モデルを使用します。 カタログに対して有効にすると、スキーマはプロパティを継承します。 有効なスキーマ内のテーブルは、予測的最適化を継承します。 この継承動作をオーバーライドするには、カタログまたはスキーマの予測的最適化を明示的に有効または無効にします。

注記

予測的最適化は、カタログ・レベルまたはスキーマ・レベルで無効にしてから、アカウント・レベルで有効にすることができます。 予測的最適化が後でアカウントで有効になっている場合、これらのオブジェクト内のテーブルではブロックされます。

次の構文を使用して、予測的最適化を有効または無効にするか、親オブジェクトからの継承のデフォルトに戻ります。

SQL
ALTER CATALOG [catalog_name] { ENABLE | DISABLE | INHERIT } PREDICTIVE OPTIMIZATION;
ALTER { SCHEMA | DATABASE } schema_name { ENABLE | DISABLE | INHERIT } PREDICTIVE OPTIMIZATION;

予測的最適化が有効になっているか確認する

Predictive Optimization フィールドは、予測的最適化が有効になっているかどうかの詳細を示す Unity Catalog プロパティです。 予測的最適化が親オブジェクトから継承される場合、これはフィールド値に示されます。

次の構文を使用して、予測的最適化が有効になっているかどうかを確認します。

SQL
DESCRIBE (CATALOG | SCHEMA | TABLE) EXTENDED name

システムテーブルを使用して予測的最適化を追跡する

Databricks は、予測的最適化操作、コスト、および影響に対する可観測性のためのシステムテーブル system.storage.predictive_optimization_operations_historyを提供します。 予測的最適化 システムテーブル リファレンスを参照してください。

制限

予測的最適化は、すべての地域で利用できるわけではありません。 「地域限定での提供が可能な機能」を参照してください。

削除されたファイルの保持期間 (delta.deletedFileRetentionDuration) がデフォルトの 7 日未満に設定されたテーブルの場合、予測的最適化 実行 VACUUM 保持期間が 7 日間に指定されています。 タイムトラベル クエリのデータ保持の構成を参照してください。

予測的最適化では、次のテーブルに対してメンテナンス操作は実行されません。