You need to enable JavaScript to run this app.
导航

概述

最近更新时间2023.10.25 16:58:44

首次发布时间2023.01.04 10:47:03

StarRocks 是新一代极速全场景 MPP (Massively Parallel Processing) 数据库。StarRocks 的愿景是能够让用户的数据分析变得更加简单和敏捷。用户无需经过复杂的预处理,就可以用 StarRocks 来支持多种数据分析场景的极速分析。
StarRocks 架构简洁,采用了全面向量化引擎,并配备全新设计的 CBO (Cost Based Optimizer) 优化器,查询速度(尤其是多表关联查询)远超同类产品。
StarRocks 能很好地支持实时数据分析,并能实现对实时更新数据的高效查询。StarRocks 还支持现代化物化视图,进一步加速查询。
使用 StarRocks,用户可以灵活构建包括大宽表、星型模型、雪花模型在内的各类模型。
StarRocks 兼容 MySQL 协议,支持标准 SQL 语法,易于对接使用,全系统无外部依赖,高可用,易于运维管理。StarRocks 还兼容多种主流 BI 产品,包括 Tableau、Power BI、FineBI 和 Smartbi。

StarRocks 产品特性

MPP分布式执行框架

StarRocks 采用 MPP (Massively Parallel Processing) 分布式执行框架。在 MPP 执行框架中,一条查询请求会被拆分成多个物理计算单元,在多机并行执行。每个执行节点拥有独享的资源(CPU、内存)。MPP 执行框架能够使得单个查询请求可以充分利用所有执行节点的资源,所以单个查询的性能可以随着集群的水平扩展而不断提升。

全面向量化执行引擎

StarRocks 通过实现全面向量化引擎,充分发挥了 CPU 的处理能力。全面向量化引擎按照列式的方式组织和处理数据。StarRocks 的数据存储、内存中数据的组织方式,以及 SQL 算子的计算方式,都是列式实现的。按列的数据组织也会更加充分的利用 CPU 的 Cache,按列计算会有更少的虚函数调用以及更少的分支判断从而获得更加充分的 CPU 指令流水。
另一方面,StarRocks 的全面向量化引擎通过向量化算法充分的利用 CPU 提供的 SIMD(Single Instruction Multiple Data)指令。这样 StarRocks 可以用更少的指令数目,完成更多的数据操作。经过标准测试集的验证,StarRocks的全面向量化引擎可以将执行算子的性能,整体提升 3~10 倍。

CBO 优化器

StarRocks 从零设计并实现了一款全新的,基于代价的优化器 CBO(Cost Based Optimizer)。该优化器是 Cascades Like 的,在设计时,针对 StarRocks 的全面向量化执行引擎进行了深度定制,并进行了多项优化和创新。该优化器内部实现了公共表达式复用,相关子查询重写,Lateral Join,Join Reorder,Join 分布式执行策略选择,低基数字典优化等重要功能和优化。目前,该优化器已可以完整支持 TPC-DS 99 条 SQL 语句。

可实时更新的列式存储引擎

StarRocks 实现了列式存储引擎,数据以按列的方式进行存储。通过这样的方式,相同类型的数据连续存放。一方面,数据可以使用更加高效的编码方式,获得更高的压缩比,降低存储成本。另一方面,也降低了系统读取数据的 IO 总量,提升了查询性能。此外,在大部分 OLAP 场景中,查询只会涉及部分列。相对于行存,列存只需要读取部分列的数据,能够极大地降低磁盘 IO 吞吐。

智能的物化视图

StarRocks 支持用户使用物化视图进行查询加速。不同于一些同类产品的物化视图需要异步和原表做数据同步,StarRocks 的物化视图可以自动根据原始表更新数据。只要原始表数据发生变更,物化视图的更新也同步完成,不需要额外的维护操作就可以保证物化视图能够维持与原表一致。不仅如此,物化视图的选择也是自动进行的。StarRocks 在进行查询规划时,如果有合适的物化视图能够加速查询,那么 StarRocks 能够自动的将查询改写,使用合适的物化视图来加速用户的查询请求。

数据湖分析

StarRocks 不仅能高效的分析本地存储的数据,也可以作为计算引擎直接分析数据湖中的数据,支持包括 Apache Hive、Apache Iceberg、Apache Hudi 等数据组织结构,支持 Parquet、ORC、CSV 等文件格式,也支持 HDFS、S3、OSS 等存储方式。

架构组件说明

  • FE: StarRocks的前端接入节点,集群元数据存储在FE中的Catalog中,FE负责接收SQL,解析SQL,进行优化,并产生对应的执行计划,提交执行计划给BE,由BE负责任务的具体执行。

  • BE: StarRocks的后端执行节点,负责具体SQL任务执行,BE节点会在本地存储数据,也可以访问远端存储,例如HDFS/S3,获取对应表数据,进行计算。

更多信息可以参考StarRocks官网