跳转到主要内容
Star Schema Benchmark 大致基于 TPC-H 的表和查询,但与 TPC-H 不同,它采用的是星型 schema 布局。 绝大部分数据都存放在一张巨大的事实表中,周围则分布着多张较小的维度表。 这些查询会将事实表与一个或多个维度表 join,以应用过滤条件,例如 MONTH = 'JANUARY' 参考资料:

数据生成

首先,检出 star schema benchmark 仓库并编译数据生成器:
接着,生成数据。参数 -s 用于指定 scale factor。例如,使用 -s 100 时,会生成 6 亿行。

创建表

接下来在 ClickHouse 中创建表:

导入数据

可按如下方式导入数据:

反规范化表

在 ClickHouse 的许多使用场景中,多个表会合并为一张反规范化的扁平表。 此步骤为可选项——下方分别列出了查询的原始形式,以及改写为适用于反规范化表的形式。

查询

这些查询通过 ./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月2日