背景:StarRocks 3.2,存储一体
使用场景:多分析、小查询多单但不高、数据量几百T
FE 存储
由于 FE 节点仅在其存储中维护 StarRocks 的元数据,因此在大多数场景下,每个 FE 节点只需要 100 GB 的 HDD 存储,生产建议200G SSD以上,FE-FOLLOWER节点也一样的配置。
BE 存储
预估 BE 初始存储空间
StarRocks 集群需要的总存储空间同时受到原始数据大小、数据副本数以及使用的数据压缩算法的压缩比的影响。
你可以通过以下公式估算所有 BE 节点所需的总存储空间:
磁盘大小一样,SSD盘,无需做RAID(多副本情况下)
shell
BE 节点所需的总存储空间 = 原始数据大小 * 数据副本数/数据压缩算法压缩比
原始数据大小 = 单行数据大小 * 总数据行数
在 StarRocks 中,一个表中的数据首先被划分为多个分区(Partition),每个分区建议10-20GB,如果分桶表建议每个分桶1GB左右,然后进一步被划分为多个 Tablet。Tablet 是 StarRocks 中基本数据管理逻辑单元。为保证数据的高可靠性,你可以为每个 Tablet 维护多个副本,存储于不同的 BE 节点。StarRocks 默认维护三个副本。
目前,StarRocks 支持四种数据压缩算法:zlib、Zstandard(或 zstd)、LZ4 和 Snappy(按压缩比从高至低排列)。这些数据压缩算法可以提供 3:1 到 5:1 的压缩比。
通过计算得到总存储空间后,你可以简单地将之除以集群中的 BE 节点数,估算出每个 BE 节点所需的平均存储空间。
随时添加额外存储空间
如果 BE 存储空间随着原始数据的增长而耗尽,可以进行以下选择。
- 在 StarRocks 集群中添加新的 BE 节点
- 在 BE 节点上添加额外的存储卷
- 添加云存储空间
集群存储空间规划除了以上内容外,还要考虑磁盘阈值报警,业务数据未来增加大小等。