Databricks のテーブルサイズ
Databricks 上の Delta Lake によってサポートされるテーブルについて報告されるテーブル サイズは、クラウド オブジェクト ストレージ内の対応するファイル ディレクトリの合計サイズとは異なります。 この記事では、この違いが存在する理由と、コスト管理に関する推奨事項について説明します。
Delta テーブルのサイズがディレクトリのサイズと一致しないのはなぜですか?
UI と DESCRIBE コマンドを使用して Databricks で報告されるテーブル サイズは、現在のバージョンの Delta テーブルで参照されるファイルのディスク上のデータ ファイルの合計サイズを参照します。 テーブルに書き込むほとんどの操作では、基になるデータ・ファイルを書き直す必要がありますが、古いデータ・ファイルはタイムトラベル・クエリをサポートするために一定期間保持されます。
テーブル内のレコードを定期的に削除または更新する場合、削除ベクトルを使用するとクエリを高速化し、データファイルの合計サイズを削減できます。 削除ベクトルとはを参照してください。
コンピュート ストレージ メトリクス テーブル用
適用対象: Databricks Runtime 18.0以上
ストレージの合計サイズがテーブル サイズと異なる理由を理解するには、 ANALYZE TABLE … COMPUTE STORAGE METRICSを使用します。このコマンドは、ストレージ割り当ての詳細な内訳を提供し、次のことに役立ちます。
- コスト最適化の機会を特定する : どれだけのストレージを再利用できるかを確認します
VACUUM - タイムトラベルのオーバーヘッドを分析する : 履歴データを保持するコストを理解する
- ストレージパターンの追跡 : コマンドを定期的に実行して、テーブルストレージが時間の経過とともにどのように変化するかを監視します。
- テーブル間のストレージ監査 : コマンドをループで実行して、データ資産全体を分析します。
コマンドは、以下を含む包括的なメトリクスを返します。
- 合計ストレージサイズ : すべてのデータ、メタデータ、ログを含む完全なフットプリント
- アクティブデータ : 現在のテーブルバージョンのサイズ
- 回収可能なデータ :回収可能なスペース
- タイムトラベルデータ : ロールバックの履歴データ
これは、 Databricks予測的最適化を通じてストレージを自動的に管理するUnity Catalogマネージド テーブルにとって特に有益です。
完全な構文と例については、コンピュート 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 削除されるまで、包含ディレクトリ内のデータの合計サイズが増加します。