经过测试,得到了优化表前后的加载时间、存储占用情况和查询执行时间,并记录了结果,针对结果进行对比分析。
下表显示了本次实践所用集群的示例结果。您的结果会有所不同,但应显示出相似的提升。
基准 优化前 优化后 改变 百分比 加载时间(11张表)
341584ms
257241ms
-84343ms
-24.7%
占用存储
-
-
Store_Sales
42GB
14GB
-28GB
-66.7%
Date_Dim
11MB
27MB
16MB
145.5%
Store
232kB
4352kB
4120kB
1775.9%
Item
110MB
259MB
149MB
1354.5%
Time_Dim
11MB
14MB
13MB
118.2%
Promotion
256kB
3200kB
2944kB
1150%
Customer_Demographics
171MB
11MB
-160MB
-93.6
Customer_Address
170MB
27MB
-143MB
-84.1%
Household_Demographics
504kB
1280kB
704kB
139.7%
Customer
441MB
111MB
-330MB
-74.8%
Income_Band
88kB
896kB
808kB
918.2%
总存储空间
42GB
15GB
-27GB
-64.3%
查询执行时间
-
-
查询1
14552.05ms
1783.353ms
-12768.697ms
-87.7%
查询2
27952.36ms
14247.803ms
-13704.557ms
-49.0%
查询3
17721.15ms
11441.659ms
-6279.491ms
-35.4%
总执行时间
60225.56ms
27472.815ms
-32752.745ms
-54.4%
调优后表的评估
- 加载时间减少了24.7%。
分布方式对加载的影响明显,Hash分布方式提升加载效率,Replication分布方式会降低加载效率。在CPU和I/O均充足的情况下,压缩级别对加载效率影响不大。通常,列存表的加载效率比行存要高。
- 存储占用减少了64.3%。
压缩级别、列存和Hash分布均能够节省存储空间。Replication表会明显加大存储占用,但是可以减小网络开销。通过对小表采用Replication方式,是使用小量空间换取性能的正向做法。
- 查询性能(速度)提升了54.4%,即查询时间减少了54.4%。
查询性能方面的提升源于对存储方式、分布方式和分布列的优化。在多字段表,统计分析类查询场景下,列存可以提升查询性能。对于Hash分布表,在读/写数据时可以利用各个节点的IO资源,提升表的读/写速度。
重写查询和配置工作负载管理
(WLM) 通常可进一步提升查询性能。
基于调优表实践的具体步骤,您可以进一步应用“2 调优表实践”中的优秀实践方法来改进表的分配,以达到您所期望的数据加载、存储和查询方面的效果。
清除资源
在完成本次实践之后,应遵循中的步骤删除集群。
如果希望保留集群,但撤销SS表使用的存储空间,请执行以下命令。
DROP TABLE store_sales;
DROP TABLE date_dim;
DROP TABLE store;
DROP TABLE item;
DROP TABLE time_dim;
DROP TABLE promotion;
DROP TABLE customer_demographics;
DROP TABLE customer_address;
DROP TABLE household_demographics;
DROP TABLE customer;
DROP TABLE income_band;