liveBook · Manning

Row group

As explained in DuckDB in Action

A row group is a horizontal partition of rows in a Parquet file or DuckDB storage format that is stored and processed as a unit.

A row group is a horizontal partition of rows stored and processed as a unit in Parquet or DuckDB storage. Each partition shares the table schema and contains information for every column. section 5.4 section 10.2.2

Row-group sizing balances compression, metadata overhead, and parallel reads. Smaller groups compress less effectively and require more headers; oversized groups limit DuckDB’s ability to parallelize reading. section 5.4

Choose a row-group size during conversion

DuckDB can write a joined ATP rankings dataset to Parquet with an explicit size: COPY (...) TO 'atp_rankings.parquet' (FORMAT PARQUET, CODEC 'SNAPPY', ROW_GROUP_SIZE 100000). The resulting file is 36M, while metadata reports 20,726 rows in its first row group when the source is written with a different configuration. section 5.4 section 5.5

Parquet metadata records statistics per row group and column. A query filtering ranking_date after 1980 can skip a group whose maximum date is 1979, avoiding unnecessary value reads. section 5.5

Figure 10.4 Morsel runtime
figure

The morsel-runtime figure shows how row-group data feeds chunked, parallel execution pipelines. section 10.2.2

How DuckDB in Action covers it

How deep it goes
Explains partitioning, sizing trade-offs, metadata statistics, and runtime processing, but stops short of storage-page internals.
Examples
Demonstrates ATP rankings conversion, a 100,000-row Parquet setting, metadata inspection, and date-based row-group skipping.
What you can do after
Operate DuckDB to configure Parquet row-group sizes and inspect row-group metadata for query-performance decisions.
How it connects
Connects horizontal partitioning with Parquet, columnar storage, compression, vectorized execution, and query optimization.

Also explained in

Compare how 3 books explain row group →

Related concepts

This explainer was generated by Manning's knowledge graph from the text of DuckDB in Action. The section links point to the parts of the book it draws on.