Apache Phoenix 允许创建将数据分布在区域服务器上的加盐表。例如
CREATE TABLE table (a_key VARCHAR PRIMARY KEY, a_col VARCHAR) SALT_BUCKETS = 20;
为了使用此功能,必须选择多个盐桶。这个盐桶数量怎么选?它应该基于区域服务器的数量吗?如果我打算稍后添加更多区域服务器怎么办?
HBase 表分为区域。一个 RegionServer 可以容纳几个 100 个区域。因此,理想情况下,它应该取决于:
您希望数据中有多少随机分布?
更多的桶与随机分布(即负载平衡)成正比。但是,您也会失去进行基于范围的扫描的灵活性。
从理论上讲,您将来应该能够增加“salt_buckets”。相反,您将来将无法减少“salt_buckets”。所以,我建议从名义数量的桶开始。(注意:我不确定凤凰是否允许增加桶的数量。)
根据官方页面,buckets = RegionServers:https ://phoenix.apache.org/performance.html#Salting 。