Sample data: TPC-H¶
Comme décrit dans les spécifications TPC Benchmark™ H (TPC-H) :
« TPC-H est un benchmark d’aide à la décision. Il se compose d’une série de requêtes ad hoc orientées métier et de modifications simultanées des données. Les requêtes et les données alimentant la base de données ont été choisies de manière à ce qu’elles soient pertinentes pour l’ensemble du secteur. Ce benchmark illustre des systèmes d’aide à la décision qui examinent de grands volumes de données, exécutent des requêtes d’un haut degré de complexité et donnent des réponses à des questions commerciales critiques ».
Database and schemas¶
TPC-H est fourni en différentes tailles d’ensemble de données pour tester différents facteurs d’échelle. À des fins de démonstration, nous avons partagé quatre versions des données TPC-H. Les données sont fournies dans les schémas suivants de la base de données partagée SNOWFLAKE_SAMPLE_DATA :
TPCH_SF1 : comprend la taille de la ligne de base (plusieurs millions d’éléments).
TPCH_SF10 : comprend la taille de la ligne de base x 10.
TPCH_SF100 : comprend la taille de la ligne de base x 100 (plusieurs centaines de millions d’éléments).
TPCH_SF1000 : comprend la taille de la ligne de base x 1000 (plusieurs milliards d’éléments).
Database entities, relationships, and characteristics¶
Les composantes de TPC-H se composent de huit tables distinctes et individuelles (les tables de base). Les relations entre les colonnes de ces tables sont illustrées dans le diagramme ER suivant :
(source : TPC spécifications standard 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¶
Cette requête indique le montant des biens/prestations facturés, expédiés et renvoyés.
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¶
La requête répertorie les totaux pour le prix étendu, le prix étendu réduit, le prix étendu réduit plus les taxes, la quantité moyenne, le prix étendu moyen et la remise moyenne. Ces agrégats sont regroupés par RETURNFLAG et LINESTATUS, et sont répertoriés par ordre croissant de RETURNFLAG et LINESTATUS. Un décompte du nombre d’éléments de ligne dans chaque groupe est inclus :
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;