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

Unity Catalog マネージドテーブル向け予測最適化

注記

Databricks は、2024年11月11日以降に作成されたすべてのアカウントに対して、デフォルトによる予測的最適化を有効にします。 2025 年 5 月 7 日以降、 Databricks は既存のすべての Databricks アカウントに対して デフォルト による予測的最適化 を有効にします。 これは、お住まいの地域に基づいて段階的に展開され、2025 年 7 月 1 日までに完了する予定です。自分のアカウントで 予測的最適化が有効になっているか確認 することができます。

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

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

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

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

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

important

予測的最適化はUnity Catalog マネージドテーブルでのみ実行されます。

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

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

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

オペレーション

説明

OPTIMIZE (1)

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

VACUUM

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

ANALYZE

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

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

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

警告

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

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

デフォルトの 7 日より delta.deletedFileRetentionDuration 構成すると、7 日間の保持期間で予測的最適化 は VACUUM を実行します。

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

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

Databricks マネージドサービスの価格を参照してください。システムテーブルを使用して予測的最適化を追跡するを参照してください。

予測的最適化の前提条件

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

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

予測的最適化の有効化

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

注記

2024年11月11日以降に作成されたアカウントの場合、デフォルトによって予測的最適化が有効になります。 2025 年 5 月 7 日以降、予測的最適化は、既存のすべてのアカウントに対してデフォルトによって有効になります。 これは、お住まいの地域に基づいて段階的に展開され、2025 年 7 月 1 日までに完了する予定です。

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

Unity Catalog オブジェクト

権限

アカウント

アカウント管理者

カタログ

カタログ所有者

スキーマ

スキーマの所有者

アカウントで予測的最適化を有効化、無効化する

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

  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 日です。 タイムトラベル クエリのデータ保持の構成を参照してください。

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

  • Delta Sharing の受信者としてワークスペースに読み込まれたテーブル。
  • 外部テーブル。