Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

TPC-DS (2012)

Assim como o Star Schema Benchmark (SSB), o TPC-DS é baseado em TPC-H, mas seguiu o caminho oposto, ou seja, aumentou o número de junções necessárias ao armazenar os dados em um esquema snowflake complexo (24 tabelas em vez de 8). A distribuição dos dados é enviesada (por exemplo, distribuições normal e de Poisson). Ele inclui 99 consultas de relatório e ad hoc com substituições aleatórias.

Referências

Geração e Importação de Dados

Primeiro, faça o checkout do repositório TPC-DS e compile o gerador de dados:

git clone https://github.com/gregrahn/tpcds-kit.git
cd tpcds-kit/tools
make

Em seguida, gere os dados. O parâmetro -scale define o fator de escala.

./dsdgen -scale 1

Agora, crie as tabelas no ClickHouse. As definições das tabelas 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 call_center FORMAT CSV" < call_center.dat
clickhouse-client --format_csv_delimiter '|' --query "INSERT INTO catalog_page FORMAT CSV" < catalog_page.dat
clickhouse-client --format_csv_delimiter '|' --query "INSERT INTO catalog_returns FORMAT CSV" < catalog_returns.dat
clickhouse-client --format_csv_delimiter '|' --query "INSERT INTO catalog_sales FORMAT CSV" < catalog_sales.dat
clickhouse-client --format_csv_delimiter '|' --query "INSERT INTO customer FORMAT CSV" < customer.dat
clickhouse-client --format_csv_delimiter '|' --query "INSERT INTO customer_address FORMAT CSV" < customer_address.dat
clickhouse-client --format_csv_delimiter '|' --query "INSERT INTO customer_demographics FORMAT CSV" < customer_demographics.dat
clickhouse-client --format_csv_delimiter '|' --query "INSERT INTO date_dim FORMAT CSV" < date_dim.dat
clickhouse-client --format_csv_delimiter '|' --query "INSERT INTO household_demographics FORMAT CSV" < household_demographics.dat
clickhouse-client --format_csv_delimiter '|' --query "INSERT INTO income_band FORMAT CSV" < income_band.dat
clickhouse-client --format_csv_delimiter '|' --query "INSERT INTO inventory FORMAT CSV" < inventory.dat
clickhouse-client --format_csv_delimiter '|' --query "INSERT INTO item FORMAT CSV" < item.dat
clickhouse-client --format_csv_delimiter '|' --query "INSERT INTO promotion FORMAT CSV" < promotion.dat
clickhouse-client --format_csv_delimiter '|' --query "INSERT INTO reason FORMAT CSV" < reason.dat
clickhouse-client --format_csv_delimiter '|' --query "INSERT INTO ship_mode FORMAT CSV" < ship_mode.dat
clickhouse-client --format_csv_delimiter '|' --query "INSERT INTO store FORMAT CSV" < store.dat
clickhouse-client --format_csv_delimiter '|' --query "INSERT INTO store_returns FORMAT CSV" < store_returns.dat
clickhouse-client --format_csv_delimiter '|' --query "INSERT INTO store_sales FORMAT CSV" < store_sales.dat
clickhouse-client --format_csv_delimiter '|' --query "INSERT INTO time_dim FORMAT CSV" < time_dim.dat
clickhouse-client --format_csv_delimiter '|' --query "INSERT INTO warehouse FORMAT CSV" < warehouse.dat
clickhouse-client --format_csv_delimiter '|' --query "INSERT INTO web_page FORMAT CSV" < web_page.dat
clickhouse-client --format_csv_delimiter '|' --query "INSERT INTO web_returns FORMAT CSV" < web_returns.dat
clickhouse-client --format_csv_delimiter '|' --query "INSERT INTO web_sales FORMAT CSV" < web_sales.dat
clickhouse-client --format_csv_delimiter '|' --query "INSERT INTO web_site FORMAT CSV" < web_site.dat

Em seguida, execute as consultas geradas.

Consultas

As 99 consultas TPC-DS 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 de settings.json. Consulte o README para ver os problemas conhecidos e as observações sobre consultas específicas.

Corretude

Os resultados das consultas correspondem aos resultados oficiais, salvo indicação em contrário. Pode haver pequenas diferenças de precisão, permitidas pela especificação TPC-DS.

Benchmark de desempenho

O ClickHouse acompanha o desempenho das consultas TPC-DS em todas as versões lançadas. Você pode explorar os tempos de execução das 99 consultas TPC-DS (fator de escala 32) na página de benchmark de versões do ClickHouse para ver como o desempenho evoluiu ao longo do tempo.

Navigation