Um benchmark popular que modela o data warehouse interno de um fornecedor atacadista. Os dados são armazenados em uma representação de terceira forma normal, o que exige muitas junções durante a execução das consultas. Apesar da sua idade e da suposição irrealista de que os dados são distribuídos de forma uniforme e independente, o TPC-H continua sendo o benchmark OLAP mais popular até hoje.
Em seguida, gere os dados. O parâmetro -s especifica o fator de escala. Por exemplo, com -s 100, são geradas 600 milhões de linhas na tabela 'lineitem'.
./dbgen -s 100
Para acelerar, você pode usar geração em "fragmentos" (em vários processos):
for i in $(seq 1 8); do ./dbgen -s 100 -C 8 -S $i &donewait
Tamanhos detalhados das tabelas com fator de escala 100:
Tabela
tamanho (em linhas)
tamanho (comprimido no ClickHouse)
nation
25
2 kB
region
5
1 kB
part
20.000.000
895 MB
supplier
1.000.000
75 MB
partsupp
80.000.000
4.37 GB
customer
15.000.000
1.19 GB
orders
150.000.000
6.15 GB
lineitem
600.000.000
26.69 GB
(Os tamanhos comprimidos no ClickHouse são obtidos de system.tables.total_bytes e têm como base as definições de tabela abaixo.)
Agora, crie as tabelas no ClickHouse. As definições de tabela estão disponíveis em init.sql no repositório do ClickHouse.
Os dados podem ser importados da seguinte forma:
clickhouse-client --format_csv_delimiter '|' --query "INSERT INTO nation FORMAT CSV" < nation.tblclickhouse-client --format_csv_delimiter '|' --query "INSERT INTO region FORMAT CSV" < region.tblclickhouse-client --format_csv_delimiter '|' --query "INSERT INTO part FORMAT CSV" < part.tblclickhouse-client --format_csv_delimiter '|' --query "INSERT INTO supplier FORMAT CSV" < supplier.tblclickhouse-client --format_csv_delimiter '|' --query "INSERT INTO partsupp FORMAT CSV" < partsupp.tblclickhouse-client --format_csv_delimiter '|' --query "INSERT INTO customer FORMAT CSV" < customer.tblclickhouse-client --format_csv_delimiter '|' --query "INSERT INTO orders FORMAT CSV" < orders.tblclickhouse-client --format_csv_delimiter '|' --query "INSERT INTO lineitem FORMAT CSV" < lineitem.tbl
Consultas
As 22 consultas do TPC-H podem ser encontradas aqui no repositório do ClickHouse.
Para obter um comportamento compatível com o padrão SQL e os resultados esperados, aplique as configurações em settings.json. Consulte o README para ver problemas conhecidos e observações sobre consultas específicas.
Corretude
Os resultados das consultas correspondem aos resultados oficiais, salvo indicação em contrário. Para verificar, gere um banco de dados TPC-H com fator de escala = 1 (dbgen, veja acima) e compare com os resultados esperados no tpch-kit.
Benchmark de desempenho
O ClickHouse monitora o desempenho das consultas TPC-H em todas as versões lançadas. Você pode explorar os tempos de execução das 22 consultas TPC-H (fator de escala 40) na página benchmark de versões do ClickHouse para ver como o desempenho evoluiu ao longo do tempo.