Skip to lesson
Exit
Lakehouse & Ingestion at Scale1 / 3

1 min lesson

Why lakehouse over a warehouse here

Explain your answer to "Why does Cursor prefer a lakehouse over a classic warehouse for this role's data?" Add one concrete detail from the lesson.

Step 1 of 3

Why lakehouse over a warehouse hereone copy, three very different consumers

Cursor's data serves BI dashboards, product analytics and ML/agent training from the same tables. A warehouse-only stack would force you to copy data out to a separate object store every time the ML side needed raw Parquet, doubling storage and creating two sources of truth that drift. The lakehouse keeps a single governed copy that Spark, SQL and training jobs all read directly.

Learn more

Advanced table

Reference table

Storage cost
Raw data lake
Lowest (object store)
Classic warehouse
Highest (proprietary)
Lakehouse (Delta + UC)
Low (object store)
ACID / schema
Raw data lake
None
Classic warehouse
Strong
Lakehouse (Delta + UC)
Strong (via Delta log)
Open formats
Raw data lake
Yes (Parquet)
Classic warehouse
No (locked-in)
Lakehouse (Delta + UC)
Yes (Parquet under Delta)
Serves ML on raw files
Raw data lake
Yes, but ungoverned
Classic warehouse
Awkward, needs export
Lakehouse (Delta + UC)
Yes, governed in place
Governance / lineage
Raw data lake
Bolt-on, weak
Classic warehouse
Strong but engine-bound
Lakehouse (Delta + UC)
Unity Catalog, cross-engine

The lakehouse is the only column that serves BI and ML from one governed copy at object-store cost.

Interview move

When asked "why a lakehouse," don't list features - name the consumer conflict it resolves. "We serve BI, product analytics and agent-training data from the same telemetry. A warehouse would make me export raw files for the ML side and run two sources of truth; Delta plus Unity Catalog gives one governed copy at object-store cost." That ties the choice to Cursor's actual workload, which is the senior signal.

Watch out

Don't call Delta "just Parquet." The Parquet files are inert without the transaction log - drop the _delta_log and you've lost ACID, time travel and the file set itself. Conflating the two reads as surface knowledge; the log is what makes it a table.