第1.1章:StarRocks部署--源码编译

StarRocks在arm架构Linux服务器上的源码编译 阅读详情

StarRocks是鼎石科技基于Apache Doris(incubating) 0.13打造出的企业级国产数据库产品,目前已在Github开源:

GitHub - StarRocks/starrocks: StarRocks is a next-gen sub-second MPP database for full analytics scenarios, including multi-dimensional analytics, real-time analytics and ad-hoc query.

一、StarRocks特性

StarRocks是一款极速全场景MPP分析型数据库,可以“一栈式”的响应企业各类低延迟场景的查询需求。

为了对StarRocks有一个准确的认知,我们不妨将StarRocks概念的关键词逐项展开介绍:“极速”、“全场景”、“MPP”和“分析型数据库”。

  • 极速

StarRocks打造了原生向量化执行引擎,采用向量化技术,充分利用CPU的并行计算能力,在多维分析中实现亚秒级查询返回。StarRocks的向量化技术配合列式存储、智能物化视图和CBO查询优化器等诸多加速手段,实现较以往系统5-10倍的性能提升。

  • 全场景

StarRocks兼容MySQL协议,我们可以方便的使用各种客户端和BI工具来访问它。StarRocks可以灵活的满足多类数据分析需求,例如固定历史报表,实时数据分析,交互式数据分析和探索式数据分析等,让用户摆脱冗杂的技术栈。让数据分析不再需要做Cube,也不需要打成宽表,而是通过星型模型、雪花模型等进行多表关联灵活join,真正的“一栈式”解决数据分析难题。
 

  同时,StarRocks还具有强大的联邦查询能力,支持创建外部表直接访问来自Hive、MySQL和Elasticsearch的数据,而无需导入。

  • MPP架构

StarRocks使用现代化MPP(Massively Parallel Processing,大规模并行处理)架构,简单来说,StarRocks会将任务并行的分散到集群多个服务器节点上,在每个节点上计算完成后,将各自部分的结果汇总在一起得到最终的结果。这种架构下,StarRocks集群每个节点都有独立的磁盘存储系统和内存系统,业务数据根据数据库模型和应用特点划分到各个节点上,每台数据节点通过网络互相连接,彼此协同计算,作为整体提供数据库服务。StarRocks的现代化MPP架构保证了StarRocks具有可伸缩、高可用、高性能、高性价比、高容错、易运维等优势。

  • 分析型数据库

StarRocks的定位是OLAP分析型数据库,这也就是说它适合对大规模的数据进行多维度的查询分析,而不适合像OLTP类数据库(比如MySQL)一样对少量的数据进行大并发频繁的插入和修改。经过业界头部互联网公司的长期使用验证,StarRocks完全可以应对PB级别的结构化数据分析场景,查询时间一般可达到秒级或毫秒级。
 

二、StarRocks架构

StarRocks的架构很简洁,核心只有FE(Frontend)、BE(Backend)两类进程,不依赖外部组件,方便部署。同时,FE和BE都可以横向扩容,确保整个集群无单点,运维也非常省心。

 

针对上面的架构图,由上至下简单介绍几个基本概念:

  • Client

StarRocks没有自带客户端,推荐使用mysql-client进行访问。StarRocks兼容MySQL协议,所以我们可以使用任意的MySQL JDBC/ODBC客户端,例如SQLyog、DBeaver、Navicat等,将StarRocks视为MySQL进行连接访问。

  • FE

StarRocks的前端节点,使用Java语言编写,负责管理元数据,管理客户端连接,进行查询规划,查询调度等工作。准确来说,FE有两种角色:Follower和Observer,其中Follower会通过类raft的bdbje协议选主出一个Leader(实现选主需要集群中有半数以上的Follower实例存活),只有Leader会对元数据进行写操作。Observer和Follower的差别就是Observer不会参与选主。Observer同样不会进行任何的数据写入,只会参与读取,用来扩展集群的查询能力。每个FE节点都有一份完整的元数据,以此来达到元数据的高可用,保证单节点宕机的情况下,元数据能够实时地在线恢复,而不影响整个服务。

  • BE

StarRocks的后端节点,使用C++语言开发,负责数据存储,计算执行,以及compaction,副本管理等工作。StarRocks会将我们创建的表根据分区和分桶机制划分成多个Tablet多副本存储在不同BE节点上。这里的Tablet是StarRocks表的逻辑分片,也是StarRocks中副本管理的基本单位。

  • Broker

在上面的架构图中没有体现,它是StarRocks和外部HDFS/对象存储等外部数据对接的中转服务组件,辅助提供导入导出功能,可以视需求添加使用。Broker本身无状态,可以随意启停,不会影响集群。

三、StarRocks业务架构

在对StarRocks的架构有了基本的了解后,我们再简单介绍一下企业使用StarRocks时,大数据架构的整体设计。下图就是一个常见的大数据业务架构图,StarRocks在整个大数据架构中一般会处在比较靠上的位置,我们会将数据ETL后导入至StarRocks,而后提供给上层的各类业务系统进行展示和分析。

在这套架构中,Hadoop作为大数据存储和批量处理的行业标准,用于原始数据的落地和存储。Kafka用于支持实时数据的传输。Hive,Spark,Flink作为数据加工和处理的工具,将经过清洗和处理的明细数据导入StarRocks。根据业务对数据实时性的要求,我们既可以按照“T+1”的方式批量导入,也可以进行实时的导入。在StarRocks中对明细数据进行进一步的计算、聚合、建立物化视图等处理后,便可以直接提供给上层的各类线上业务系统。

上层应用可以根据自身需要,通过标准SQL语句直接查明细数据,或者查聚合数据。查询的灵活性完全由SQL语句来提供,不需要再额外开发其他用于数据处理的程序模块。

 

如果用户的数据规模不大,上图中的业务架构还可以进一步简化。比如我们就不用再搭建架构较重的Hadoop集群,也不需要再使用Flink等外部计算框架,而是直接使用Kafka作为缓冲,在外部数据进入Kafka后通过StarRocks自带的Routine Load流式拉取数据,来将所有的原始数据直接存放在StarRocks中。

同时,我们可以在StarRocks中使用insert into select配合物化视图构建上卷的模型,实现内部的ETL操作。这种简洁的架构可以极大的降低企业的运维成本,并且让企业的数据分析体系更加简单。

四、StarRocks数据生态

StarRocks拥有完备的数据生态,可以灵活的对接企业当前的数据架构,进行数据导入和数据迁移。当前社区提供了多种导入方式,我们可以根据数据源位置、数据量大小、导入频率等需求选择最适合自己业务需求的导入方式:

 StarRocks 目前主要提供了5种不同的导入方式来适配不同的数据导入需求。各导入方式的使用场景、数据源类型以及适合的数据规模等信息如下表,我们可以先有一个初步的认识:
 

 

 StarRocks 目前主要提供了5种不同的导入方式来适配不同的数据导入需求。各导入方式的使用场景、数据源类型以及适合的数据规模等信息如下表,我们可以先有一个初步的认识:

 

除表中的5种主要方式外,StarRocks还开发了Flink-Connector-StarRocks和DataX-StarRocksWriter数据导入插件,让我们可以对接更多类型的数据源完成数据的高效导入和迁移。

至此,我们已经对StarRocks有了基本的了解。接下来,我会用一系列的文章详细展开对StarRocks的介绍,让大家可以快速上手部署使用。
 

Starrocks开发环境搭建 阅读详情

相关推荐

【Starrocks】建表篇Fe源码解析

现在市面上主流的OLAP存算一体架构主要有两类进程:Frontend(FE)和Backend(BE) Frontend一般是用Java写的。主要职责有:Backend一般是用C++写的,主要职责有: 小节 核心服务启动 分别启动查询引擎服务(QeService)、Thrift服务(FrontendThriftServer)和HTTP服务(HttpServer),为用户提供MySQL协议、Thrift协议和HTTP协议的服务接口 QeService我理解应该是查询客户端一些sql请求,通过mysql ser

smallbag66666的博客 1588

第6.3章:ARM架构下手动编译StarRocks(拓展篇)

StarRocks已经完整的适配了ARM架构的服务器,目前官网提供的部署包是基于x86架构编译的,我们可以使用StarRocks的源码手动编译适用于ARM架构的二进制部署包。为了保证文档的通用性,我们使用Docker拉取CentOS 7.9的镜像来配置编译环境。下文中的编译操作理论上在RedHat系的系统中通用,也推荐使用红帽系的系统进行编译,Ubuntu系的几个系统在测试编译过程中出现过几个玄学报错,我暂时没有思路。首先需要说明的是,由于ARM还未支持SIMD指令集,StarRocks的向量化只能用上少部

流木的博客 5848

别再手动编译了!用Docker 5分钟搞定StarRocks 3.3.2单机版部署(附华为云镜像加速)

本文详细介绍了如何使用Docker在5分钟内快速部署StarRocks 3.3.2单机版,并利用华为云镜像加速提升下载速度。通过对比传统部署方式,展示了Docker在环境一致性、资源隔离和快速回滚方面的优势,提供了从镜像拉取到服务验证的完整实战指南,适合开发者和数据分析师快速搭建测试环境。

weixin_30357231的博客 525

第1.5章:StarRocks部署--集群部署

StarRocks作为新一代MPP数据库,集群部署才能充分发挥其彪悍的查询性能。生产环境下我们也推荐进行集群化部署,本章内容我们就模拟生产环境下StarRocks集群部署。 1集群部署注意事项 在部署StarRocks生产环境前,我们需要根据业务需求设计严谨的集群架构,一般来说,我们需要注意以下几项: 1.1 FE的数量及是否需要FE的高可用 FE的Follower要求为奇数个,且并不建议部署太多,通常我们推荐部署1个或3个Follower。在三个Follower时,即可实现高可用(HA)。此时,.

流木的博客 1万+

StarRocks BE启动失败?别急着查网络,先看看你的CPU是不是AVX2指令集

本文详细分析了StarRocks BE启动失败的常见原因,特别是由于CPU不支持AVX2指令集导致的问题。文章提供了诊断方法、解决方案(包括硬件升级和软件适配方案)以及预防措施,帮助用户快速定位并解决BE启动报错问题。

weixin_30333885的博客 433

FRM模型五:Brinson业绩归因

利用Brinson对基金组合业绩进行归因分析。

stonesssssss的博客 3003

从零到一:StarRocks源码编译与部署全攻略

你还在为分布式数据分析引擎的编译部署烦恼吗?环境配置复杂、依赖冲突、步骤繁琐?本文将带你一步解决StarRocks从源码到部署的全过程,读完你将掌握:Docker环境快速编译、手动部署完整流程、常见问题排查方法,让高性能分析引擎轻松落地。 ## 项目架构概览 StarRocks采用精简架构,主要由Frontend(FE)和Backend(BE)两个模块组成,通过FE与BE的无缝水平扩展及元数据...

gitblog_00864的博客 581

如何产生ATPG IR-drop分析波形文件(DFT)

摘要:本文介绍了生成VCD波形的流程与要求,主要用于后端进行IR-drop分析。生成过程分为ATPG shift和speed ATPG capture两部分,分别对应不同的输入要求、模式设置和仿真参数。

murphyrong的博客 870

StarRocks 编译安装与部署指南

StarRocks 从源码编译到集群部署的完整指南,涵盖环境准备、Docker编译、FE/BE/Broker配置、高可用部署、systemd服务管理及关键参数调优。

fly0512的博客 301

ArcGIS标注(二分式、三分式、条件分类标注、上下标、牵引线、文字格式化…)

ArcGIS中的各种标注方法、可能遇到的问题和细节。

m0_73306837的博客 5268

【Clickhouse从入门到精通】第51篇:ClickHouse权限管理体系详解

摘要 本文是ClickHouse权限管理系列文章的第51篇,重点解析ClickHouse RBAC权限体系中的GRANT/REVOKE机制。文章详细介绍了GRANT语句的基础语法与权限类型,包括SELECT、INSERT等常规权限以及WITH GRANT OPTION转授权功能。特别深入讲解了列级权限的实现方式,通过SELECT(col1,col2)语法实现字段粒度的访问控制,并展示了权限查询与验证方法。本文还对比了ClickHouse 20.4版本前后权限管理体系的差异,为构建安全的多租户数据平台提供了关

xyghehehehe的专栏 440

StarRocks编译构建:源码编译与打包部署

StarRocks作为一款高性能的分布式MPP(Massively Parallel Processing,大规模并行处理)数据库,其编译构建过程涉及多个组件和复杂的依赖关系。本文将详细介绍StarRocks的源码编译、打包和部署流程,帮助开发者快速上手构建自己的StarRocks环境。 ## 环境准备 ### 硬件要求 | 组件 | 最低要求 | 推荐配置 | |------|------...

gitblog_00519的博客 1117

瑞萨芯片串口配置,基于RL78芯片的串口使用配置

在这里隆重给大家介绍瑞萨编辑器CS+ for CA 的自动生成代码功能,只需要配置几个参数,就可以得到你想要的串口配置了,我现在已经忘记怎么手动配置寄存器了,哈哈。选择设置,此时将端口设置成功接下来设置时钟,根据自己的芯片所需设置相应的时钟,自己芯片是什么时钟查看数据手册和原理图可以找到。瑞萨芯片的串口配置其实和ST芯片的串口配置差不多,只是ST芯片的中文数据手册比较多,就更好配置了,找到所需要的串口配置IO口,此时将UART0 配置为引脚P61和P62,瑞萨芯片的串口配置竟然要配置串口。

qq_45315904的博客 4302

第4.0章:一键部署StarRocks单机版(拓展篇)

在一台有网络的装有Docker的服务器上,解压安装包:StarRocks-2.#.#-Oneclick.tar.gz,进入目录执行:./install.sh,等待2分钟左右,部署完成,Enjoy StarRocks! 可直接使用DBeaver、Navicat等工具将StarRocks视为MySQL访问,IP为宿主机IP,查询端口为9030,用户名root,初始密码为空。 可执行docker exec -it starrocks /bin/bash进入容器,部署目录为/opt/starrocks,

流木的博客 5204

麻雀搜索算法(SSA)详解:从鸟群智能到优化实践

麻雀搜索算法(SSA)是一种新型群智能优化算法,模拟麻雀群体的觅食行为和反捕食机制。该算法将优化问题转化为麻雀群体对食物源的搜索过程,通过发现者、加入者和警戒者的角色分工实现高效优化。SSA具有原理新颖、参数合理、收敛快速等特点,在函数优化、工程设计和机器学习等领域展现出良好应用前景。算法通过数学模型模拟麻雀的觅食策略,包括发现者全局探索、加入者局部开发和警戒者危险预警机制,有效平衡了全局搜索与局部开发能力。SSA相比传统优化算法具有更好的收敛性和优化效果。

qq_42212808的博客 1072

PCL RANSAC拟合空间圆【2026最新版】

RANSAC三维点云空间3D圆拟合。博客长期更新,本文最新更新时间为:2026年4月13日。代码在PCL1.15.0中测试通过

点云侠的博客 7454

StarRocks数据库部署全记录(保姆式帮助你初次体验StarRocks)

因业务需要,特此了解StarRocks产品和部署。 接触过程中发现指导资料很稀少,本人将结合官方的手册+其他开源博主指导,将第一次接触到的概念和部署流程梳理,得出本文。 已有的资源中对细节介绍欠缺,导致我本人整个过程中花费了大量时间去验证。这也是本文独特之处

Wyatt_zhai 5474

从零到一,打造你的无人机侦察兵!树莓派+Python+MQTT,实时目标检测全攻略

物联网、人工智能与计算机视觉三大前沿技术的深度融合。

u013558123的博客 1473

StarRocks运维篇:Nginx反向代理之StarRocks负载均衡(一)

Nginx反向代理实现StarRocks负载均衡

这个人很懒。 2257

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

StarRocks 无avx2 SSE指令集编译

针对国产CPU不支持avx2及SSE指令集编译,目前在海光U上测试运行正常,与常规CPU性能对比待补充。因fe是java语言的且不参与数据查询计算,不依赖CPU指令集,所以只需要编译be即可,fe用官方的相同版本即可。通过docker环境进行编译。

weixin_38751513的博客 611

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

10分钟上手StarRocks容器化:从Docker到Kubernetes的无缝部署方案

你是否还在为StarRocks分布式集群的部署繁琐而头疼?手动配置节点、协调依赖、解决环境冲突耗费大量时间?本文将带你通过容器化技术,实现StarRocks的一键部署与弹性扩展,无论是开发测试环境还是生产集群,都能轻松应对。读完本文你将掌握:Docker快速启动StarRocks开发环境、使用Docker Compose编排多节点集群、以及基于Kubernetes的生产级部署最佳实践。 Star...

gitblog_00614的博客 495

第1.4章:FE开发环境搭建(拓展篇)

StarRocks的FE是使用Java语言开发的,这里咱们使用IntelliJ IDEA在Windows下进行FE开发环境的搭建。以下演示过程中所用组件的版本信息如下: 工具名称 当前版本 版本要求 备注 IntelliJ IDEA IntelliJ IDEA 2020.3.4 不要过低 测试IntelliJ IDEA 2017.3.4无法正常运行

流木的博客 3782

StarRocks 如何在本地搭建存算分离集群

第三种方案看似可行,但也比较繁琐,由于 CN 给 docker compose 管理了,FE 要和 CN 网络打通也得在 docker compose 里运行,这样我 Debug 就不方便了,更别提如果需要频繁修改源码的情况。我们可以使用 Docker Bridge 创建一个虚拟网络,使用这个虚拟网络启动的镜像会自动分配自定义范围的 IP;启动一个 VM,但是还不如后面的 docker 来的轻量,此外还需要我安装运行环境,也 pass 了。这样这两个容器就会被分配不同的 IP,并且网络和宿主机也是互通的。

crossoverJie专栏 933

解锁StarRocks插件潜能:从开发到集成的全流程指南

你是否还在为数据分析引擎功能固定化而烦恼?StarRocks插件体系为你提供了灵活扩展的解决方案。本文将带你从零开始掌握插件开发全流程,包括环境搭建、核心API解析、实战案例与集成规范,最终实现自定义功能无缝融入StarRocks生态。 ## 插件体系架构概览 StarRocks采用分层插件架构,支持用户自定义函数(UDF)、用户自定义聚合函数(UDAF)及外部连接器等扩展类型。其核心优势在于...

gitblog_00353的博客 426
上一篇: 第0章:初识StarRocks
下一篇: 第1.2章:StarRocks部署--部署环境准备
wrr-cat
博客等级 码龄9年 128粉丝 302原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值