Comparisons
Pairs that get conflated in real conversations. Neither column wins — what decides is the requirement, and each record leads with the confusion, because the confusion is the reason the record exists at all.
OLTP vs OLAPBatch vs StreamingETL vs ELTParquet vs AvroLake vs Warehouse vs LakehouseCDC vs PollingEvent modelling vs Snapshot modellingFull refresh vs IncrementalLambda vs KappaOrder grain vs Order-line grain
OLTP vs OLAP
What people get wrong about this pair
People treat these as "small database" and "big database". They are opposite access patterns, and the storage layout that serves one well is the one that serves the other badly.
OLTP
Use it when
Many small transactions against current state, with strict correctness and low latency.
OLAP
Use it when
Large scans across history, aggregated, where a second of latency is irrelevant and completeness is not.
| Dimension | OLTP | OLAP |
|---|---|---|
| Rows touched per query | A handful, found by index | A large fraction of a table, scanned |
| Storage layout | Row-oriented — the whole record is needed | Column-oriented — two columns of eight are needed |
| What it optimises | Latency of a single operation | Throughput of a scan |
| History | Overwritten. It holds current state | Preserved. That is most of the point |
| Correctness model | Transactional, constraint-enforced | Whatever the pipeline's tests assert |
| Concurrency | Very high, short operations | Lower, long operations |