メインコンテンツへスキップ
Star Schema Benchmark は、おおむね TPC-H のテーブルとクエリをベースにしていますが、TPC-H とは異なり、スター スキーマ レイアウトを採用しています。 データの大部分は巨大なファクト テーブルに格納され、その周囲を複数の小さなディメンション テーブルが取り囲みます。 クエリでは、ファクト テーブルを 1 つ以上のディメンション テーブルと結合し、たとえば MONTH = 'JANUARY' のようなフィルター条件を適用します。 参考文献:

データ生成

まず、Star Schema Benchmark のリポジトリをチェックアウトし、データ生成ツールをビルドします。
次に、データを生成します。-s パラメータでスケール係数を指定します。たとえば、-s 100 を指定すると、6億行が生成されます。

テーブルを作成

次に、ClickHouse でテーブルを作成します。

データのインポート

データは以下のようにインポートできます。

非正規化テーブル

ClickHouse では、多くのユースケースで複数のテーブルを 1 つの非正規化フラットテーブルにまとめます。 この手順は任意です。以下では、クエリを元の形式と、非正規化テーブル向けに書き換えた形式の両方で示します。

クエリ

クエリは ./qgen -s <scaling_factor> で生成されます。s = 100 のクエリ例:

Q1.1

非正規化テーブル:

Q1.2

非正規化テーブル:

Q1.3

非正規化テーブル:

Q2.1

非正規化テーブル:

Q2.2

非正規化テーブル:

Q2.3

非正規化テーブル:

Q3.1

非正規化テーブル:

Q3.2

非正規化テーブル:

Q3.3

非正規化テーブル:

Q3.4

非正規化テーブル:

Q4.1

非正規化テーブル:

Q4.2

非正規化テーブル:

Q4.3

非正規化テーブル:
最終更新日 2026年7月1日