Beispieldaten: TPC-DS¶
TPC-DS ist ein Benchmark, der das Entscheidungshilfesystem eines Anbieters von Einzelhandelsprodukten modelliert. Sie enthält Kunden-, Bestell- und Produktdaten. Snowflake stellt Ihnen die Versionen 10TB und 100TB von TPC-DS-Daten in den Schemas TPCDS_SF10TCL bzw. TPCDS_SF100TCL innerhalb der gemeinsamen genutzten Datenbank SNOWFLAKE_SAMPLE_DATA zur Verfügung.
Wie in der TPC Benchmark ™ DS (TPC-DS)-Spezifikation beschrieben:
Um die enorme Bandbreite an Abfragetypen und Benutzerverhalten eines Entscheidungsunterstützungssystems zu berücksichtigen, TPC-DS verwendet ein generalisiertes Abfragemodell. Dieses Modell ermöglicht es der Benchmark, wichtige Aspekte der interaktiven, iterativen Natur von OLAP-Abfragen (On-Line Analytical Processing), die zeitaufwändige Ausführung komplexer Abfragen in Data Mining und Knowledge Discovery sowie das planmäßigere Verhalten von bekannten Berichtsabfragen abzudecken.“
Unter diesem Thema:
Wie füge ich das TPC-DS-Dataset zu meinem Konto hinzu?¶
Sie können auf TPC-DS-Datensätze, die von Snowflake bereitgestellt werden, direkt von Snowflake Marketplace in Snowsight zugreifen. Siehe TPC-DS Daten von Snowflake Marketplace abrufen. Sie können auch auf die Liste der TPC-DS-Abfragen zugreifen, indem Sie dieses Skript
herunterladen.
Entitäten, Beziehungen und Eigenschaften der Datenbank¶
Das TPC-DS-Dataset besteht aus 7 Faktentabellen und 17 Dimensionen in den folgenden Schemas:
TPCDS_SF100TCL: Die 100-TB-Version (Skalierungsfaktor 100.000) repräsentiert 100 Millionen Kunden und über 500.000 gespeicherte Artikel, wobei die Verkaufsdaten 3 Kanäle – Geschäfte, Kataloge und Internet – über einen Zeitraum von 5 Jahren umfassen. Die größte Tabelle, STORE_SALES, enthält fast 300 Milliarden Zeilen, und die Faktentabellen enthalten insgesamt über 560 Milliarden Zeilen.
TPCDS_SF10TCL: Die 10-TB-Version (Skalierungsfaktor 10.000) repräsentiert 65 Millionen Kunden und über 400.000 gespeicherte Artikel, wobei die Verkaufsdaten 3 Kanäle – Geschäfte, Kataloge und Internet – über einen Zeitraum von 5 Jahren umfassen. Die größte Tabelle, STORE_SALES, enthält fast 29 Milliarden Zeilen, und die Faktentabellen enthalten insgesamt über 56 Milliarden Zeilen.
Die Beziehungen zwischen Fakten und Dimensionen werden durch Joins auf Ersatzschlüsseln dargestellt. Die detaillierten Beziehungen sind zu zahlreich, um sie hier anzuzeigen, sie sind aber in der Spezifikation zu TPC-DS zu finden.
Abfragedefinitionen¶
TPC-DS enthält ein Set von 99 Abfragen mit großen Unterschieden in Komplexität und Umfang der gescannten Daten. Jede TPC-DS-Abfrage steht für eine Geschäftsfrage und enthält die entsprechende Abfrage zur Beantwortung der Frage. Wir haben Beispiele für alle 99 TPC-DS-Abfragen für Sie generiert. Alternativ können Sie die Tools des TPC-DS-Benchmark-Kits verwenden, um viele verschiedene Versionen dieser Abfragen zu generieren, die sich durch die Parameterwerte unterscheiden.
Im Folgenden beschreiben wir nur eine der Abfragen. Weitere Informationen zu TPC-DS und allen damit verbundenen Abfragen finden Sie in der offiziellen TPC-DS-Spezifikation.
Das TPC-DS-Skript
, bereitgestellt von Snowflake, enthält die vollständige Liste der TPC-DS-Abfragen. Sie können die Datei zu Referenzzwecken in Ihrem lokalen Dateisystem speichern.
Ein Beispiel: Callcenter-Ausreißer im Katalog-Vertrieb (Q57)¶
Bei dieser Abfrage wird der Wert von CATALOG_SALES-Tabellendaten über ein Jahr betrachtet, und es werden die Kategorien und Marken aufgezeigt, bei denen die Umsätze eines Monats um mehr als 10 % vom Durchschnitt eines bestimmten Callcenters abweichen.
Geschäftsfrage¶
Suchen Sie die Artikelmarken und -kategorien für jedes Callcenter und deren monatliche Verkaufszahlen für ein bestimmtes Jahr, wobei die monatlichen Verkaufszahlen um mehr als 10 % vom durchschnittlichen Monatsumsatz des Jahres abweichen, sortiert nach Abweichung und Callcenter. Melden Sie die Umsatzabweichung gegenüber den Vormonaten und den Folgemonaten.
Definition der funktionalen Abfrage¶
Die Abfrage listet die folgenden Summen auf:
Erweiterter Preis
Ermäßigter erweiterter Preis
Ermäßigter erweiterter Preis zuzüglich Mehrwertsteuer
Durchschnittliche Menge
Durchschnittlicher erweiterter Preis
Durchschnittlicher Rabatt
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.tpcds_sf10Tcl; -- QID=TPC-DS_query57 with v1 as( select i_category, i_brand, cc_name, d_year, d_moy, sum(cs_sales_price) sum_sales, avg(sum(cs_sales_price)) over (partition by i_category, i_brand, cc_name, d_year) avg_monthly_sales, rank() over (partition by i_category, i_brand, cc_name order by d_year, d_moy) rn from item, catalog_sales, date_dim, call_center where cs_item_sk = i_item_sk and cs_sold_date_sk = d_date_sk and cc_call_center_sk= cs_call_center_sk and ( d_year = 2001 or ( d_year = 2001-1 and d_moy =12) or ( d_year = 2001+1 and d_moy =1) ) group by i_category, i_brand, cc_name , d_year, d_moy), v2 as( select v1.i_brand ,v1.d_year, v1.d_moy ,v1.avg_monthly_sales ,v1.sum_sales, v1_lag.sum_sales psum, v1_lead.sum_sales nsum from v1, v1 v1_lag, v1 v1_lead where v1.i_category = v1_lag.i_category and v1.i_category = v1_lead.i_category and v1.i_brand = v1_lag.i_brand and v1.i_brand = v1_lead.i_brand and v1.cc_name = v1_lag. cc_name and v1.cc_name = v1_lead. cc_name and v1.rn = v1_lag.rn + 1 and v1.rn = v1_lead.rn - 1) select * from v2 where d_year = 2001 and avg_monthly_sales > 0 and case when avg_monthly_sales > 0 then abs(sum_sales - avg_monthly_sales) / avg_monthly_sales else null end > 0.1 order by sum_sales - avg_monthly_sales, nsum limit 100;
TPC-DS Daten von Snowflake Marketplace abrufen¶
Sie können auf die Daten von TPC-DS direkt zugreifen, indem Sie auf Snowflake Marketplace in Snowsight gehen. Sie können Ihre eigene Instanz der folgenden Datasets erstellen und abfragen:
TPC-DS 10 TB (Standard-Tabellenformat)
TPC-DS 10 TB Managed Iceberg (Iceberg-Tabellenformat)
Die Daten im Managed Iceberg-Datensatz werden physisch im Iceberg-Format und nicht im proprietären Tabellenformat von Snowflake gespeichert. Sie können beide Datensätze abrufen und das Verhalten der beiden Formate vergleichen.
Um diese Datensätze zu erhalten:
Suchen Sie nach TPC-DS in Snowflake Marketplace. (Melden Sie sich bei Snowsight an, wenn Sie dazu aufgefordert werden.)
Wählen Sie einen der Datensätze TPC-DS aus.
Wählen Sie Get aus.
Beantragen Sie gegebenenfalls den Zugang bei Ihrem Administrator. Ihre Anmeldungsrolle hat möglicherweise keinen Zugriff auf diese Datensätze.
Geben Sie unter Options Ihrer TPC-DS-Datenbank einen benutzerdefinierten Namen, und wählen Sie die Rolle, mit der Sie darauf zugreifen werden. Alternativ können Sie auch mit den Standardeinstellungen fortfahren.
Wählen Sie Get it for Free aus.
In wenigen Sekunden sollten Sie das folgende Popup-Fenster sehen, das anzeigt, dass Ihre Instanz der TPC-DS-Datenban erstellt wurde und zur Überprüfung und Abfrage zur Verfügung steht.
Wählen Sie Query Data aus.
Fragen Sie die Daten in der Datenbank ab. Verwenden Sie dazu entweder das mitgelieferte Arbeitsblatt oder das
TPC-DS Skript
, das alle Abfragen enthält.
Wenn Sie bereits Get verwendet haben, um eine dieser Datenbanken zu erstellen, können Sie diese aufrufen, indem Sie Open auf dem Marketplace Suchergebnisse auswählen.