容量规划

为什么需要容量规划?

容量规划是确保 ProtonBase 服务稳定运行和成本优化的关键环节。通过合理的容量规划,您可以:

  • 避免资源不足导致的性能问题
  • 防止资源过度配置造成的成本浪费
  • 提前预估和准备所需的计算和存储资源
  • 制定合理的扩缩容策略

良好的容量规划不仅能提升系统性能,还能帮助您优化成本,确保业务的可持续发展。

ProtonBase 的容量规划主要包含存储资源和计算资源。

存储资源

对于新业务的存储的预估,通常要考虑存量数据和增量数据两部分。

ProtonBase 的写入使用LSM(Log Structured Merge Tree),通过将随机写转为顺序写来提升写入性能。对写入的日志文件会定期的进行compaction操作来提升写入和读取性能。compaction发生期间数据会有一定膨胀,compaction完成后数据会进入稳态。

存量数据

ProtonBase 具有高效的编码和压缩机制,通常情况下能将数据从原始的csv格式压缩至三分之一。在列存场景下,取决于各列的取值的基数。如果取值的基数比较低,ProtonBase 内自适应 dict encoding 压缩会有比较好的压缩效果。因此可能有更低的压缩率。

存量数据预估方法

  1. 评估现有数据的原始大小
  2. 根据数据特征预估压缩率(通常为 1/3,但需根据实际情况调整)
  3. 考虑 compaction 期间的数据膨胀(通常为 1.5-2 倍)

增量数据

按照每天实际业务增量的行数,和每行的size进行预估。比如每天业务上增量1000万行,每行100B, 考虑到压缩率,那么每天增加的存储size约为10M * 100B * 0.33=330MB。

增量数据预估方法

  1. 分析业务增长趋势和历史数据
  2. 预估每日新增数据量
  3. 考虑数据生命周期管理策略(如数据归档)

计算资源

ProtonBase 的计算资源按照Unit粒度进行扩展。计算资源的预估可以参考如下标准:

  1. 对于update的事务型写入的数据场景,按照500GB左右 (压缩后存储size,下同) 1个计算Unit的方式进行预估。

  2. 对于批量写或者低写入量、数据大多为冷数据、查询只涉及最近一段时间(1天/1周/1月)的业务场景,可以适当调大Unit和数据size的对应关系。比如 1 Unit对应1TB-2TB。但通常不建议1个Unit 对应超过 2TB 的数据量。

计算资源规划建议

  • 根据业务类型选择合适的 Unit 配置
  • 考虑业务高峰期的负载需求
  • 预留一定的资源余量以应对突发流量

使用示例

示例 1:电商企业供应链场景

某电商企业供应链场景,数据持续有写入和查询操作。写入QPS平均5K/s, 峰值28K/s,数据量1.5TB。平均每行100B,单日增量压缩前约在43GB,压缩后约14.3GB。按照存量和增量数据规模评估,使用4Unit。

示例 2:工业物联网企业大数据场景

某工业物联网企业大数据场景,数据每天固定时间段做批量同步。存量数据20TB, 每天增量数据300GB,压缩后约100GB。按照存量和增量数据规模评估,使用16Unit。

容量规划最佳实践

  1. 定期回顾和调整容量规划,适应业务变化
  2. 结合监控数据验证预估的准确性
  3. 制定应急预案,应对资源不足的情况
  4. 考虑数据增长趋势,预留扩展空间