データ基盤

Delta Lakeとは|1日5%書き替えて1年ぶん残すと、置き場が19.31倍になった

版を残すと置き場はどれだけ増えるのか同時に書くとどうなるのか項目を変えると読めなくなるのか

1日5%を書き替えて1年ぶんの版を残すと、置き場は19.31倍になりました。

書き替えが0.2%なら1.74倍です。残す日数より、書き替える割合のほうが効きます

この記事の要点

  • 5%・1年で19.31倍
  • 0.2%・1年なら1.74倍
  • 16人同時でやり直し76%
  • それでも確定は2.6倍

1日5%書き替えて1年ぶん残すと19.31倍

過去に戻れる代わりに、古い塊が積み上がります。効くのは日数より書き替える割合です。

Delta Lakeでは、過去の版に戻れます。公式は時間旅行。データの版管理により、巻き戻し、完全な履歴の監査、再現できる機械学習の実験ができると述べています。

戻れるのは、古い塊が残っているからです。どれだけ積み上がるのか実際に数えてみました。

残す日数と割合を変える

text
表は 4,000 個の塊でできている(1個 24MB、合計 93.8GB)
1日1回書き替える。書き替えた塊は差し替わり、古い版が残る

1日に書き替える割合              1日ぶん残す            7日ぶん残す           30日ぶん残す           90日ぶん残す          365日ぶん残す
0.2%                    93.9GB (1.00倍)    95.3GB (1.02倍)    99.0GB (1.06倍)   112.3GB (1.20倍)   162.9GB (1.74倍)
1.0%                    94.8GB (1.01倍)   100.5GB (1.07倍)   122.8GB (1.31倍)   178.5GB (1.90倍)   436.3GB (4.65倍)
5.0%                    99.0GB (1.06倍)   124.4GB (1.33倍)   237.1GB (2.53倍)   513.9GB (5.48倍) 1809.9GB (19.31倍)

1日5%を書き替えて1年ぶん残すと19.31倍です。93.8GBが1809.9GBになりました。

同じ1年でも、0.2%なら1.74倍で止まります。割合が25分の1になると、増え方も大きく変わります

どちらを先に決めるか

横に見ると、30日までは0.2%で1.06倍、5%でも2.53倍です。短く残すぶんには、どちらでも軽く済みます

長く残すと差が開きます。何日残すかを決める前に、1日に何%書き替えているかを測ることになります。

古いものを消す判断そのものはParquetの記事で扱った区切り方とも関わり、消す単位が細かいほど削りやすくなります。

1年ぶん残す場合、書き替える割合で倍率が大きく変わる。

単位: 倍5.0%19.31倍1.0%4.65倍0.2%1.74倍元は93.8GB。30日ぶんに縮めれば、同じ順に1.06倍・1.31倍・2.53倍まで下がる。
図1 ── 1日に書き替える割合と、1年ぶん残したときの倍率
出典Delta Lake 公式ドキュメント「Welcome to the Delta Lake documentation」2026-08-18 確認
Time travel: Data versioning enables rollbacks, full historical audit trails, and reproducible machine learning experiments.
原文Delta Lake 公式ドキュメント「Welcome to the Delta Lake documentation」 この内容の有効期限2027-02-18

16人で書くとやり直しが76%、それでも確定は2.6倍

まとまった書き込みが効きます。やり直しの割合は増えても、確定した回数は増えました。

Delta Lakeは、まとまった書き込みを提供します。公式はDelta Lakeは、S3・ADLS・GCS・HDFSといった既存のデータレイクの上に、まとまった書き込み、大きく育つ管理情報の扱いを提供し、流し込みと一括処理をひとつにすると述べています。

同時に書けば衝突します。どれだけやり直しになるのか実際に動かして数えました。

書き手の数を変える

text
600分ぶん。同じ表へ複数の書き手が同時に書き込む
先に確定したほうが勝ち、あとの1つはやり直す(同じ塊に当たった場合だけ)

書き手の数                        1回5秒                     1回30秒                    1回120秒
2人                  確定10634回 / やり直し26%         確定1777回 / やり直し26%          確定433回 / やり直し28%
4人                  確定15291回 / やり直し47%         確定2555回 / やり直し47%          確定647回 / やり直し46%
8人                  確定20954回 / やり直し64%         確定3471回 / やり直し64%          確定870回 / やり直し64%
16人                 確定27337回 / やり直し76%         確定4544回 / やり直し76%         確定1134回 / やり直し76%

16人にすると、やり直しは76%まで上がります。4回に3回は無駄になります。

それでも確定した回数は10,634回から27,337回です。2.6倍に増えました。

1回の長さは効かない

横に見ると、1回5秒でも120秒でも、やり直しの割合はほぼ同じです。26%・47%・64%・76%が並びます。

決めているのは書き手の数だけでした。1回を短くしても、やり直しの割合は下がりません

下げたいなら、当たる相手を減らすことになります。表を細かく分けて、書き手ごとに触る塊をずらします

出典Delta Lake 公式ドキュメント「Welcome to the Delta Lake documentation」2026-08-18 確認
Delta Lake provides ACID transactions, scalable metadata handling, and unifies streaming and batch data processing on top of existing data lakes, such as S3, ADLS, GCS, and HDFS.
原文Delta Lake 公式ドキュメント「Welcome to the Delta Lake documentation」 この内容の有効期限2027-02-18

途中に項目を足すと、後ろが全部ずれる

形の食い違いを止める仕組みがあります。止めるのは、こうしたずれが起きるからです。

Delta Lakeには、形の食い違いを止める仕組みがあります。公式は形の強制。取り込みの際に悪い記録が入らないよう、形の違いを自動で扱うと述べています。

止めなければ何が起きるのか。実際に読み直して整理しました。

5つの変え方を並べる

text
形を先に決めておく方式で、あとから項目を変えた場合
古い読み手が新しい記録を読めるかを整理する

変え方              古い読み手  理由
末尾に項目を足す                   読める  知らない項目を飛ばせる形なら
途中に項目を足す                  読めない  位置で読む形では、以降がすべてずれる
項目名を変える                   読めない  名前で引く形では見つからなくなる
項目を消す                     読めない  必須として読んでいれば失敗する
既定値つきで足す                   読める  古い記録にはその値が入っているものとして扱える

5つのうち読めるのは2つだけです。末尾に足す場合と、既定値をつけて足す場合です。

残りの3つは読めません。形を止める仕組みは、この3つを取り込みの時点で弾きます

ずれ方を見る

text
位置で読む形で、3番目に「通貨」を足した場合

位置  古い読み手が期待  新しい記録の中身  一致
1番目                 番号                番号     ○
2番目                 分類                分類     ○
3番目                 金額                通貨     ×
4番目                  日                金額     ×
5番目                 個数                 日     ×

1項目足しただけで、5項目のうち3項目がずれます。足した位置より後ろは全部です。

しかも読めなくなるのではなく、別の値が読めてしまいます。金額のつもりで通貨を読むので、気づきにくくなります。

余談 この計測での注意

3つの計測はいずれも手元で書いた模型で、実際のDelta Lakeを動かしたものではありません。塊4,000個・1個24MBや、同じ塊に当たる確率35%はすべて置いた値です。書き替える塊が一様に散らばると置いており、実際には偏ります。偏っていれば、同じ割合でも積み上がる量は小さくなります。ここで見せているのは、版を残す量は日数より書き替える割合で決まるという点と、やり直しの割合が上がっても確定した総数は増えるという点の2つです。

出典Delta Lake 公式ドキュメント「Welcome to the Delta Lake documentation」2026-08-18 確認
Schema enforcement: Automatically handles schema variations to prevent insertion of bad records during ingestion.
原文Delta Lake 公式ドキュメント「Welcome to the Delta Lake documentation」 この内容の有効期限2027-02-18

よくある質問

Delta Lakeとは何ですか
既存のデータレイクの上に、まとまった書き込みと大きな管理情報の扱いを足す仕組みです。
版を残すと置き場はどれだけ増えますか
書き替える割合しだいです。1日5%で1年ぶんなら19.31倍、0.2%なら1.74倍でした。
同時に書き込むとどうなりますか
やり直しが出ます。16人で76%がやり直しでしたが、確定した回数は2人の場合の2.6倍でした。
項目を変えると古い読み手はどうなりますか
位置で読む形では、足した位置より後ろがすべてずれます。5項目のうち3項目がずれました。

まとめ

  • 版はそのまま置き場になる
  • 効くのは書き替える割合
  • 同時書き込みはやり直しになる
  • それでも総量は増える

今日から始められること

  1. 1日に書き替える割合を測る
  2. 何日ぶん残すかを決める
  3. 掃除の仕組みが動いているか確かめる
  4. 同時に書いている処理を数える

実務で組んだDelta Lakeのワークフローには、値段が付きます

同じ課題を持つ会社にとって、動いている設定は「作る時間」を買えるということです。ServiceDockは自作のワークフローやテンプレートを出品できるマーケットプレイスです。手数料や出品の流れは出品者向けページにまとまっています。

出品の仕組みを見る