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:
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;