đź§± Columnar layout
Each row group stores a separate chunk for every column. Queries that need only a few columns can avoid reading the rest.
Apache Parquet is a columnar file format built for efficient analytics. Explore how a query travels through its file structure: row groups contain column chunks, chunks contain pages, and metadata can help skip data that cannot match your filter.
Try SELECT *, or select columns such as SELECT product, amount FROM sales. Filters support a single equality, for example WHERE region = 'West' or WHERE amount = 42. Dataset columns: id, region, product, amount.
Changing row-group or page size rebuilds the illustration. Actual Parquet files store pages in column chunks; page size here is a teaching simplification.
Âą Illustrative count of values in the selected chunks, not physical disk reads or bytes. Real readers may skip pages too, use indexes, and read compressed pages in batches.
Before compression, Parquet encodes each column's values. Choose a column or type your own values, and compare how different encodings represent them and how many bytes they might need.
Sizes are simplified, uncompressed estimates (4-byte integers, one-byte run and length headers, bit-packed indexes) to show relative trends. Real writers add headers and choose encodings per page, and compression is applied afterward.
Each row group stores a separate chunk for every column. Queries that need only a few columns can avoid reading the rest.
Column chunks are divided into pages, the encoding and compression units inside the file. This model shows page boundaries, but does not simulate byte-level reads.
Row-group metadata can include values such as each column’s minimum and maximum. Here, an equality filter skips a group when its range cannot contain the searched value.
Encodings represent values compactly before compression. Dictionary encoding can replace repeated values with small IDs; run-length encoding can represent repeated runs.
Parquet supports codecs applied to data pages. The best choice depends on the workload: faster codecs may favor speed, while others may favor smaller files.
Parquet schemas can describe typed, nested records such as lists and maps, not just flat tables.
Parquet is a file format, not a database or query engine. The dataset and file layout here are simulated in the browser; no Parquet file is generated. Row-group statistics only rule out groups whose minimum/maximum range cannot contain an equality value. A real engine may additionally use page indexes, dictionaries, Bloom filters, indexes, and other metadata. The example page boundaries group whole rows for clarity; actual pages belong to individual column chunks. Encoding and compression reduce bytes, but are not represented in the cell-value count.