🪵 Parquet Explorer

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.

1 · Try a query

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.

2 · Inspect the Parquet file

Follow the hierarchy from the file down to individual column pages. Highlighted chunks are accessed; dimmed groups are skipped using statistics.

Column data needed by this queryRow group excluded by statisticsIllustrative page boundary
—row groups inspected
—row groups skipped
—column chunks read
—cell values examined¹

Âą 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.

3 · Query result

4 · Explore value encodings

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.

5 · What makes Parquet efficient?

đź§± Columnar layout

Each row group stores a separate chunk for every column. Queries that need only a few columns can avoid reading the rest.

📦 Pages

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.

🔎 Statistics

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

Encodings represent values compactly before compression. Dictionary encoding can replace repeated values with small IDs; run-length encoding can represent repeated runs.

🗜️ Compression

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.

🧬 Nested schemas

Parquet schemas can describe typed, nested records such as lists and maps, not just flat tables.

What this explorer simplifies

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.