Databricks のテーブルサイズ
Delta Lake および Apache Iceberg テーブルについて報告されるテーブルサイズは、クラウドオブジェクトストレージ内の対応するファイルディレクトリの合計サイズとは異なります。これらのデータ形式は、タイムトラベルクエリを可能にするために、データファイルの以前のバージョンを保持します。データファイルは、保持しきい値を超えて VACUUM が実行された場合にのみ削除されます。vacuum で未使用のデータファイルを削除するを参照してください。
テーブルサイズがディレクトリサイズと異なる理由
UI および DESCRIBE コマンドを通じて Databricks で報告されるテーブルサイズは、テーブルの現在のバージョンで参照されるファイルのストレージ内のデータファイルの合計サイズを参照します。テーブルに書き込むほとんどの操作は、基になるデータファイルの書き換えが必要であり、タイムトラベルクエリを可能にするために古いデータファイルを保持します。
テーブル内のレコードを定期的に削除または更新する場合、削除ベクトルによってクエリが高速化され、データ ファイルの合計サイズが削減されます。Databricks の削除ベクトルを参照してください。
コンピュート ストレージ メトリクス テーブル用
適用対象: Databricks Runtime 18.0以上
合計ストレージサイズがテーブルサイズと異なる理由を理解するには、ANALYZE TABLE … COMPUTE STORAGE METRICSを使用してください。このコマンドは、ストレージ割り当ての詳細な内訳を表示し、以下に役立ちます。
- コスト最適化の機会を特定する : どれだけのストレージを再利用できるかを確認します
VACUUM - タイムトラベルのオーバーヘッドを分析する : 履歴データを保持するコストを理解する
- ストレージパターンの追跡 : コマンドを定期的に実行して、テーブルストレージが時間の経過とともにどのように変化するかを監視します。
- テーブル間のストレージ監査 : コマンドをループで実行して、データ資産全体を分析します。
コマンドは、以下を含む包括的なメトリクスを返します。
- 合計ストレージサイズ : すべてのデータ、メタデータ、ログを含む完全なフットプリント
- アクティブデータ : 現在のテーブルバージョンのサイズ
- 回収可能なデータ :回収可能なスペース
- タイムトラベルデータ : ロールバックの履歴データ
これは、 Databricks予測的最適化を通じてストレージを自動的に管理するUnity Catalogマネージド テーブルにとって特に有益です。
完全な構文と例については、 ANALYZE TABLE … コンピュート STORAGE メトリクス」を参照してください。
予測的最適化を使用してデータサイズを制御する
Databricksは、予測的最適化が有効になっているUnity Catalogマネージドテーブルを使用することを推奨しています。マネージドテーブルと予測的最適化により、Databricksは未使用のデータファイルの蓄積を防ぐためにOPTIMIZEおよびVACUUMコマンドを自動的に実行します。テーブルの現在のバージョンとクラウドオブジェクトストレージ内のデータファイルの合計サイズとの間には、常にサイズの差があることを想定してください。現在のバージョンで参照されていないデータファイルは、タイムトラベルクエリをサポートするために必要です。Unity Catalogマネージドテーブルの予測的最適化を参照してください。
VACUUM ストレージメトリクス
VACUUM を使用して未使用のデータファイルをクリーンアップするか、DRY RUN を使用して削除用に設定されたファイルをプレビューすると、メトリクスは削除されたファイルの数とデータサイズを報告します。VACUUM によって削除されるファイルのサイズと数は大幅に異なりますが、削除されるファイルのサイズがテーブルの現在のバージョンの合計サイズを超えることは一般的です。
OPTIMIZE ストレージメトリクス
OPTIMIZE がターゲットテーブルで実行されると、新しいデータファイルは既存のデータファイルからレコードを結合します。OPTIMIZE 中にコミットされた変更はデータ編成にのみ影響し、基になるデータコンテンツへの変更は発生しません。OPTIMIZEの実行後、テーブルの基になるデータファイルの合計サイズが増加します。これは、新しい圧縮されたファイルが古い最適化されていないデータファイルと同じディレクトリに共存するためです。
OPTIMIZE後に報告されるテーブルのサイズは、現在のテーブル・バージョンによって参照されるデータ・ファイルの合計サイズがデータ圧縮によって減少するため、通常は OPTIMIZE が実行される前のサイズよりも小さくなります。基になるデータファイルを削除するには、保持期間のしきい値が経過した後で VACUUM を実行する必要があります。
REORG TABLE や DROP FEATUREなどの操作についても同様のメトリクスが表示される場合があります。データ・ファイルの書き換えが必要なすべての操作では、現在のテーブル・バージョンで参照されなくなったデータ・ファイルが VACUUM 削除されるまで、包含ディレクトリ内のデータの合計サイズが増加します。