目录
一、引子
二、起源
(一)前身
(二)定位
三、特点
(一)高性能架构
(二)实时分析
(三)高并发与扩展性
(四)兼容性与生态
四、架构
五、核心功能
六、同类型产品分析
一、引子
官网:StarRocks | A High-Performance Analytical Database
中文官网:StarRocks | StarRocks
starrocks是我们最近几年才使用的,我们目前的组合是flink+paimon+starrocks。今天先说下starrocks,如有出入,欢迎批评指正。
我们使用starrocks的目的主要是用来提高查询效率,因为其查询速度比较快。StarRocks 号称是新一代极速全场景 MPP (Massively Parallel Processing) 数据库。
二、起源
(一)前身
原名 DorisDB,是基于 Apache Doris(原百度 Palo)分支优化而来,由鼎石科技团队维护,2021年正式更名为 StarRocks。
(二)定位
解决传统 OLAP 系统在高并发、实时性、复杂查询等方面的瓶颈,提供一体化的实时分析解决方案。
三、特点
(一)高性能架构
- MPP(大规模并行处理)架构:将查询任务分布式执行,充分利用集群资源。
- 向量化执行引擎:通过 SIMD 指令批量处理数据,提升 CPU 利用率。
- CBO(成本优化器):基于统计信息的智能查询优化,自动选择最优执行计划。
- 列式存储:高效压缩数据,减少 I/O 开销,适合聚合查询。
(二)实时分析
- 秒级数据摄入:支持 Kafka、Flink 等实时数据接入,数据写入即可查。
- 更新能力:支持 Upsert(Update+Insert)操作,适应频繁更新的场景(如用户行为分析)。
(三)高并发与扩展性
- 弹性扩缩容:计算与存储分离,可独立扩展节点,支持 PB 级数据。
- 多副本机制:通过数据多副本保障高可用,自动故障恢复。
(四)兼容性与生态
- MySQL 协议兼容:可直接使用 MySQL 客户端或工具(如 BI 软件)连接。
- 多数据源对接:支持 Hive、Iceberg、Hudi 等数据湖表,以及 Elasticsearch 联邦查询。
- 物化视图:预计算加速高频查询,自动匹配最优视图。
四、架构
StarRocks 采用无状态架构,主要组件包括:
- FE(Frontend):
- 负责元数据管理、查询解析、调度和优化。
- 主从架构(Leader/Follower),通过 Berkeley DB 实现元数据高可用。
- BE(Backend):
- 数据存储与计算节点,处理查询执行和数据压缩。
- 数据按分片(Tablet)分布式存储,支持多副本。
- Broker(可选):
- 用于访问外部存储系统(如 HDFS、S3)。
五、核心功能
- 实时数据写入:支持 Stream Load、Routine Load 等方式实时导入数据。
- 复杂查询优化:高效执行多表 JOIN、子查询、窗口函数等复杂 SQL。
- 资源隔离:通过资源组(Resource Group)限制查询资源,避免大查询影响线上业务。
- 数据湖分析:直接查询 Hive、Iceberg 等外部表,无需数据迁移。
六、同类型产品分析
特性 | StarRocks | ClickHouse | Apache Doris |
实时更新 | 支持 Upsert | 仅追加 | 支持 |
高并发 | 支持数千 QPS | 低并发 | 中等并发 |
复杂查询优化 | CBO 优化器 | 较弱 | 基于规则优化 |
生态兼容性 | 多数据源、MySQL 协议 | 需定制开发 | 类似 StarRocks |