概述

定义

StarRocks 是 新一代极速全场景 MMP(Massively Parallel Processing) 数据库

StarRocks 是Linux 基金会项目,采用 Apache 2.0 许可证

架构

前端( FE) + 后端(BE 和 CN<计算节点>)

  • 水平可扩展
  • 具有元数据和服务数据副本机制,提高了数据可靠性,有效防止单点故障 (SPOF)

存算一体

  • FE 节点负责元数据管理、客户端连接管理、查询计划和查询调度。每个 FE 在其内存中存储和维护完整的元数据副本,确保每个 FE 都能提供无差别的服务
  • CN 节点在存算分离存算一体集群中负责执行查询
  • BE 节点在存算一体集群中负责数据存储和执行查询

存算分离架构

StarRocks 特性

StarRocks MPP

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指定唯一键。排序键和唯一键中的列需要保持一致,但是列的顺序不需要保持一致。

Reference