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
Parquet vs Avro
What people get wrong about this pair
They are compared as though one is better. They are different orientations: columnar for scanning a few fields of many rows, row-oriented for reading whole records — and a data platform normally uses both, at different hops.
Parquet
Use it when
Analytical scans that project a few columns and filter on one.
Avro
Use it when
Event serialization and record-at-a-time interchange, where whole records are read and schemas evolve.
| Dimension | Parquet | Avro |
|---|---|---|
| Orientation | Columnar | Row-oriented |
| Reading two of eight columns | Reads two | Reads all eight, then discards six |
| Writing one record | Poor — it wants batches | Natural |
| Statistics for skipping | Per column chunk, in the footer | None |
| Schema evolution | Supported, and read by the reader from the footer | Its central design concern |
| Typical position | The lake and warehouse layers | The event stream and interchange layers |