Skip to content

TPC-H benchmark

The TPC-H benchmark generates TPC-H with tpchgen-cli, registers all 8 tables as Delta in place via a zero-copy convert (delta-rs convert_to_deltalake, which writes only the _delta_log, never rewriting the parquet), then runs the 22 TPC-H queries through conn.sql over delta_scan โ€” timing each. A fast SF=1 smoke runs on every push as a guard (cores.yml); the heavy scorecard below is the SF=100 run from local_stress_tests.yml (manual dispatch on the big-disk runner), committed to main.

It is a coverage + cost check, not a speed contest: the ingestion time is the (near-free) convert cost, and the 22 query times are DuckDB reading Delta with no second engine to compare against โ€” so read them as "the whole schema loads and all 22 queries run at this scale", not a "duckrun is fast" claim. (We measured rewriting sorted with fine row groups and a native DuckDB file too; zero-rewrite convert was cheapest to load and fastest to query, so it's the arm kept.) Every run also appends one line to the full run history.

๐Ÿค TPC-H benchmark โ€” duckrun on Delta Lake

What this checks: duckrun registers the full TPC-H schema (8 tables) as Delta in place via conn.convert_to_delta (zero-copy โ€” writes only the _delta_log), then runs the 22 TPC-H queries through conn.sql over delta_scan. The ingestion time is the (near-free) convert; the query times are DuckDB reading Delta โ€” there is no second engine to race here, so read them as "the whole schema loads and all 22 queries run at this scale", not a duckrun is fast claim.

Ingest 8 tables in 682.4s · run 22 queries in 475.8s · SF 100 · 866.0M rows · 4 cores

Setup

Engine duckrun · DuckDB 1.5.5 · delta_rs 1.5.0
Scale factor 100
Runner GitHub-hosted · 4 cores

Ingestion โ€” Parquet โ†’ Delta (zero-copy convert_to_delta)

Table Rows Convert (s)
nation 25 1.36
region 5 0.01
customer 15,000,000 15.73
supplier 1,000,000 1.67
lineitem 600,037,902 481.43
orders 150,000,000 123.87
partsupp 80,000,000 43.54
part 20,000,000 14.83
Total 866,037,932 682.44

Queries โ€” 22 TPC-H over delta_scan

Query Duration (s)
Q01 21.882
Q02 3.860
Q03 12.705
Q04 7.794
Q05 21.326
Q06 4.446
Q07 15.013
Q08 30.560
Q09 47.686
Q10 18.202
Q11 2.239
Q12 10.322
Q13 18.268
Q14 17.751
Q15 8.362
Q16 3.405
Q17 93.534
Q18 41.148
Q19 13.454
Q20 18.006
Q21 58.874
Q22 7.004
Total 475.84