表格存储服务 CLOUDTABLE-最佳实践:关于Partition和Bucket的数量和数据量的建议

时间:2024-01-12 11:23:31

关于Partition和Bucket的数量和数据量的建议

  • 一个表的Tablet总数量等于 (Partition num*Bucket num)。
  • 一个表的Tablet数量,在不考虑扩容的情况下,推荐略多于整个集群的磁盘数量。
  • 单个Tablet的数据量理论上没有上下界,但建议在1G-10G的范围内。如果单个Tablet数据量过小,则数据的聚合效果不佳,且元数据管理压力大。如果数据量过大,则不利于副本的迁移、补齐,且会增加Schema Change或者Rollup操作失败重试的代价(这些操作失败重试的粒度是Tablet)。
  • 当Tablet的数据量原则和数量原则冲突时,建议优先考虑数据量原则。
  • 在建表时,每个分区的Bucket数量统一指定。但是在动态增加分区时(ADD PARTITION),可以单独指定新分区的Bucket数量。可以利用这个功能方便的应对数据缩小或膨胀。
  • 一个Partition的Bucket数量一旦指定,不可更改。所以在确定Bucket数量时,需要预先考虑集群扩容的情况。比如当前只有3台host,每台host有1块盘。如果Bucket的数量只设置为3或更小,那么后期即使再增加机器,也不能提高并发度。
  • 举一些例子:假设在有10台BE,每台BE一块磁盘的情况下。如果一个表总大小为500MB,则可以考虑4-8个分片。5GB:8-16个分片。50GB:32个分片。500GB:建议分区,每个分区大小在50GB左右,每个分区16-32个分片。5TB:建议分区,每个分区大小在50GB 左右,每个分区16-32个分片。
support.huaweicloud.com/devg-cloudtable/cloudtable_01_0254.html