メモ
Databricks では、2024 年 11 月 11 日以降に作成されたすべてのアカウントに対して、予測最適化が既定で有効になります。 2025 年 5 月 7 日から、Databricks では、既存のすべての Databricks アカウントに対して予測の最適化が既定で有効になります。 これは、お客様のリージョンに基づいて段階的にロールアウトされ、2025 年 7 月 1 日までに完了します。 アカウントに対して 予測最適化が有効になっているかどうかを確認 できます。
予測最適化により、Azure Databricks 上の Unity Catalog のマネージド テーブルのメンテナンス操作について、手動で管理する必要がなくなります。
予測最適化を有効にすると、Azure Databricks によって次の処理が自動的に実行されます。
- メンテナンス操作の恩恵を受けるテーブルを識別し、これらの操作を実行するキューに入れます。
- データがマネージド テーブルに書き込まれるときに統計を収集します。
メンテナンス操作は必要に応じて実行されるため、メンテナンス操作の不要な実行と、パフォーマンスの追跡とトラブルシューティングに伴う負担の両方が排除されます。
Databricks では、すべての Unity カタログマネージド テーブルに予測最適化を使用することをお勧めします。 たとえば、自動液体クラスタリングでは、データ使用パターンに基づいてデータ レイアウトがインテリジェントに最適化されます。 表に液体クラスタリングを使用するを参照してください。
重要
予測最適化は、Unity カタログのマネージド テーブルでのみ実行されます。
予測最適化は、すべてのリージョンで使用できるわけではありません。 「利用可能なリージョンに制限がある機能」を参照してください。
予測最適化ではどのような操作を行いますか?
予測最適化では、有効なテーブルに対して、次のような操作が自動的に実行されます。
操作 | 説明 |
---|---|
OPTIMIZE
(1) |
有効なテーブルの増分クラスタリングをトリガーします。
表に液体クラスタリングを使用するを参照してください。 ファイル サイズを最適化することで、クエリのパフォーマンスを向上させます。 「データ ファイル レイアウトを最適化する」を参照してください。 |
VACUUM |
テーブルで参照されなくなったデータ ファイルを削除することで、ストレージ コストを削減します。 「VACUUM を使用して未使用のデータ ファイルを削除する」を参照してください。 |
ANALYZE |
クエリのパフォーマンスを向上させるために、統計の増分更新をトリガーします。 [https://docs.microsoft.com/azure/active-directory/develop/scenario-protected-web-api-overview](ANALYZE TABLE) をご覧ください。 |
(1)予測最適化を使用して実行した場合、OPTIMIZE
は ZORDER
実行されません。 Z オーダーを使用するテーブルでは、予測最適化は Z オーダーファイルを無視します。
自動液体クラスタリングが有効になっている場合、予測最適化では、データをクラスタリングする前に新しいクラスタリング キーが選択される可能性があります。 自動液体クラスタリングを参照してください。
警告
VACUUM
コマンドの保持期間は delta.deletedFileRetentionDuration
テーブル プロパティによって決定され、既定では 7 日間です。 つまり、VACUUM
は、過去 7 日間の Delta テーブル バージョンで参照されなくなったデータ ファイルを削除します。 データを長く保持する場合 (長時間の移動をサポートする場合など)、次の例のように、予測最適化を有効にする前に、このテーブル プロパティを適切に設定する必要があります。
ALTER TABLE table_name SET TBLPROPERTIES ('delta.deletedFileRetentionDuration' = '30 days');
delta.deletedFileRetentionDuration
を既定値の 7 日未満に構成した場合、予測最適化は、保持期間が 7 日間のVACUUM
に実行されます。
予測最適化はどこで行われますか?
予測最適化では、 ANALYZE
、 OPTIMIZE
、および VACUUM
操作の恩恵を受けるテーブルを識別し、ジョブに対してサーバーレス コンピューティングを使用して実行するようにキューに格納します。 アカウントは、サーバーレス ジョブ SKU を使うこれらのワークロードに関連付けられているコンピューティングについて課金されます。
Databricks 管理サービスの価格を参照してください。 「予測最適化を追跡するためにシステム テーブルを使用する」を参照してください。
予測最適化の前提条件
予測最適化を有効にするには、次の要件を満たす必要があります。
- Azure Databricks ワークスペースには、予測最適化をサポートするリージョンで Premium プランが必要です。 「利用可能なリージョンに制限がある機能」を参照してください。
- 予測最適化を有効にする場合は、SQL ウェアハウスまたは Databricks Runtime 12.2 LTS 以降を使用する必要があります。
- Unity Catalog マネージド テーブルのみがサポートされています。
- ストレージ アカウントにプライベート接続が必要な場合は、サーバーレス プライベート接続を構成する必要があります。 「Azure リソースへのプライベート接続を構成する」を参照してください。
予測最適化を有効にする
アカウント、カタログ、またはスキーマの予測最適化を有効にすることができます。 すべての Unity カタログマネージド テーブルは、既定でアカウント値を継承します。 カタログまたはスキーマのアカウントの既定値をオーバーライドして、そのレベルで予測最適化を有効または無効にすることができます。
メモ
2024 年 11 月 11 日以降にアカウントが作成された場合、予測最適化は既定で有効になります。 2025 年 5 月 7 日から、既存のすべてのアカウントに対して予測最適化が既定で有効になります。 これは、お客様のリージョンに基づいて段階的にロールアウトされ、2025 年 7 月 1 日までに完了します。
指定されたレベルで予測最適化を有効または無効にするには、次のような権限が必要です。
Unity Catalog オブジェクト | 権限 |
---|---|
アカウント | アカウント管理者 |
カタログ | カタログ所有者 |
スキーマ | スキーマの所有者 |
アカウントの予測最適化を有効または無効にする
アカウント管理者は、次の手順を実行して、アカウント内のすべてのメタストアの予測最適化を有効にすることができます。 アカウント内のオブジェクトは、既定でこの設定を継承します (ただし、設定はカタログ レベルまたはスキーマ レベルでオーバーライドできます)。
- アカウント コンソールにアクセスします。
- [設定]、[機能の有効化] の順に移動します。
- 予測最適化の横にある使用するオプション (例えば、有効) を選択します。
メモ
- 予測最適化をサポートしていないリージョンのメタストアは有効になっていません。
- アカウント レベルで予測最適化を無効にしても、明示的に有効にしたカタログまたはスキーマでは無効になりません。
カタログまたはスキーマ向けの予測最適化を有効または無効にする
予測最適化は継承モデルを使用します。 カタログに対して有効にすると、スキーマはこのプロパティを継承します。 有効になったスキーマ内のテーブルは、予測最適化を継承します。 この継承動作をオーバーライドするには、カタログまたはスキーマの予測最適化を明示的に有効または無効にします。
メモ
予測最適化は、アカウント レベルで有効にする前に、カタログレベルまたはスキーマ レベルで無効にすることができます。 後でアカウントで予測最適化を有効にすると、これらのオブジェクト内のテーブルに対してブロックされます。
予測最適化を有効または無効にしたり、親オブジェクトから継承する既定値に戻したりするには、次の構文を使用します。
ALTER CATALOG [catalog_name] { ENABLE | DISABLE | INHERIT } PREDICTIVE OPTIMIZATION;
ALTER { SCHEMA | DATABASE } schema_name { ENABLE | DISABLE | INHERIT } PREDICTIVE OPTIMIZATION;
予測最適化が有効になっているかどうかを確認する
Predictive Optimization
フィールドは、予測最適化が有効かどうかを詳細に示す Unity Catalog プロパティです。 予測最適化を親オブジェクトから継承している場合、これはフィールド値に示されます。
予測最適化が有効になっているか確認するには、次の構文を使用します。
DESCRIBE (CATALOG | SCHEMA | TABLE) EXTENDED name
予測最適化を追跡するためにシステム テーブルを使用する
Azure Databricks には、予測最適化操作、コスト、および影響を監視するためのシステム テーブル system.storage.predictive_optimization_operations_history
が用意されています。 「予測最適化システムテーブル参照」を参照してください。
プライベート リンクのエラー メッセージ
システム テーブルで、操作が FAILED: PRIVATE_LINK_SETUP_ERROR
で失敗としてマークされている場合、サーバーレス コンピューティング用にプライベート リンクが正しく構成されていない可能性があります。
「Azure リソースへのプライベート接続を構成する」を参照してください。
制限事項
予測最適化は、すべてのリージョンで使用できるわけではありません。 「利用可能なリージョンに制限がある機能」を参照してください。
削除されたファイルの保持期間 (delta.deletedFileRetentionDuration
) が既定の 7 日未満に構成されているテーブルの場合、予測最適化は保持期間が 7 日間の VACUUM
実行されます。 「タイム トラベル クエリのデータ保持を構成する」を参照してください。
予測最適化は、次のテーブルのメンテナンス操作を実行しません。
- Delta 共有の受信者としてワークスペースに読み込まれたテーブル。
- 外部テーブル。