Amostra de dados: 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.”

Neste tópico:

Banco de dados e esquemas

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).

Entidades, relacionamentos e características do banco de dados

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)

Definições de consulta

Cada consulta TPC-H faz uma pergunta comercial e inclui a consulta correspondente para responder à pergunta. Algumas das consultas TPC-H estão incluídas nos tutoriais de início rápido do Snowflake.

Esta seção descreve uma das consultas. Mais informações sobre TPC-H e todas as consultas envolvidas podem ser encontradas no documento oficial TPC Benchmark H Standard Specification.

Q1: Pricing Summary Report Query

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

Questão comercial

A consulta fornece um relatório resumido de preços para todos os itens de linha enviados a partir de uma determinada data. A data está dentro de 60-120 dias da maior data de envio contida no banco de dados.

Definição da consulta funcional

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