概述
定义
StarRocks 是 新一代极速全场景 MMP(Massively Parallel Processing) 数据库
StarRocks 是Linux 基金会项目,采用 Apache 2.0 许可证
架构
前端( FE) + 后端(BE 和 CN<计算节点>)
- 水平可扩展
- 具有元数据和服务数据副本机制,提高了数据可靠性,有效防止单点故障 (SPOF)
- FE 节点负责元数据管理、客户端连接管理、查询计划和查询调度。每个 FE 在其内存中存储和维护完整的元数据副本,确保每个 FE 都能提供无差别的服务
- CN 节点在存算分离或存算一体集群中负责执行查询
- BE 节点在存算一体集群中负责数据存储和执行查询
StarRocks 特性
SR 采用 MMP(Massively Parallel Processing) 分布式执行框架。在 MPP 执行框架中,一条查询请求会被拆分成多个物理计算单元,在多机并行执行。每个执行节点拥有独享的资源(CPU、内存)。MPP 执行框架能够使得单个查询请求可以充分利用所有执行节点的资源,所以单个查询的性能可以随着集群的水平扩展而不断提升。
应用场景
- OLAP
- 实时数仓
- 高并发查询
表
主键表 (Primary Key table) | 明细表 (Duplicate Key table) | 聚合表 (Aggregate table) | 更新表 (Unique Key table) | |
---|---|---|---|---|
Key 列和唯一约束 | 主键PRIMARY KEY具有唯一约束和非空约束。 | DUPLICATE KEY不具有唯一约束。 | 聚合键AGGREGATE KEY具有唯一约束。 | 唯一键UNIQUE KEY具有唯一约束。 |
Key 列和数据变更的关系(逻辑关系) | 如果新数据的主键值与表中原数据的主键值相同,则存在唯一约束冲突,此时新数据会替代原数据。 与更新表相比,主键表增强了其底层存储引擎,已经可以取代更新表。 | Duplicate Key不具有唯一约束,因此如果新数据的 Duplicate Key 与表中原数据相同,则新旧数据都会存在表中。 | 如果新数据与表中原数据存在唯一约束冲突,则会根据聚合键和 Value 列的聚合函数聚合新旧数据。 | 如果新数据与表中原数据存在唯一约束冲突,则新数据会替代原数据。 更新表实际可以视为聚合函数为 replace 的聚合表。 |
Key 列和排序键的关系 | 自 3.0.0 起,主键表中两者解耦。主键表支持使用ORDER BY指定排序键和使用PRIMARY KEY指定主键。 | 自 3.3.0 起,明细表支持使用ORDER BY指定排序键,如果同时使用ORDER BY和DUPLICATE KEY,则DUPLICATE KEY无效。 | 自 3.3.0 起,聚合表中两者解耦。聚合表支持使用ORDER BY指定排序键和使用AGGREGATE KEY指定聚合键。排序键和聚合键中的列需要保持一致,但是列的顺序不需要保持一致。 | 自 3.3.0 起,更新表中两者解耦。更新表支持使用ORDER BY指定排序键和使用UNIQUE KEY指定唯一键。排序键和唯一键中的列需要保持一致,但是列的顺序不需要保持一致。 |