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 Lake入門:初心者でもできるテーブル作成&更新

Last updated at Posted at 2025-05-08

本記事では、Databricksを初めて使う方に向けて、Delta Lakeを使ったテーブルの作成・更新・タイムトラベルを体験できるよう、わかりやすくステップバイステップで解説します。


📘 Delta Lakeとは?

Delta Lakeは、通常のCSVやParquetファイルのような"保存するだけの形式"とは違い、上書き・更新・削除・巻き戻しなどの操作ができる「進化した保存形式」です。

簡単に言うと:

💡 Excelで "保存してからやり直す" 機能があると思ってください!


🚀 この記事でできること

  • Deltaテーブルの作成(CSVから)
  • データの更新(UPDATE)
  • タイムトラベルで過去の状態に戻る

🛠 Databricksの準備

  • Databricks Community Editionに登録(無料)
  • ノートブックを新規作成
  • クラスターを起動(Pythonが選べる設定でOK)

🧪 ステップ1:CSVデータを読み込んでDeltaテーブルを作る

まずは簡単なCSVファイル(例:商品一覧)を読み込んで、Deltaテーブルとして保存します。

# サンプルデータ読み込み
csv_path = "/databricks-datasets/retail-org/products/products.csv"
df = spark.read.csv(csv_path, header=True, inferSchema=True)
df.display()

# Delta形式で保存
df.write.format("delta").mode("overwrite").saveAsTable("products_delta")

🛠 ステップ2:データを更新してみよう

たとえば、すべての"price"列を10%アップさせてみます。

-- SQLモードで実行
UPDATE products_delta SET price = price * 1.1;

確認:

SELECT * FROM products_delta;

🕓 ステップ3:タイムトラベルしてみよう

変更前の状態(Version 0)を見てみましょう:

SELECT * FROM products_delta VERSION AS OF 0;

または、直近2分前のデータを指定して見る:

SELECT * FROM products_delta TIMESTAMP AS OF current_timestamp() - INTERVAL 2 MINUTES;

💡 よくある質問

質問 回答
保存しないとタイムトラベルできない? Delta形式に保存すればOK!自動で履歴が残ります
CSVやParquetとの違いは? Deltaは更新・削除・履歴参照ができます
Databricks以外でも使える? Spark OSSやDremioなど一部ツールでも使えます

🧼 おまけ:テーブルを整理しよう

ファイルを最適化したいとき:

OPTIMIZE products_delta;

古いバージョンを削除したいとき(7日保持):

VACUUM products_delta RETAIN 168 HOURS;

✅ まとめ

Delta Lakeを使えば、普通のデータ保存に「安心・便利・やり直し」を追加できます。

今回覚えておきたいこと:

  • saveAsTable() → Deltaで保存
  • UPDATE → 値を上書きできる
  • VERSION AS OF → タイムトラベル

🔗 参考リンク

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?