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

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

予測的最適化は、Databricks上のUnity Catalog マネージドテーブル (Delta Lake および Iceberg) で OPTIMIZE、VACUUM、および ANALYZE を自動的に実行します。これにより、手動によるメンテナンスやパフォーマンスの問題追跡に費やす時間をなくします。

注記

予測的最適化は、2024年11月11日以降に作成されたアカウントでデフォルトで有効になります。Databricksは既存のアカウントに段階的に展開しています。このロールアウトは2026年8月までに完了予定です。アカウントがすでに有効になっているかを確認するには、予測的最適化が有効になっているかどうかを確認するを参照してください。

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

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

これにより、不要なメンテナンスの実行がなくなり、パフォーマンスを手動で追跡およびトラブルシューティングする負担も軽減されます。

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

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

予測的最適化Unity Catalogマネージドテーブルに対して次の操作を実行します。

オペレーション

説明

OPTIMIZE

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

VACUUM

テーブルによって参照されなくなったデータファイルを削除することで、ストレージコストを削減します。Iceberg 読み取りが有効なテーブルでは、古いテーブルバージョンの Iceberg メタデータもクリーンアップされます。vacuumで未使用のデータファイルを削除するおよびVACUUM と Iceberg メタデータのクリーンアップを参照してください。

ANALYZE

テーブルをスキャンし、統計を収集してクエリパフォーマンスを向上させます。ANALYZE TABLE … COMPUTE STATISTICSを参照してください。予測的最適化によって収集された統計を削除するには、ANALYZE TABLE … DROP STATISTICSを参照してください。

オペレーション

説明

OPTIMIZE

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

VACUUM

テーブルによって参照されなくなったデータファイルを削除することで、ストレージコストを削減します。Iceberg 読み取りが有効なテーブルでは、古いテーブルバージョンの Iceberg メタデータもクリーンアップされます。vacuumで未使用のデータファイルを削除するおよびVACUUM と Iceberg メタデータのクリーンアップを参照してください。

ANALYZE

テーブルをスキャンし、統計を収集してクエリパフォーマンスを向上させます。ANALYZE TABLE … COMPUTE STATISTICSを参照してください。予測的最適化によって収集された統計を削除するには、ANALYZE TABLE … DROP STATISTICSを参照してください。

注記

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

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

警告

VACUUM保持期間はdelta.deletedFileRetentionDurationテーブル プロパティによって決定され、デフォルトでは 7 日間に設定されます。VACUUM 、そのウィンドウ内の Delta テーブル バージョンによって参照されなくなったデータ ファイルを削除します。データを長期間保持するには (たとえば、拡張タイムトラベルをサポートするため)、予測的最適化を有効にする前にこのプロパティを設定します。

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

delta.deletedFileRetentionDuration を7日未満に設定した場合でも、予測的最適化は VACUUM FULL を実行する際、データファイルを最低7日間保持します。この7日間の最小保持期間により、データ損失が防止され、テーブルの最近のタイムトラベルが保持されます。

コンピュートと課金​

予測的最適化 ジョブのサーバレス コンピュートを使用した実行ANALYZE 、 OPTIMIZE 、およびVACUUMオペレーション。 あなたのアカウントには、サーバレス ジョブSKUを使用してこのコンピュートに対して請求されます。

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

前提条件​

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

  • Databricks ワークスペースは、 サポートされているリージョン のPremiumプラン である必要があります。
  • SQLウェアハウスまたはDatabricks Runtime 12.2 LTS以降を使用する必要があります。
  • マネージドテーブル Unity Catalog のみがサポートされています。

予測的最適化の有効化​

予測的最適化は、アカウント、カタログ、スキーマ、またはテーブルに対して有効にできます。すべてのUnity Catalogマネージドテーブルは、デフォルトでアカウントの値を継承します。アカウントのデフォルトは、カタログ、スキーマ、またはテーブルのレベルで上書きできます。

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

Unity Catalog オブジェクト

権限

アカウント

アカウント管理者

カタログ

カタログの所有者、またはカタログに対するMANAGE権限を持つユーザー

スキーマ

スキーマ所有者、またはスキーマに対して MANAGE 権限を持つユーザー

テーブル

テーブルの所有者、またはテーブルに対するMANAGE権限を持つユーザー

Unity Catalog オブジェクト

権限

アカウント

アカウント管理者

カタログ

カタログの所有者、またはカタログに対するMANAGE権限を持つユーザー

スキーマ

スキーマ所有者、またはスキーマに対して MANAGE 権限を持つユーザー

テーブル

テーブルの所有者、またはテーブルに対するMANAGE権限を持つユーザー

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

アカウント管理者は、アカウント内のすべてのメタストアに対して予測的最適化を有効にすることができます。 カタログとスキーマはデフォルトでこの設定を継承しますが、どちらのレベルでも上書きできます。

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

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

予測的最適化では、継承モデルを使用します。カタログで有効にすると、そのカタログ内のスキーマが設定を継承し、有効なスキーマ内のテーブルも同様に継承します。この動作を上書きするために、カタログ、スキーマ、またはテーブルで予測的最適化を明示的に有効または無効にすることができます。

注記

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

親オブジェクトからの継承を有効、無効、またはリセット予測的最適化を行うには、次の構文を使用します。

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

See ALTER TABLE.

予測的最適化が有効かどうかを確認する​

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

ステータスを確認するには、次の構文を使用します。

SQL
DESCRIBE (CATALOG | SCHEMA | TABLE) EXTENDED name

予測的最適化がテーブルをスキップした理由を確認する​

Databricks Runtime 18 LTS以降では、予測的最適化がマネージドテーブルを評価した後、操作がスキップされた理由を2つの方法で確認できます。

  • DESCRIBE TABLE EXTENDED ... AS JSONでテーブルをクエリーします。
  • Catalog Explorer の History tab を使用します。

結果が表示されるまでに最大24時間かかる場合があります。

活用: DESCRIBE TABLE EXTENDED ... AS JSON​

DESCRIBE TABLE EXTENDED ... AS JSON 出力で predictive_optimization_evaluations フィールドを返します。このフィールドには、各操作タイプとそれに対する最新の評価結果がリスト表示されます。

テーブルの評価結果を確認するには、以下を実行してください。

SQL
DESCRIBE TABLE EXTENDED catalog_name.schema_name.table_name AS JSON

predictive_optimization_evaluations フィールドには、各操作タイプの最新の結果が表示されます。最新の評価のみが表示され、履歴はありません。操作タイプには以下が含まれます:

  • COMPACTION
  • CLUSTERING
  • AUTO_CLUSTERING_COLUMN_SELECTION
  • VACUUM

評価出力に、ANALYZE操作のスキップ理由が表示されません。

カタログエクスプローラーの履歴タブを使用します。​

Catalog Explorer のテーブルの [ 履歴 ] タブでスキップの理由を表示できます。[ 操作 ] 列では、 Auto ラベルは操作が実行されたことを示し、 Not applied ラベルは操作がスキップされたことを示します。 Auto ラベルには、予測的最適化や、ストリーミングの自動圧縮などのその他の自動操作が含まれます。

表示するオペレーションをフィルタリングするには、 History tabのドロップダウンを使用します。すべてのオペレーションを表示するには すべてのラン を、予測的最適化などの自動オペレーションのみを表示するには 自動ラン を、手動でTriggerされたオペレーションのみを表示するには 手動ラン を選択します。スキップされた予測的最適化オペレーションを見つけるには、 自動ラン を選択し、 Not applied ラベルが付いた行を探します。

実行タイプドロップダウンが展開された履歴タブ。「すべてのラン」、「自動ラン」、「手動ラン」が表示され、スキップされたVACUUM操作には「適用されていません」とラベル付けされています。

スキップ理由を表示するには、 操作 列の 未適用 ラベルが付いた行をクリックします。

予測的最適化のスキップ理由を表示するCatalog Explorerの履歴タブ。

以下の表は、DESCRIBE TABLE EXTENDED出力の操作タイプがCatalog Explorerに表示される操作にどのようにマッピングされるかを示しています。

DESCRIBE TABLE EXTENDED 操作タイプ

カタログエクスプローラー操作

説明

COMPACTION

OPTIMIZE

クエリパフォーマンスを向上させるためのファイル圧縮

CLUSTERING

OPTIMIZE

増分リキッドクラスタリング

AUTO_CLUSTERING_COLUMN_SELECTION

AUTO LIQUID

リキッドクラスタリングキーの評価または進化

VACUUM

VACUUM

テーブルによって参照されなくなったデータファイルの削除

DESCRIBE TABLE EXTENDED 操作タイプ

カタログエクスプローラー操作

説明

COMPACTION

OPTIMIZE

クエリパフォーマンスを向上させるためのファイル圧縮

CLUSTERING

OPTIMIZE

増分リキッドクラスタリング

AUTO_CLUSTERING_COLUMN_SELECTION

AUTO LIQUID

リキッドクラスタリングキーの評価または進化

VACUUM

VACUUM

テーブルによって参照されなくなったデータファイルの削除

システムテーブルによる予測的最適化の追跡​

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

制限​

予測的最適化は、次のテーブル タイプでは実行されません。

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