Sample data: TPC-H

Wie in der Spezifikation TPC Benchmark™ H (TPC-H) beschrieben:

„TPC-H ist eine Benchmark zur Entscheidungsunterstützung. Sie besteht aus einer Reihe von geschäftsorientierten Ad-hoc-Abfragen und gleichzeitigen Datenänderungen. Die Abfragen und die Daten, die in der Datenbank enthalten sind, wurden aufgrund ihrer breiten branchenweiten Relevanz ausgewählt. Diese Benchmark veranschaulicht Entscheidungsunterstützungssysteme, die große Datenmengen untersuchen, Abfragen mit hoher Komplexität ausführen und Antworten auf kritische Geschäftsfragen geben.“

Database and schemas

TPC-H steht mit verschiedenen Dataset-Größen zur Verfügung, um verschiedene Skalierungsfaktoren testen zu können. Zu Demonstrationszwecken haben wir vier Versionen der TPC-H-Daten freigegeben. Die Daten werden in den folgenden Schemas der freigegebenen SNOWFLAKE_SAMPLE_DATA-Datenbank bereitgestellt:

  • TPCH_SF1: Besteht aus der Basiszeilenmenge (mehrere Millionen Elemente).

  • TPCH_SF10: Besteht aus der Basiszeilenmenge × 10.

  • TPCH_SF100: Besteht aus der Basiszeilenmenge × 100 (mehrere hundert Millionen Elemente).

  • TPCH_SF1000: Besteht aus der Basiszeilenmenge × 1.000 (mehrere Milliarden Elemente).

Database entities, relationships, and characteristics

Die Komponenten von TPC-H bestehen aus acht separaten und individuellen Tabellen (den Basistabellen). Die Beziehungen zwischen den Spalten in diesen Tabellen sind im folgenden ER-Diagramm dargestellt:

Schema für TPC-H-Benchmark-Daten

(Quelle: Standardspezifikation von TPC Benchmark H)

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

Diese Abfrage berichtet den Umfang der Geschäftstätigkeiten, die fakturiert, geliefert und zurückgegeben wurden.

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

Die Abfrage listet Summen für erweiterten Preis, reduzierten erweiterten Preis, reduzierten erweiterten Preis zuzüglich Steuer, durchschnittliche Menge, durchschnittlichen erweiterten Preis und durchschnittlichen Rabatt auf. Diese Summen sind nach RETURNFLAG und LINESTATUS gruppiert und werden in aufsteigender Reihenfolge von RETURNFLAG und LINESTATUS aufgelistet. Ein Zähler für die Anzahl der Einzelelemente in jeder Gruppe ist enthalten:

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