分区
处理大数据集,首先要考虑的就是分区。HANA中表的数据量有20亿的限制,当表的数据量超过这个限制,我们就必须对它进行分区(将数据集切片并分配到不同的存储上)
当一个表的数据被分配到不同的节点上,就可以在所有的节点上对这个表进行并行的查询。一个适当的分区策略对于处理大数据集是非常重要的。可以参考一些一般性的建议,但是没有简单的规则去遵循。有可能一个特定的分区策略在这个场景中适用,在另外的场景就不适用了。
在这个章节里面,我们会学习如下分区策略
- Round-robin
- Range
- Hash
- Two-level partitioning
Round-robin Partitioning
首先我们来看一下Round-robin分区,假设你有一张500亿条记录的销售订单表
CREATE COLUMN TABLE Trans_DTL(
Trans_DATE DATE,
Trans_No INT,
Prod_ID BIGINT,
Sales_Qty BIGINT,
Sales_Net DECIMAL(18,2)) ;
需要将数据记录均匀的分配到10个节点上,你可以尝试使用Round-robin分区
ALTER TABLE Trans_DTL PARTITION BY ROUNDROBIN PARTITIONS 100;
这种分区方式会让查询总是执行全表扫描,性能较差
Range Partitioning
为了利用分区修剪,你可以使用区间对表进行分区
ALTER TABLE Trans_DTL pa