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。