Sample data: TPC-H

Como descrito na especificação TPC Benchmark™ H (TPC-H):

“O TPC-H é um benchmark de suporte à decisão. Consiste em um conjunto de consultas ad hoc orientadas aos negócios e modificações de dados simultâneas. As consultas e os dados que povoam o banco de dados foram escolhidos para ter ampla relevância em toda a indústria. Este benchmark ilustra sistemas de suporte à decisão que examinam grandes volumes de dados, executam consultas com um alto grau de complexidade e dão respostas a questões críticas de negócios.”

Database and schemas

O TPC-H vem com vários tamanhos de conjuntos de dados para testar diferentes fatores de escalonamento. Para fins de demonstração, compartilhamos quatro versões dos dados TPC-H. Os dados são fornecidos nos seguintes esquemas no banco de dados compartilhado SNOWFLAKE_SAMPLE_DATA:

  • TPCH_SF1: Consiste no tamanho da linha de base (vários milhões de elementos).

  • TPCH_SF10: Consiste no tamanho da linha de base x 10.

  • TPCH_SF100: Consiste no tamanho da linha de base x 100 (várias centenas de milhões de elementos).

  • TPCH_SF1000: Consiste no tamanho da linha de base x 1000 (vários bilhões de elementos).

Database entities, relationships, and characteristics

Os componentes do TPC-H consistem em oito tabelas separadas e individuais (as tabelas base). As relações entre as colunas nestas tabelas estão ilustradas no diagrama ER a seguir:

Esquema para dados de referência TPC-H

(fonte: TPC Benchmark H Standard Specification)

Query definitions

Each TPC-H query asks a business question and includes the corresponding query to answer the question. Some of the TPC-H queries are included in Snowflake’s Get Started tutorials.

This section describes one of the queries. For more information about TPC-H and all the queries that are involved, see the official TPC Benchmark H Standard Specification.

Q1: Pricing summary report query

Esta consulta reporta a quantidade de negócios que foram faturados, enviados e devolvidos.

Business question

The Pricing Summary Report Query provides a summary pricing report for all line items that were shipped as of a given date. The date is within 60-120 days of the greatest ship date contained in the database.

Functional query definition

A consulta lista os totais de preço estendido, preço estendido com desconto, preço estendido com desconto mais imposto, quantidade média, preço estendido médio e desconto médio. Estes agregados são agrupados por RETURNFLAG e LINESTATUS e listados em ordem crescente de RETURNFLAG e LINESTATUS. Está incluída uma contagem do número de itens de linha em cada grupo:

use schema snowflake_sample_data.tpch_sf1;   -- or snowflake_sample_data.{tpch_sf10 | tpch_sf100 | tpch_sf1000}

select
       l_returnflag,
       l_linestatus,
       sum(l_quantity) as sum_qty,
       sum(l_extendedprice) as sum_base_price,
       sum(l_extendedprice * (1-l_discount)) as sum_disc_price,
       sum(l_extendedprice * (1-l_discount) * (1+l_tax)) as sum_charge,
       avg(l_quantity) as avg_qty,
       avg(l_extendedprice) as avg_price,
       avg(l_discount) as avg_disc,
       count(*) as count_order
 from
       lineitem
 where
       l_shipdate <= dateadd(day, -90, to_date('1998-12-01'))
 group by
       l_returnflag,
       l_linestatus
 order by
       l_returnflag,
       l_linestatus;
Copy