How Delta Lake Defines the Raw Data Contract
July 2026
For Delta Lake, raw data is the content of one Delta table at a specific table URI, with optional version pinning and filtering if you need a narrower read contract.
Short Answer
The raw data contract for Delta Lake is the content of one Delta table identified by table_uri, not a vague promise about every file under a lake folder. Skippr reads the Delta transaction log plus the backing data files, so the raw contract is the table state that the Delta log exposes at read time.
That becomes very concrete once you use the optional fields. A table_uri such as s3://analytics-lake/orders says which Delta table defines the contract. If you set version: 5, the contract is the exact table state at version 5. If you add a filter for open orders, the raw contract is that filtered slice and not the full table.
Why Teams Struggle with This
Teams often call a whole lake path raw data even when only one Delta table inside it is stable enough to use. Delta Lake works best as a raw-data contract when the table itself is the boundary and the transaction log, version, and filter choices stay deliberate.
- A correct
table_urimatters because a folder that is not a Delta table is not a valid raw contract. - The runner needs access to both the Delta log and the underlying data files, not just to the bucket or container name.
- Choosing a specific
versionmakes the contract repeatable, but it also means you must decide when that version should change. - An optional
filteris part of the data promise, so downstream teams should know whether they are seeing the whole table or a curated subset.
How Skippr Handles It
Skippr keeps Delta Lake direct: table_uri, storage_options, optional version, and optional filter. That is enough to make the raw layer inspectable without burying the real contract behind generic object-store language.
This also helps when teams need controlled backfills. Instead of arguing over which Parquet files happened to exist on a date, you can point to the table URI and the exact Delta version Skippr read.
- Reads one Delta table from
s3://, ADLS, or a local path. - Supports backend-specific
storage_optionsfor the object store behind the table. - Can pin a specific Delta
versionfor repeatable raw reads. - Can narrow the row set with an explicit
filterwhen that slice is the real contract.
What the First Useful Version Looks Like
The first useful version is one Delta table URI and one read against a known version. That proves the table really is the raw boundary before you add more paths or broader storage access.
If the source team wants a stable raw layer, keep the table URI and versioning policy visible in documentation. Delta Lake is strong here because the raw contract can be tied to an actual transaction log instead of to filename conventions.
