什么是StarRocks?
StarRocks是新一代极速全场景MPP数据库(高并发数据库)。
StarRocks充分吸收关系型OLAP数据库和分布式存储系统在大数据时代的优秀研究成果。
1.可以在Spark和Flink里面处理数据,然后将处理完的数据写到StarRocks里面。
2.可以实现将数据从Hadoop倒入到StarRocks里面去,也可以将StarRocks的数据倒入到Hadoop里面,都是可以实现的。
3.可以对接ES数据库(ElasticSearch)。
4.StarRocks兼容MySQL的协议,可以通过 MySQL的客户端 和 常用BI工具 对接StarRocks来进行数据分析。
5.StarRocks采用分布式架构,对数据表进行水平划分并且以多副本存储,集群规模可以灵活伸缩,能够支持10PB级别的数据分析,支持MPP框架,并行加速计算,支持多副本,具有弹性容错能力。
StarRocks适合什么场景?
1.OLAP多维分析:用户行为分析,用户画像,财务报表,系统监控分析。
2.实时数据分析:电商数据分析,直播质量分析,物流运单分析,广告投放分析。
3.高并发查询:广告主表分析,Dashboard多页面分析。
4.统一分析:通过使用一套系统解决上述场景,降低系统复杂度和多技术栈开发成本。
StarRocks基本概念:
1.FE:FrondEnd是StarRocks的前端节点,负责管理元数据,负责与客户端连接,进行查询规划,查询调度等工作。
2.BE:BackEnd时StarRocks的后端节点,负责数据存储,计算执行,以及Compaction,副本管理等工作。
3.Broker:Broker并不是必须出现的,当StarRocks和HDFS进行交互的时候(也就是数据从HDFS到StarRocks中 和 数据从StarRocks中到HDFS里面),那么StaRocks负责这个过程的中转服务,辅助提供导入导出功能。
4.StarRocksManager:StarRocks的可视化工具,提供StarRocks的集群管理,在线查询,故障查询,监控报警的可视化工具。
5.Tablet:StarRocks中表的逻辑分片,也是StarRocks中副本管理的基本单位,每个表根据分区和分桶机制被划分成多个Tablet存储在不同BE节点上。
StarRocks系统架构:
FE:
1.接受MySQL客户端的连接,解析并且执行SQL语句。
2.管理元数据,执行SQL DDL命令,用CataLog记录库,表,分区,tablet副本等信息。
3.FE高可用部署,使用 复制协议选主 和 主从同步 元数据,所有的元数据修改操作,都有FE的leader节点完成,FE的follower节点可执行读操作。元数据的读写满足顺序一致性,FE的节点数目采用2n+1,可以容忍n个节点故障,当FE leader故障的时候,可以从现有的follower节点中重新选主,完成故障切换。
4.FE中的SQL Layer对用户提交的SQL进行解析,分析,改写,语义分析和关系代数优化,生产逻辑执行计划。
5.FE中的Planner负责把逻辑计划转化为可分布式执行的物理计划,分发给一组BE。
6.FE监督BE,管理BE的上下线,根据BE的存活和健康状态,维持tablet副本的数量。
7.FE协调数据导入,保证数据导入的一致性。
BE:
1.BE管理tablet副本,tablet时table经过分区分桶形成的子表,采用列式存储。
2.BE受FE指导,创建或删除子表。
3.BE接收FE分发的物理执行计划并指定BE coordinator节点,在BE coordinator的调度下,与其他BE worker共同协作完成执行。
4.BE读本地的列存储引擎获取数据,并通过索引和谓词下沉快速过滤数据。
5.BE后台执行compact任务,减少查询时的读放大。
6.数据导入的时候,由FE指定BE coordinator,将数据以fanout的形式写入到tablet多副本所在的BE上。