Unity Catalog 管理テーブルの予測最適化
予測最適化により、Azure Databricks 上の Unity Catalog のマネージド テーブルのメンテナンス操作について、手動で管理する必要がなくなります。
予測最適化を有効にすると、Azure Databricks は自動的にメンテナンス操作が有益なテーブルを特定し、ユーザーの代わりに実行します。 メンテナンス操作は必要な場合にのみ実行されるため、メンテナンス操作のための不必要な実行と、パフォーマンスの追跡やトラブルシューティングに関連する負担の両方が排除されます。
重要
予測最適化は、Unity カタログのマネージド テーブルでのみ実行されます。
予測最適化は、Databricks SQL または Delta Live Tables パイプラインを使用して作成されたストリーミング テーブルまたは具体化されたビューでは実行されません。
予測最適化ではどのような操作を行いますか?
予測最適化では、有効なテーブルに対して、次のような操作が自動的に実行されます。
操作 | 説明 |
---|---|
OPTIMIZE (1) |
有効なテーブルの増分クラスタリングをトリガーします。 「Delta テーブルに Liquid Clustering クラスタリングを使用する」を参照してください。 ファイル サイズを最適化することで、クエリのパフォーマンスを向上させます。 「データ ファイル レイアウトを最適化する」を参照してください。 |
VACUUM |
テーブルで参照されなくなったデータ ファイルを削除することで、ストレージ コストを削減します。 「VACUUM を使用して未使用のデータ ファイルを削除する」を参照してください。 |
ANALYZE (2) |
クエリのパフォーマンスを向上させるために、統計の増分更新をトリガーします。 |
(1)予測最適化を使用して実行した場合、 OPTIMIZE
は ZORDER
実行されません。
(2)ANALYZE
を使用した予測最適化のはパブリック プレビュー段階です。 これには、書き込み中のインテリジェントなスタスティスティック コレクションが含まれます。 このフォーム 使用して パブリック プレビューにサインアップします。 初期パブリック プレビュー中、 ANALYZE
コマンドは、最大 1 TB のデータと 500 列以下のテーブルで実行できます。
警告
VACUUM
コマンドの保持期間は delta.deletedFileRetentionDuration
テーブル プロパティによって決定され、既定では 7 日間です。 つまり、VACUUM
は、過去 7 日間の Delta テーブル バージョンで参照されなくなったデータ ファイルを削除します。 より長期間データを保持したい場合 (より長い期間のタイム トラベルをサポートするためなど)、次の例に示すように予測最適化を有効にする前に、このテーブル プロパティを適切に設定する必要があります。
ALTER TABLE table_name SET TBLPROPERTIES ('delta.deletedFileRetentionDuration' = '30 days');
予測最適化はどこで行われますか?
予測最適化では、 ANALYZE
、 OPTIMIZE
、および VACUUM
操作の恩恵を受けるテーブルを識別し、ジョブに対してサーバーレス コンピューティングを使用して実行するようにキューに格納します。 お客様のアカウントは、Databricks 管理サービスに固有の SKU を使用して、これらのワークロードに関連するコンピューティングに対して請求されます。 Databricks 管理サービスの価格を参照してください。 Azure Databricks は、予測最適化の運用、コスト、影響に対する可観測性用にシステム テーブルを提供します。 「予測最適化を追跡するためにシステム テーブルを使用する」を参照してください。
予測最適化の前提条件
予測最適化を有効にするには、次の要件を満たす必要があります。
Azure Databricks ワークスペースには、予測最適化をサポートするリージョンで Premium プランが必要です。 「Azure Databricks のリージョン」を参照してください。
予測最適化を有効にする場合は、SQL ウェアハウスまたは Databricks Runtime 12.2 LTS 以降を使用する必要があります。
Unity Catalog マネージド テーブルのみがサポートされています。
ストレージ アカウントにプライベート接続が必要な場合は、サーバーレス プライベート接続を構成する必要があります。 「サーバーレス コンピューティングからのプライベート接続を構成する」を参照してください。
予測最適化を有効にする
アカウント レベルで予測最適化を有効にする必要があります。
指定されたレベルで予測最適化を有効または無効にするには、次のような権限が必要です。
Unity Catalog オブジェクト | 権限 |
---|---|
取引先企業 | アカウント管理者 |
カタログCatalog | カタログ所有者 |
[スキーマ] | スキーマの所有者 |
Note
予測最適化を初めて有効にすると、Azure Databricks は自動的に Azure Databricks アカウントにサービス プリンシパルを作成します。 Azure Databricks は、このサービス プリンシパルを使用して、要求されたメンテナンス処理を実行します。 「サービス プリンシパルを管理する」を参照してください。
アカウントの予測最適化を有効にする
アカウント管理者がアカウント内のすべてのメタストアで予測最適化を有効にするには、次の手順を実行する必要があります。
- アカウント コンソールにアクセスします。
- [設定]、[機能の有効化] の順に移動します。
- [予測最適化] の横にある [有効] を選択します。
Note
予測最適化をサポートしていないリージョンのメタストアは有効になりません。
カタログまたはスキーマ向けの予測最適化を有効または無効にする
予測最適化は継承モデルを使用します。 カタログに対して有効にすると、スキーマはこのプロパティを継承します。 有効になったスキーマ内のテーブルは、予測最適化を継承します。 この継承動作を上書きするには、カタログまたはスキーマの予測最適化を明示的に無効にします。
Note
予測最適化は、アカウント レベルで有効にする前に、カタログレベルまたはスキーマ レベルで無効にすることができます。 後でアカウントで予測最適化を有効にすると、これらのオブジェクト内のテーブルに対してブロックされます。
予測最適化を有効または無効にするには、次の構文を使用します。
ALTER CATALOG [catalog_name] {ENABLE | DISABLE} PREDICTIVE OPTIMIZATION;
ALTER {SCHEMA | DATABASE} schema_name {ENABLE | DISABLE} PREDICTIVE OPTIMIZATION;
予測最適化が有効かどうかをチェックする
Predictive Optimization
フィールドは、予測最適化が有効かどうかを詳細に示す Unity Catalog プロパティです。 予測最適化を親オブジェクトから継承している場合、これはフィールド値に示されます。
重要
このフィールドを表示するには、アカウント レベルで予測最適化を有効にする必要があります。
予測最適化が有効になっているか確認するには、次の構文を使用します。
DESCRIBE (CATALOG | SCHEMA | TABLE) EXTENDED name
予測最適化を追跡するためにシステム テーブルを使用する
Azure Databricks は、予測最適化操作の履歴を追跡するシステム テーブルを提供します。 「予測最適化システムテーブル参照」を参照してください。
プライベート リンクのエラー メッセージ
システム テーブルで、操作が FAILED: PRIVATE_LINK_SETUP_ERROR
で失敗としてマークされている場合、サーバーレス コンピューティング用にプライベート リンクが正しく構成されていない可能性があります。 「サーバーレス コンピューティングからのプライベート接続を構成する」を参照してください。
制限事項
予測最適化は、すべてのリージョンで使用できるわけではありません。 「Azure Databricks のリージョン」を参照してください。
予測最適化では、Z オーダーを使用するテーブルに対して OPTIMIZE
コマンドを実行しません。
予測最適化では、ファイル保持期間が既定の 7 日間を下回って構成されたテーブルに対する VACUUM
操作は実行されません。 「タイム トラベル クエリのデータ保持を構成する」を参照してください。
予測最適化は、次のテーブルのメンテナンス操作を実行しません。
- Delta 共有の受信者としてワークスペースに読み込まれたテーブル。
- 外部テーブル。
- 具体化されたビュー。 「Databricks SQL の具体化されたビューを使用する」を参照してください。
- ストリーミング テーブル。 「Databricks SQL でストリーミング テーブルを使用してデータを読み込む」を参照してください。