Parquet is an open source, column-oriented data file format designed for efficient storage and retrieval
Apache Parquet documentation: https://parquet.apache.org/docs/overview/
Parquet stores data in a columnar format

Row-oriented storage writes data person by person, so it reads like: 1, Al, 34, 2, Bo, 29, 3, Cy, 41
Columnar storage writes data field by field, so it reads like: 1, 2, 3, Al, Bo, Cy, 34, 29, 41
If the question is “tell me everything about Bo,” then row-oriented storage wins
But if the question is “what is the average age of everyone?” then columnar storage wins by a lot
This is why Parquet is ideal for analytical workflows

This diagram shows that Parquet files aren’t purely columnar. Parquet uses a hybrid layout, and each layer of nesting exists to solve a specific problem
Row groups are the outermost layer. If your table has 10 million rows, instead of writing one giant “ages notebook,” Parquet cuts the table horizontally: rows 1 to 1 million become row group 1, etc.
This helps with parallelism
A column chunk answers “where does column X live for this batch of rows?”
A page answers the unit of work: the granularity at which encoding, compression, decompression, and fine-grained skipping happen. Chunks say where data lives, while pages define the smallest piece you can independently decode or skip
The footer answers the unit of knowledge: everything you need to know about the file without reading the data, including what the columns are and their types (schema), where every chunk sits (metadata), and what value ranges they contain (statistics)