Beispieldaten: 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.“

Unter diesem Thema:

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

Entitäten, Beziehungen und Eigenschaften der Datenbank

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 for TPC-H benchmark data

(Quelle: Standardspezifikation von TPC Benchmark H)

Abfragedefinitionen

Jede TPC-H-Abfrage steht für eine Geschäftsfrage und enthält die entsprechende Abfrage zur Beantwortung der Frage. Einige der TPC-H-Abfragen sind in den Snowflake-Tutorials unter „Erste Schritte“ enthalten.

In diesem Abschnitt wird eine der Abfragen beschrieben. Weitere Informationen zu TPC-H und allen enthaltenen Abfragen finden Sie in der offiziellen Standardspezifikation von TPC Benchmark H.

Q1: Abfrage zum Preiszusammenfassungsbericht

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

Geschäftsfrage

Die Abfrage zum Preiszusammenfassungsbericht erstellt eine zusammenfassende Preisliste für alle Positionen zur Verfügung, die zu einem bestimmten Datum geliefert wurden. Das Datum liegt im Bereich von 60–120 Tagen nach dem größten in der Datenbank enthaltenen Lieferdatum.

Definition der funktionalen Abfrage

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;