容量规划
ProtonBase 的容量规划主要包含存储资源和计算资源。
存储资源
对于新业务的存储的预估,通常要考虑存量数据和增量数据两部分。
ProtonBase 的写入使用LSM(Log Structured Merge Tree),通过将随机写转为顺序写来提升写入性能。对写入的日志文件会定期的进行compaction操作来提升写入和读取性能。compaction发生期间数据会有一定膨胀,compaction完成后数据会进入稳态。对于存储资源
存量数据
ProtonBase 具有高效的编码和压缩机制,通常情况下能将数据从原始的csv格式压缩至三分之一。在列存场景下,取决于各列的取值的基数。如果取值的基数比较低,ProtonBase 内自适应 dict encoding 压缩会有比较好的压缩效果。因此可能有更低的压缩率。
增量数据
按照每天实际业务增量的行数,和每行的size进行预估。比如每天业务上增量1000万行,每行100B, 考虑到压缩率,那么每天增加的存储size约为10M * 100B * 0.33=330MB。
计算资源
ProtonBase 的计算资源按照Unit粒度进行扩展。计算资源的预估可以参考如下标准:
-
对于update的事务型写入的数据场景,按照500GB左右 (压缩后存储size,下同) 1个计算Unit的方式进行预估。
-
对于批量写或者低写入量、数据大多为冷数据、查询只涉及最近一段时间(1天/1周/1月)的业务场景,可以适当调大Unit和数据size的对应关系。比如 1 Unit对应1TB-2TB。但通常不建议1个Unit 对应超过 2TB 的数据量。
使用示例
-
某电商企业供应链场景,数据持续有写入和查询操作。写入QPS平均5K/s, 峰值28K/s,数据量1.5TB。平均每行100B,单日增量压缩前约在43GB,压缩后约14.3GB。按照存量和增量数据规模评估,使用4Unit。
-
某工业物联网企业大数据场景,数据每天固定时间段做批量同步。存量数据20TB, 每天增量数据300GB,压缩后约100GB。按照存量和增量数据规模评估,使用16Unit。