# Delta Lake

> Delta Lake is an open table format that adds a transaction log to Parquet files, giving tables transactions, merges and time travel.

Delta Lake is an open table format that adds a transaction log to Parquet files, giving tables transactions, updates, deletes, merges, schema enforcement and time travel. It is the default table format on Databricks and in Microsoft Fabric's [OneLake](https://emolysis.com/glossary/onelake). Its Change Data Feed can expose the row changes made to a table.

For example, when a job updates ten rows in a Delta table, it does not edit the Parquet files in place. It writes new files with the changed rows, then adds a commit to the table's transaction log, the `_delta_log` folder, that marks the old files as removed and the new ones as added. Readers that started before the commit keep seeing the old version, and readers after it see the new one. Because earlier commits are kept for a while, a query can read the table as it was at an earlier version or time, which is how time travel works.

The log also enforces the table's schema, so a write with a wrong column type fails instead of corrupting the table, and it lets several writers work on one table with conflict checks. Old files stay in storage until a cleanup command such as `VACUUM` removes them, which bounds how far back time travel can go. Many small files from frequent writes slow reads down, which compaction and [clustering](https://emolysis.com/glossary/clustering) address.

Delta Lake is an open-source project, and engines beyond Databricks can read it, including [DuckDB](https://emolysis.com/glossary/duckdb) and Microsoft Fabric. See also [lakehouse](https://emolysis.com/glossary/lakehouse), [merge](https://emolysis.com/glossary/merge-upsert) and [schema evolution](https://emolysis.com/glossary/schema-evolution).

In practice, teams on Delta run compaction on a schedule, keep table history for a fixed number of days, and turn on Change Data Feed for tables whose changes other pipelines need. Those settings are part of a table's design, like its columns, and belong in the code that creates it. See also [change data capture](https://emolysis.com/glossary/change-data-capture) and [Unity Catalog](https://emolysis.com/glossary/unity-catalog).

Delta is the table format in Emolysis's Databricks and Fabric [platform profiles](https://emolysis.com/docs/platform-profiles), and [DuckDB](https://emolysis.com/glossary/duckdb) can read Delta tables for local samples. Compare [Apache Iceberg](https://emolysis.com/glossary/iceberg). A merge is the usual way to apply changes to a Delta table, which is why `MERGE INTO` appears in the Databricks profile.

---

Page: https://emolysis.com/glossary/delta-lake. Emolysis is a product of Bandpey GmbH, Munich, Germany. It is in private development, and nothing is released yet.
