0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Deltaのデータパージ - 古いデータをどうすべきか

Last updated at Posted at 2024-11-17

DatabricksでSparkとDelta Lakeワークロードを最適化するための包括的ガイドのコンテンツです。

Comprehensive Guide to Optimize Data Workloads | DatabricksのセクションData Purging — What to Do With Stale Dataの翻訳です。

  • 本書は著者が手動で翻訳したものであり内容の正確性を保証するものではありません。正確な内容に関しては原文を参照ください。
  • 2023年時点の内容です。一部情報が古いものがあります。

Deltaでは、使用されていない古いデータファイルをパージするためのVACUUMの機能が提供されています。この機能は、Deltaによって管理されていないテーブルのディレクトリから全てのファイルを削除し、テーブルのトランザクションログの最新状態に含まれておらず、保持期間の閾値よりも古いデータファイルも削除します。デフォルトの閾値は7日です。

VACUUM table_name

以下のように、必要であればデフォルトの保持期間の閾値を変更することができます:

-- table properties
deltaTable.deletedFileRetentionDuration  = “interval 15 days”

VACUUMは、_delta_logを含むアンダースコア(_)で始まる全てのディレクトリをスキップします。チェックポイントのオペレーションの後に、ログファイルは自動かつ非同期的に削除されます。ログファイルのデフォルトの保持期間は30日であり、delta.logRetentionDurationを通じて設定することができます。

  • テーブルに対して同時実行するリーダーやライターによって、古いスナップショットやコミットされていないファイルが以前として使用されることがあるため、少なくとも保持期間を7日にすることをお勧めします。VACUUMがアクティブなファイルを削除すると、同時実行しているリーダーが失敗することがあり、さらに悪いケースでは、コミットされていないファイルをVACUUMが削除した際にテーブルが破損します。
  • データとトランザクション履歴が同じ期間保持されるように、deltaTable.deletedFileRetentionDurationdelta.logRetentionDurationには同じ値を設定しましょう。
  • Deltaテーブルに適用されるトランザクションの頻度に応じて、日次/週次でVACUUMコマンドを実行しましょう。
  • このコマンドをジョブの一部として実行せず、OPTIMIZEコマンドと一緒に別個かつ個別のクラスターで実行しましょう。
  • VACUUMはそれほど計算リソースを必要としない(メインのタスクは、ワーカーで並列実行できるファイルの一覧です。実際のファイルの削除はドライバーによって行われます)ので、1から4台のワーカーを持つ小規模なオートスケーリングクラスターで十分です。

はじめてのDatabricks

はじめてのDatabricks

Databricks無料トライアル

Databricks無料トライアル

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?