凤凰的盐桶数量如何选择?

How to choose the number of salt buckets in phoenix?

Apache Phoenix 允许创建 salted tables 来跨区域服务器分发数据。例如

CREATE TABLE table (a_key VARCHAR PRIMARY KEY, a_col VARCHAR) SALT_BUCKETS = 20;

要使用此功能,必须选择多个盐桶。如何选择这个数量的盐桶?它应该基于区域服务器的数量吗?如果我计划稍后添加更多区域服务器怎么办?

HBase Table 分为Region。一个 RegionServer 可以容纳数百个区域。所以,理想情况下,它应该取决于:
您希望数据中有多少随机分布?
更多的桶与随机分布成正比 a.k.a 负载平衡。但是,您也会失去进行基于范围的扫描的灵活性。

理论上,您将来应该可以增加 "salt_buckets"。反之,以后就不能减少"salt_buckets"了。所以,我建议从标称桶数开始。(注意:我不确定 phoenix 是否允许增加桶数。)

根据官方页面,buckets = RegionServers: https://phoenix.apache.org/performance.html#Salting.