Delta lake

1m read · 232 words

History table

Table level commit log of a delta table. One row per version (transaction).

Every write (insert, update, delete, merge, optimize, schema change, and so on) creates a new numbered version.

Delta records each one as a JSON commit file in the table’s _delta_log/ folder, and DESCRIBE HISTORY reads that log and shows it as a table.

-- SQL
DESCRIBE HISTORY sales;                    -- all versions, newest first
DESCRIBE HISTORY sales LIMIT 5;            -- last 5 commits
DESCRIBE HISTORY delta.`/mnt/data/sales`;  -- by path
Column What it tells you
version Commit number, starting at 0 and increasing by one per commit
timestamp When the commit happened
userId / userName Who made the change
operation What happened: WRITE, MERGE, UPDATE, DELETE, OPTIMIZE, RESTORE, STREAMING UPDATE, ADD COLUMNS, …
operationParameters Details of that operation, such as write mode, the predicate of a delete or merge, or partitionBy
operationMetrics Numbers about the change: numOutputRows, numFiles, numTargetRowsUpdated, numTargetRowsDeleted, and so on
readVersion The version the transaction read before writing
isolationLevel Serializable or WriteSerializable
isBlindAppend True if the write only appended without reading existing data
job, notebook, clusterId Where the write came from (on Databricks)
userMetadata A custom note you attached to the commit
engineInfo The Spark/Delta version that wrote the commit
Colophon 232 words · 1m read
Written as a markdown note in Obsidian. Built into this page by a Python script on 2026-10-24.

Pages