Comparison
Columnar formatvsRow-oriented format
Columnar format
the query reads three columns out of two hundred and only touches the bytes for those three.
A file layout that stores all the values of one column together rather than storing rows contiguously. Two things follow, and they are why analytics runs on it: you can skip columns entirely, and values of the same type sitting next to each other compress far better. The cost is on the other side — reading or writing a single whole row touches every column's region, which is why these formats are wrong for transactional workloads.
Full entry →Row-oriented format
the whole record is written together, so appending one event is cheap and reading one field of a billion records is not.
A file layout keeping all of a record's fields adjacent. It is the right shape when records arrive one at a time and are consumed whole — message payloads, change events, ingestion buffers — because a write is an append rather than a rewrite of every column region. Pipelines commonly use a row format at the edge and convert to columnar once data is at rest, and that conversion is often the single largest job in the pipeline.
Full entry →