MaxCompute通过TPC-DS官方工具生成了10GB、100GB、1TB、10TB四个规格的TPC-DS数据,此数据方便您在做产品测试时使用。本文为您介绍MaxCompute公开数据集中TPC-DS数据的基本信息,以及如何通过MaxCompute执行TPC-DS数据查询。
简介
TPC BenchmarkTM DS (TPC-DS)是全球最知名的数据管理系统评测基准标准化组织TPC(事务性管理委员会)制定的标准规范,并由TPC管理测试结果的发布。
MaxCompute通过TPC-DS官方工具生成了10GB、100GB、1TB、10TB四个规格的TPC-DS数据,存储在MaxCompute公开项目BIGDATA_PUBLIC_DATASET中不同的Schema下(Schema详细信息请参见Schema操作)。只要您已开通MaxCompute服务并创建项目,就可以通过跨项目访问的方式查询TPC-DS数据表,数据表信息如下所示。
数据规格 | 项目名称 | Schema名称 | 表名称 |
10 GB | BIGDATA_PUBLIC_DATASET | TPCDS_10G | call_center catalog_page catalog_returns catalog_sales customer customer_address customer_demographics date_dim household_demographics income_band inventory item promotion reason ship_mode store store_returns store_sales tab_reducenum tab_reducenum_100 time_dim warehouse web_page web_returns web_sales web_site |
100 GB | BIGDATA_PUBLIC_DATASET | TPCDS_100G | |
1 TB | BIGDATA_PUBLIC_DATASET | TPCDS_1T | |
10 TB | BIGDATA_PUBLIC_DATASET | TPCDS_10T |
表数据引用自TPC,更多信息请参见TPC。
详细的表结构与内容介绍请参见TPC Benchmark™ DS (TPC-DS)。
声明
MaxCompute公开数据集中的TPC-DS的数据生成与分析基于TPC-DS的基准测试,并不能与已发布的TPC-DS基准测试结果相比较,因为通过MaxCompute公开数据集进行的测试并不符合TPC-DS基准测试的所有要求。
MaxCompute提供的TPC-DS只能用于产品测试,数据将不做周期更新,因此请您勿用于正式生产。
MaxCompute提供的TPC-DS数据源于TPC,您也可以选择自行生成TPC-DS数据,生成TPC-DS测试数据详情请参见TPC-DS官方文档。
可用地域
地域 | 地域ID |
华东1(杭州) | cn-hangzhou |
华东2(上海) | cn-shanghai |
华北2(北京) | cn-beijing |
华北3(张家口) | cn-zhangjiakou |
华北6(乌兰察布) | cn-wulanchabu |
华南1(深圳) | cn-shenzhen |
西南1(成都) | cn-chengdu |
中国香港 | cn-hongkong |
新加坡 | ap-southeast-1 |
日本(东京) | ap-northeast-1 |
马来西亚(吉隆坡) | ap-southeast-3 |
印度尼西亚(雅加达) | ap-southeast-5 |
美国(硅谷) | us-west-1 |
美国(弗吉尼亚) | us-east-1 |
英国(伦敦) | eu-west-1 |
德国(法兰克福) | eu-central-1 |
阿联酋(迪拜) | me-east-1 |
华东2金融云 | cn-shanghai-finance-1 |
华北2金融云(邀测) | cn-beijing-finance-1 |
华南1金融云 | cn-shenzhen-finance-1 |
华北2阿里政务云1 | cn-north-2-gov-1 |
注意事项
公开数据集对所有的MaxCompute用户开放。在使用过程中,您需要注意:
公开数据集的数据均存储在BIGDATA_PUBLIC_DATASET项目中,但所有用户并未被加入到该项目中,即非项目空间成员。因此需要跨项目访问数据,在编写SQL脚本时,必须在表名前指定项目名称及Schema名称。同时,未开启租户级Schema语法开关的用户需要开启Session级Schema语法,才能保证命令正常运行,命令示例如下:
--开启Session级Schema语法 set odps.namespace.schema=true; --本样例文件中提供的query为tpcds_10g,若您希望运行其他规格的数据集,请手动替换为其他规格对应的Schema名称。 select * from bigdata_public_dataset.tpcds_10g.store_sales limit 100;
说明您无需为公开数据集的数据支付存储费用,但是您需要支付执行查询语句产生的相应计算费用。费用计算规则请参见计算费用。
由于公开数据集需要跨项目访问,您在DataWorks的数据地图中无法查找到公开数据集中的表。
由于TPC-DS数据集存放于支持按Schema存储的项目下,未开启租户级别Schema语法的用户无法在DataWorks数据分析提供的公开数据集中直接查看,但您依旧可以通过我们提供的SQL语句进行查询。
由于是跨项目访问数据,为了保证SQL运行效果,您需要设置以下Flag。
-- tpcds table schema使用的decimal int等类型,需要开启以下flag才能运行 set odps.sql.hive.compatible=true; set odps.sql.type.system.odps2=true; set odps.sql.decimal.odps2=true; -- 以下3个flag,新建项目的Flag值和下面列举相同,存量项目的Flag值可能会不同(存量项目担心对已有Query造成影响,Flag值会保持不变)。 -- 建议使用setproject修改成系统默认值,如果不设置可能会导致order by不包含limit的语句报错,还可能会导致q72 Query join order不够好运行时间特别长: set odps.sql.validate.orderby.limit=false; set odps.optimizer.join.reorder.enable=true; set odps.optimizer.column.stat.enable=true; -- tpcds对于q77会使用笛卡尔积,MaxCompute笛卡尔积对于sort-merge join默认不支持,如需使用请设置如下session级别的Flag。 set odps.sql.allow.cartesian=true;
执行TPC-DS Query
前提条件
已开通MaxCompute并已创建项目,详情请参见创建MaxCompute项目。
支持的工具或平台
Query样例文件
MaxCompute提供了针对不同数据规格的Query样例文件,每个文件内包含99个查询,这些查询的复杂性和扫描数据范围差异很大,请谨慎选取执行,避免产生大量计算费用。您也可以使用TPC-DS基准套件中的工具生成这些查询的不同版本,不同版本因参数值而异,详情请参见TPC-DS官方文档。
数据规格 | Query文件 |
10 GB | |
100 GB | |
1 TB | |
10 TB |
本文提供的Query样例文件内容源于TPC-DS的基准测试,通过上述文件查询所得结果并不能与已发布的TPC-DS基准测试结果相比较,因为通过MaxCompute公开数据集进行的测试并不符合TPC-DS基准测试的所有要求。更多信息请参见TPC。