Hbase 如何选择凤凰城的盐桶数量?
ApachePhoenix允许创建跨区域服务器分发数据的服务器。e、 gHbase 如何选择凤凰城的盐桶数量?,hbase,phoenix,Hbase,Phoenix,ApachePhoenix允许创建跨区域服务器分发数据的服务器。e、 g CREATE TABLE table (a_key VARCHAR PRIMARY KEY, a_col VARCHAR) SALT_BUCKETS = 20; 要使用此功能,必须选择多个盐桶。如何选择这个数量的盐桶?是否应基于区域服务器的数量?如果我计划以后添加更多区域服务器,该怎么办?HBase表分为多个区域。RegionServer可以容纳100个区域。因此,理想情况下,它应该取决于: 您希望数据中有多少随机分布?
CREATE TABLE table (a_key VARCHAR PRIMARY KEY, a_col VARCHAR) SALT_BUCKETS = 20;
要使用此功能,必须选择多个盐桶。如何选择这个数量的盐桶?是否应基于区域服务器的数量?如果我计划以后添加更多区域服务器,该怎么办?HBase表分为多个区域。RegionServer可以容纳100个区域。因此,理想情况下,它应该取决于:
您希望数据中有多少随机分布?
更多的桶与随机分布成比例,即负载平衡。但是,您也将失去进行基于范围扫描的灵活性
从理论上讲,你将来应该能够增加“盐桶”。相反,将来你将无法减少“盐桶”。因此,我建议从桶的标称数量开始。(注意:我不确定phoenix是否允许增加桶的数量。)根据官方页面,bucket=RegionServer:。我使用sqlline客户端,如果我试图更改表以更改盐桶的数量(增加或减少),然后失败,出现错误-错误1024:只能在创建盐桶时指定盐桶编号table@SumitNigam当前位置似乎他们不允许增加盐桶。但是,我认为,这应该是可能的。也许,你可以在凤凰城打开一个功能请求。