予測I/Oとは?
予測 I/O は、データインタラクションのパフォーマンスを向上させる Databricks の最適化のコレクションです。 予測 I/O 機能は、次のカテゴリにグループ化されます。
- 高速読み取りにより、データのスキャンと読み取りにかかる時間が短縮されます。
- 高速更新により、更新、削除、およびマージ中に書き換える必要のあるデータの量が削減されます。
予測 I/O は、Databricks の Photon エンジン専用です。
読み取り速度を加速するための予測I/Oの活用
予測 I/O は、サポートされているコンピュート タイプに対するすべての操作のデータ スキャンとフィルタリングのパフォーマンスを高速化するために使用されます。
プレディクティブI/Oリードは、SQL ウェアハウスのサーバレスタイプとプロタイプ、およびDatabricks Runtime LTS 11.3 以降を実行するPhoton高速化クラスターでサポートされています。
予測I/Oは、ディープラーニング技術を適用して次のことを行うことで、スキャンパフォーマンスを向上させます。
- データを読み取るための最も効率的なアクセスパターンを決定し、実際に必要なデータのみをスキャンする。
- クエリ結果の生成に必要のない列と行のデコードを排除します。
- 行に一致する選択的クエリの検索条件の確率を計算します。 クエリが実行されると、これらの確率を使用して、次に一致する行がどこで発生するかを予測し、そのデータをクラウドストレージからのみ読み取ります。
予測I/Oを使用して更新を高速化
更新処理における予測I/Oは、次のPhoton対応コンピュートタイプを使用して、削除ベクトルが有効になっているすべてのテーブルに対して自動的に使用されます。
- サーバレス SQLウェアハウス.
- プロSQLウェアハウス。
- Databricks Runtime 14.0 以降を実行しているクラスター 。
更新の予測 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 は、削除ベクトルを利用して、Delta テーブルでのデータ変更中にファイル全体の書き換えの頻度を減らすことで、更新を高速化します。 予測 I/O は、 DELETE
、 MERGE
、および UPDATE
操作を最適化します。
予測 I/O では、レコードが更新または削除された場合にデータ ファイル内のすべてのレコードを再書き込みするのではなく、削除ベクトルを使用して、ターゲット データ ファイルからレコードが削除されたことを示します。 補足データ・ファイルは、更新を示すために使用されます。
テーブルに対する後続の読み取りでは、指摘された変更を最新のテーブルバージョンに適用することで、現在のテーブルの状態が解決されます。
予測 I/O 更新は、削除ベクトルとすべての制限を共有します。 Databricks Runtime 12.2 LTS 以降では、次の制限があります。
- Delta Sharing は、削除ベクトルが有効になっているテーブルではサポートされていません。
- 削除ベクトルが存在するテーブルのマニフェスト ファイルを生成することはできません。 マニフェストを生成するために、
REORG TABLE ... APPLY (PURGE)
を実行し、並列書き込み操作が実行されていないことを確認します。 - 削除ベクトルが有効になっているテーブルのマニフェストファイルを増分生成することはできません。