样本数据:TPC-H¶
如 TPC Benchmark™ H (TPC-H) (http://www.tpc.org/tpch/) 规范中所述:
“TPC-H 是一项决策支持基准。它由一套面向业务的临时查询和并发数据修改组成。查询和用于填充数据库的数据被选为具有广泛的行业相关性。这项基准说明了决策支持系统,它可以检查大量数据,执行高度复杂的查询,并回答关键的业务问题。”
本主题内容:
数据库和架构¶
TPC-H 提供了各种数据集大小来测试不同的缩放因子。出于演示目的,我们共享了四个版本的 TPC-H 数据。在 SNOWFLAKE_SAMPLE_DATA 共享数据库中,按下列架构提供数据:
TPCH_SF1:由基行大小(几百万个元素)组成。
TPCH_SF10:由基行大小 x 10 组成。
TPCH_SF100:由基行大小 x 100(数亿个元素)组成。
TPCH_SF1000:由基行大小 x 1000(数十亿个元素)组成。
数据库实体、关系和特征¶
TPC-H 的组件由八个单独的表(基表)组成。以下 ER 图说明了这些表中各列之间的关系:
(来源:TPC Benchmark H 标准规范 (http://www.tpc.org/tpc_documents_current_versions/pdf/tpc-h_v2.17.1.pdf))
查询定义¶
每个 TPC-H 查询都询问一个业务问题,并包含相应的查询来回答该问题。一些 TPC-H 查询包含在 Snowflake 的入门教程中。
本部分介绍其中一个查询。关于 TPC-H 和所有相关查询的更多信息可以在官方的 TPC Benchmark H 标准规范 (http://www.tpc.org/tpc_documents_current_versions/pdf/tpc-h_v2.17.1.pdf) 中找到。
Q1:定价汇总报表查询¶
此查询报告已开票、发货和退货的业务量。
业务问题¶
“定价汇总报表查询”提供截至给定日期发运的所有行项目的汇总定价报表。该日期是在数据库中包含的 60-120 天最长装运日期。
函数查询定义¶
该查询列出扩展价格、折扣扩展价格、折扣扩展价格加税、平均数量、平均扩展价格和平均折扣的合计。这些汇总按 RETURNFLAG 和 LINESTATUS 分组,并按 RETURNFLAG 和 LINESTATUS 的升序列出。包括每组中的行项目数量计数:
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;