予測的最適化 for Unity Catalog マネージドテーブル
注:
2024年11月11日以降に作成されたすべてのアカウントについて、 Databricks はデフォルトによる予測的最適化を有効にします。
予測的最適化により、Unity Catalog マネージドテーブルのメンテナンス操作を手動で管理する必要がなくなります。Databricks
予測的最適化を有効にすると、Databricks はメンテナンス操作の恩恵を受けるテーブルを自動的に識別し、ユーザーのために実行します。 メンテナンス操作は必要な場合にのみ実行されるため、メンテナンス操作の不要な実行と、パフォーマンスの追跡とトラブルシューティングに関連する負担の両方を排除します。
重要
予測的最適化 Only Rund on Unity Catalog マネージドテーブル.
予測的最適化は、 Databricks SQL または Delta Live Tables パイプラインを使用して作成されたストリーミングテーブルまたはマテリアライズドビューでは実行されません。
予測的最適化はどのような操作を実行しますか?
予測的最適化 有効なテーブルに対して、次の操作を自動的に実行します。
オペレーション |
説明 |
---|---|
|
有効なテーブルの増分クラスタリングをトリガーします。 「Deltaテーブルにリキッドクラスタリングを使用する」を参照してください。 ファイルサイズを最適化することで、クエリのパフォーマンスを向上させます。 「データファイルのレイアウトを最適化する」を参照してください。 |
|
テーブルによって参照されなくなったデータ ファイルを削除することで、ストレージ コストを削減します。 「vacuumで未使用のデータファイルを削除する」を参照してください。 |
|
統計の増分更新をトリガーして、クエリの性能を向上させます。 |
(1) OPTIMIZE
予測的最適化で実行した場合、 ZORDER
は実行されません。
(2) ANALYZE
による予測的最適化はパブリック プレビュー段階です。 これには、書き込み中のインテリジェントな統計収集が含まれます。 このフォームを使用して、パブリック プレビューにサインアップします。最初のパブリック プレビュー期間中は、 ANALYZE
コマンドは 500 列以下のテーブルで実行できます。
警告
VACUUM
コマンドの保持期間は、delta.deletedFileRetentionDuration
table プロパティ (既定値は 7 日間) によって決まります。つまり VACUUM
過去 7 日間に Delta テーブル バージョンによって参照されなくなったデータ ファイルが削除されます。 データをより長く保持する場合 (タイムトラベルを長期間サポートする場合など)、次の例のように、予測的最適化を有効にする前に、このテーブル プロパティを適切に設定する必要があります。
ALTER TABLE table_name SET TBLPROPERTIES ('delta.deletedFileRetentionDuration' = '30 days');
予測的最適化はどこで実行されますか?
予測的最適化は、 ANALYZE
、 OPTIMIZE
、および VACUUM
操作からメリットが得られるテーブルを特定し、サーバレス コンピュート for ジョブを使用して実行するようにキューに入れます。 お客様のアカウントは、マネージド サービスに固有の SKU を使用して、これらのワークロードに関連付けられているコンピュートに対して Databricks請求されます。 Databricks マネージドサービスの価格を参照してください。Databricks は、予測的最適化の操作、コスト、および影響に対する可観測性のためのシステムテーブルを提供します。 システムテーブルを使用して予測的最適化を追跡するを参照してください。
予測的最適化の前提条件
予測的最適化を有効にするには、次の要件を満たす必要があります。
Databricks ワークスペースは、予測的最適化をサポートするリージョンの Premium プラン以上 である必要があります。 「Databricks のクラウドとリージョン」を参照してください。
予測的最適化を有効にする場合は、SQLウェアハウスまたは Databricks Runtime 12.2 LTS 以降を使用する必要があります。
Unity Catalogマネージド テーブルのみがサポートされます。
予測的最適化を有効にする
アカウントレベルで予測的最適化を有効にする必要があります。
注:
2024年11月11日以降に作成されたアカウントの場合、デフォルトによって予測的最適化が有効になります。
指定したレベルで予測的最適化を有効または無効にするには、次の権限が必要です。
Unity Catalog オブジェクト |
権限 |
---|---|
アカウント |
アカウント管理者 |
カタログ |
カタログ所有者 |
スキーマ |
スキーマ所有者 |
注:
予測的最適化を初めて有効にすると、Databricks アカウント内にサービスプリンシパルが自動的に作成されます。 Databricks は、このサービスプリンシパルを使用して、要求されたメンテナンス操作を実行します。 「サービスプリンシパルの管理」を参照してください。
アカウントの予測的最適化を有効にする
アカウント管理者は、次の手順を実行して、アカウント内のすべてのメタストアの予測的最適化を有効にする必要があります。
アカウントコンソールにアクセスします。
[ 設定]、[ 機能の有効化] の順に移動します。
[予測的最適化] の横にある [有効] を選択します。
注:
予測的最適化をサポートしていないリージョンのメタストアは有効になっていません。
カタログまたはスキーマの予測的最適化を有効または無効にする
予測的最適化では、継承モデルを使用します。 カタログに対して有効にすると、スキーマはプロパティを継承します。 有効なスキーマ内のテーブルは、予測的最適化を継承します。 この継承動作をオーバーライドするには、カタログまたはスキーマの予測的最適化を明示的に無効にします。
注:
予測的最適化をアカウント レベルで有効にする前に、カタログ レベルまたはスキーマ レベルで無効にすることができます。 後でアカウントで予測的最適化が有効になった場合、これらのオブジェクトのテーブルに対してブロックされます。
次の構文を使用して、予測的最適化を有効または無効にします。
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
システム テーブルを使用して予測的最適化を追跡する
Databricks予測的最適化操作の履歴を追跡するためのシステムテーブルを提供します。 予測的最適化システムテーブルリファレンスを参照してください。
制限事項
予測的最適化は、一部の地域ではご利用いただけません。 「 Databricks のクラウドとリージョン」を参照してください。
予測的最適化は、 Z-Orderを使用するテーブルでは OPTIMIZE
コマンドを実行しません。
予測的最適化では、ファイル保持期間が 7 日未満に設定されているテーブルに対しては操作を実行しませVACUUM
。 「タイムトラベルクエリのデータ保持を構成する」を参照してください。
予測的最適化では、次のテーブルに対してメンテナンス操作は実行されません。
Delta Sharing受信者としてワークスペースに読み込まれたテーブル。
外部テーブル。
マテリアライズドビュー。 「Databricks SQL でマテリアライズド ビューを使用する」を参照してください。
ストリーミング テーブル。 「Databricks SQL でストリーミング テーブルを使用してデータを読み込む」を参照してください。