StarRocks 技术内幕:查询原理浅析

作者 康凯森 | StarRocks 核心研发、StarRocks 查询团队负责人 | 2022/04/26 15:46 | https://my.oschina.net/u/5658056/blog/5519656 一条查询 SQL 在关系型分布式数据库中的处理,通常需要经过 3 大步骤: 将 SQL 文本转换成一个 “最佳的” 分布式物理执行计划 将执行计划调度到计算节点 计算节点执行具体的物理执行计划 本文将详细解释在 StarRocks 中如何完成一条查询 SQL 的处理。 首先来了解 StarRocks 中的基本概念: FE: 负责查询解析,查询优化,查询调度和元数据管理 BE: 负责查询执行和数据存储 #01 从 SQL 文本到执行计划 从 SQL 文本到分布式物理执行计划,在 StarRocks 中,需要经过以下 5 个步骤: SQL Parse:将 SQL 文本转换成一个 AST(抽象语法树) SQL Analyze:基于 AST 进行语法和语义分析 SQL Logical Plan:将 AST 转换成逻辑计划 SQL Optimize:基于关系代数、统计信息、Cost 模型,对逻辑计划进行重写、转换,选择出 Cost “最低” 的物理执行计划 生成 Plan Fragment:将 Optimizer 选择的物理执行计划转换为 BE 可以直接执行

StarRocks-2.1.5 集群安装部署

StarRocks 是新一代的 MPP 数据库,它具有很高的查询性能,能够支持各种场景的数据查询分析使用,主要包含如下几个场景: OLAP多维分析 实时数据分析 高并发查询 统一分析 关于 StarRocks 更详细的介绍,可以查看官方文档,非常详细(见后面参考链接)。 下面,我们基于开源的 StarRocks 社区版,版本是 2.1.5 来进行集群的安装配置。StarRocks 集群的部署模式,采用 FE 与 BE 分离的模式。 集群部署规划 1 基础环境和软件 软件 版本 操作系统 CentOS-7.8 StarRocks 2.1.5 JDK jdk1.8.0_212 MySQL Client 5.7.37 2 集群主机规划 IP 地址 主机名称 角色 备注信息 172.168.0.1 VM-0-1-centos FE FE Master 172.168.0.2 VM-0-2-centos FE FE OBSERVER 172.168.0.3 VM-0-3-centos FE FE FOLLOWER 172.168.0.4 VM-0-4-centos BE BE 172.168.0.5 VM-0-5-centos BE BE 172.168.0.6 VM-0-6-centos BE BE 172.168.0.7 VM-0-7-centos BE BE 172.168.0.8 VM-0-8-centos BE BE 172.168.0.9 VM-0-9-centos BE BE 3 集群主机目录规划