メインコンテンツへスキップ
卸売業者の内部データウェアハウスをモデル化した、代表的なベンチマークです。 データは第3正規形で格納されているため、クエリ実行時には多数のJOINが必要になります。 古典的なベンチマークではあるものの、データが一様かつ独立に分布しているという非現実的な前提にもかかわらず、TPC-Hは現在でも最も広く使われているOLAPベンチマークです。 参考文献

データの生成とインポート

まず、TPC-H のリポジトリをチェックアウトし、データ生成ツールをコンパイルします。
次に、データを生成します。パラメーター -s でスケール係数を指定します。たとえば、-s 100 を指定すると、テーブル ‘lineitem’ に6億行が生成されます。
処理を高速化するには、“chunked” 生成を利用できます (複数プロセスで実行) :
スケール係数 100 での各テーブルの詳細なサイズ:
Tablesize (in rows)size (compressed in ClickHouse)
nation252 kB
region51 kB
part20.000.000895 MB
supplier1.000.00075 MB
partsupp80.000.0004.37 GB
customer15.000.0001.19 GB
orders150.000.0006.15 GB
lineitem600.000.00026.69 GB
(ClickHouse での圧縮サイズは system.tables.total_bytes から取得したもので、以下のテーブル定義に基づいています。) 次に、ClickHouse でテーブルを作成します。テーブル定義は、ClickHouse リポジトリ内の init.sql にあります。 データは次のようにインポートできます。
tpch-kitを使用して自分でテーブルを生成する代わりに、公開S3バケットからデータをインポートすることもできます。その場合は、init.sqlを使用して、事前に空のテーブルを作成しておいてください。

クエリ

22 個の TPC-H クエリは、ClickHouse リポジトリのこちらにあります。 SQL 標準互換の動作と期待される結果を得るには、settings.json の設定を適用してください。 既知の問題や特定のクエリに関する注意事項については、README を参照してください。 正確性 特に明記がない限り、クエリの結果は公式の結果と一致します。確認するには、スケール係数 = 1 の TPC-H データベース (dbgen、上記参照) を生成し、tpch-kit の期待される結果と比較してください。
最終更新日 2026年7月2日