Skip to content

Add zpq (Parquet, single and partitioned) - #3085

Draft
alexey-milovidov wants to merge 2 commits into
mainfrom
zpq
Draft

alexey-milovidov wants to merge 2 commits into
mainfrom
zpq

Conversation

@alexey-milovidov

Copy link
Copy Markdown
Member

Adds zpq, a Unix CLI tool written in Zig that queries Parquet files with SQL, as zpq/ (single hits.parquet) and zpq-partitioned/ (hits_*.parquet).

  • install downloads the static v0.5.1 release binary for x86_64 (AVX2) or aarch64.
  • Each query runs a fresh zpq query --cache --query ... process, timed by wall clock, so process startup and footer reads are included. Without --cache, zpq reads cold data with O_DIRECT, and the hot runs would go to disk again.
  • The queries are the DuckDB (Parquet) ones with that entry's create.sql view and macro written in (make_date(EventDate), toDateTime(t) as epoch_ms(t * 1000)), the same rewrite zpq's own benchmark uses. zpq has no views.
  • The concurrent-QPS test is off, like for the other per-process engines (concurrent_qps measures swap-thrashing, not throughput, for single-process engines (introduced in #860) #946).

Checked locally on aarch64 against the full hits.parquet: all 43 queries succeed and the results match the known answers.

🤖 Generated with Claude Code

zpq is a Unix CLI tool that queries Parquet files with SQL:
https://github.com/chicagobuss/zpq

Each query runs a fresh `zpq` process over the Parquet file(s), timed by
wall clock. The queries are the DuckDB (Parquet) ones with the view and
macro of its `create.sql` written in (`make_date(EventDate)`,
`epoch_ms(t * 1000)`), which is how zpq's own benchmark runs ClickBench.
`--cache` makes the cold run fill the page cache for the hot runs.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@alexey-milovidov
alexey-milovidov deployed to benchmark-approval November 6, 2026 01:30 — with GitHub Actions Active
@github-actions

github-actions Bot commented Nov 6, 2026

Copy link
Copy Markdown
Contributor

Results for zpq are ready for: c6a.4xlarge.
Results for zpq-partitioned are ready for: c6a.4xlarge.
The result files are committed as 267b335.
Preview of the benchmark page with these results

Logs:

This branch was successfully deployed

1 active (outdated) deployment
benchmark-approval — 06459a2d Deployed Nov 6, 2026 by alexey-milovidov via launch #1061
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant