一、简介:
starRocks起源于开源软件Doris,其相对Doris的社区环境,starRcoks有商业团队维护、快速版本迭代和dockerHub高支持,让我在生产环境中更加偏向于starRocks,而不是拥抱Doris开源社区。StarRocks的版本更新速度、学习文档和论坛都让小白更加容易入手。性能上StarRocks和Doris相差不大,功能性上还是有些差异,具体参照官网。
二、特性:
- 1.MMP分布式执行
通过分布式、分区、分桶将数据小粒度化,然后通过高并发的去并行计算相关小粒度分区或分桶文件。先分而治之存储,再通过多机资源高并发加速查询。(对高并发查询是否有和CK一样缺陷?) - 2.全面向量化执行引擎
简单叙述下全面向量执行引擎的优势:- 向量化数据处理:就是列存储比行级存储更加高效
- 批处理:批处理方式处理查询,而不是逐条处理,减少开销高效并行
- 谓词下推和过滤:能将谓词下推到存储层,减少数据量
- 内存策略,批量内存分配,减少了内存分配和释放的开销
- 3.存算分离
- 4.CBO 优化器
三、应用场景:
starRocks一般的定位都是实时数仓,它的应用场景和它的数据模型有着密不可分的关系。类似CK的引擎,starRocks也具备明细模型 (常用于存储历史数据,不更新数据业务场景)、聚合模型 (针对指标聚合的业务场景)、更新模型 (实时频繁更新业务场景)、主键模型(主键不重复,通过主键修改数据),四大模型使StarRocks支持更多的业务场景。
四、竞品对比:CK与starRocks
- 1.性能:
测试集:非官网的流量数据,上亿级别的单表与千万级的多张表。
资源:非SSD磁盘、128g内存、32核CPU
结果:
大单表:CK的导入、查询速率都是超过StarRocks的,但是后期集群数量的增加,StarRocks的查询速率得到了提升(感觉StarRocks的分布式调度能力比CK强)。
多表查询:starRocks的多表JOIN查询能力还是比CK有明显优势。 - 2.功能:
starRocks的功能还在迭代开发,其在函数与第三方组件支持上还有待进一步的发展。(更新速度还是可以的) - 3.运维:
这个维度是StarRocks碾压CK,节点弹性扩展、数据自动负载、副本自动修复、优秀的web-ui、Mysql语法等,让我这种运维+开发人员很是受用。
五、选型
小集群非联表还是CK,反之StarRocks