- TPC-H
- New TPC Benchmarks for Decision Support and Web Commerce (Poess et. al., 2000)
- TPC-H Analyzed: Hidden Messages and Lessons Learned from an Influential Benchmark (Boncz et. al.), 2013
- Quantifying TPC-H Choke Points and Their Optimizations (Dresseler et. al.), 2020
Data Generation and Import
First, checkout the TPC-H repository and compile the data generator:-s specifies the scale factor. For example, with -s 100, 600 million rows are generated for table ‘lineitem’.
(Compressed sizes in ClickHouse are taken from
system.tables.total_bytes and based on below table definitions.)
Now create tables in ClickHouse. The table definitions are available in init.sql in the ClickHouse repository.
The data can be imported as follows:
Instead of using tpch-kit and generating the tables by yourself, you can alternatively import the data from a public S3 bucket. Make sure
to create empty tables first using
init.sql.Queries
The 22 TPC-H queries can be found here in the ClickHouse repository. To get SQL standard compatible behavior and expected results, apply the settings fromsettings.json.
See the README for known issues and notes on specific queries.
Correctness
The result of the queries agrees with the official results unless mentioned otherwise. To verify, generate a TPC-H database with scale
factor = 1 (dbgen, see above) and compare with the expected results in tpch-kit.