次の方法で共有


予測 I/O とは

予測 I/O は、データ操作のパフォーマンスを向上させる Azure Databricks 最適化のコレクションです。 予測 I/O 機能は、次のカテゴリにグループ化されます。

  • 高速読み取りでは、データのスキャンと読み取りに要する時間が短縮されます。
  • 高速更新では、更新、削除、マージ中に書き換える必要があるデータの量が減ります。

予測 I/O は、Azure Databricks 上の Photon エンジン専用です。

予測 I/O を使用して読み取りを高速化する

予測 I/O は、サポートされるコンピューティングの種類に対するすべての操作のデータ スキャンとフィルター処理のパフォーマンスを高速化するために使用されます。

重要

予測 IO の読み取りは、種類がサーバーレスおよび Pro である SQL ウェアハウスと、Databricks Runtime 11.3 LTS 以降を実行する Photon 高速化クラスターによってサポートされます。

予測 I/O を使用すると、ディープ ラーニング手法を適用して以下を行うことで、スキャンのパフォーマンスが向上します。

  • データを読み取る最も効率的なアクセス パターンを判断し、実際に必要なデータのみをスキャンします。
  • クエリ結果の生成に必要のない列と行のデコードを排除します。
  • 1 行を照合する選択的クエリで検索条件の確率を計算します。 クエリの実行時には、これらの確率を使用して、次に一致する行が発生する場所を予測し、クラウド ストレージからそのデータのみを読み取ります。

予測 I/O を使用して更新を高速化する

更新の予測 I/O は、次の Photon 対応コンピューティングの種類を使用して、削除ベクターが有効になっているすべてのテーブルに対して自動的に使用されます。

  • サーバーレス SQL ウェアハウス。
  • Pro SQL ウェアハウス。
  • Databricks Runtime 14.0 以降を実行しているクラスター。

Note

更新の予測 I/O は Databricks Runtime 12.2 LTS 以降でサポートされていますが、Databricks では、パフォーマンスを最大限に高めるために 14.0 以降を使うことをお勧めします。

削除ベクトルとは」を参照してください。

重要

ワークスペース管理者設定では、新しい Delta テーブルに対して削除ベクトルを自動で有効にするかどうかをコントロールします。 「削除ベクトルの自動有効化」を参照してください。

Delta Lake テーブルのプロパティを設定することで、Delta Lake テーブルの削除ベクトルのサポートを有効にします。 次の例のように、テーブルの作成時に削除ベクトルを有効にするか、既存のテーブルを変更します。

CREATE TABLE <table-name> [options] TBLPROPERTIES ('delta.enableDeletionVectors' = true);

ALTER TABLE <table-name> SET TBLPROPERTIES ('delta.enableDeletionVectors' = true);

警告

削除ベクトルを有効にすると、テーブル プロトコルのバージョンがアップグレードされます。 アップグレード後、削除ベクトルをサポートしていない Delta Lake クライアントはテーブルを読み取りできなくなります。 Delta Lake の機能の互換性とプロトコルに関する記事を参照してください。

削除ベクトルをサポートするクライアントの一覧については、「 Delta クライアントとの互換性」を参照してください。

Databricks Runtime 14.1 以降では、他の Delta クライアントとの互換性を有効にするため、削除ベクトル テーブル機能を削除できます。 Delta Lake テーブル機能の削除とテーブル プロトコルのダウングレードに関する記事を参照してください。

予測 I/O では、削除ベクトルを利用して、差分テーブルでのデータ変更中の完全なファイル書き換えの頻度を減らすことで、更新を高速化します。 予測 I/O では、DELETEMERGEUPDATE の各操作が最適化されます。

予測 I/O では、レコードが更新または削除されたときにデータ ファイル内のすべてのレコードを書き換えるのではなく、削除ベクトルを使用して、ターゲット データ ファイルからレコードが削除されたことを示します。 補足データ ファイルが更新を示すために使用されます。

テーブルに対する後続の読み取りは、記録された変更を最新のテーブルバージョンに適用することで、現在のテーブルの状態を更新します。

重要

予測 I/O 更新では、削除ベクトルとすべての制限事項が共有されます。 Databricks Runtime 12.2 LTS 以降では、次の制限があります。

  • Delta Sharingは削除ベクターが有効になっているテーブルではサポートされていません。
  • 削除ベクトルが存在するテーブルのマニフェスト ファイルを生成することはできません。 REORG TABLE ... APPLY (PURGE)を実行し、マニフェストを生成するために同時書き込み操作が実行されていないことを確認します。
  • 削除ベクトルが有効になっているテーブルのマニフェスト ファイルを増分生成することはできません。