当前位置: 首页 > article >正文

极速全场景 MPP数据库starrocks介绍


目录

一、引子

二、起源

(一)前身

(二)定位

三、特点

(一)高性能架构

(二)实时分析

(三)高并发与扩展性

(四)兼容性与生态

四、架构

五、核心功能

六、同类型产品分析


一、引子

       官网:StarRocks | A High-Performance Analytical Database

       中文官网:StarRocks | StarRocks

       starrocks是我们最近几年才使用的,我们目前的组合是flink+paimon+starrocks。今天先说下starrocks,如有出入,欢迎批评指正。

       我们使用starrocks的目的主要是用来提高查询效率,因为其查询速度比较快。StarRocks 号称是新一代极速全场景 MPP (Massively Parallel Processing) 数据库。

二、起源

(一)前身

       原名 DorisDB,是基于 Apache Doris(原百度 Palo)分支优化而来,由鼎石科技团队维护,2021年正式更名为 StarRocks。

(二)定位

       解决传统 OLAP 系统在高并发、实时性、复杂查询等方面的瓶颈,提供一体化的实时分析解决方案。


    三、特点

    (一)高性能架构

    • MPP(大规模并行处理)架构:将查询任务分布式执行,充分利用集群资源。
    • 向量化执行引擎:通过 SIMD 指令批量处理数据,提升 CPU 利用率。
    • CBO(成本优化器):基于统计信息的智能查询优化,自动选择最优执行计划。
    • 列式存储:高效压缩数据,减少 I/O 开销,适合聚合查询。

    (二)实时分析

    • 秒级数据摄入:支持 Kafka、Flink 等实时数据接入,数据写入即可查。
    • 更新能力:支持 Upsert(Update+Insert)操作,适应频繁更新的场景(如用户行为分析)。

    (三)高并发与扩展性

    • 弹性扩缩容:计算与存储分离,可独立扩展节点,支持 PB 级数据。
    • 多副本机制:通过数据多副本保障高可用,自动故障恢复。

    (四)兼容性与生态

    • MySQL 协议兼容:可直接使用 MySQL 客户端或工具(如 BI 软件)连接。
    • 多数据源对接:支持 Hive、Iceberg、Hudi 等数据湖表,以及 Elasticsearch 联邦查询。
    • 物化视图:预计算加速高频查询,自动匹配最优视图。


    四、架构

         StarRocks 采用无状态架构,主要组件包括:

    1. FEFrontend
      • 负责元数据管理、查询解析、调度和优化。
      • 主从架构(Leader/Follower),通过 Berkeley DB 实现元数据高可用。
    2. BEBackend
      • 数据存储与计算节点,处理查询执行和数据压缩。
      • 数据按分片(Tablet)分布式存储,支持多副本。
    3. Broker(可选):
      • 用于访问外部存储系统(如 HDFS、S3)。

    五、核心功能

    • 实时数据写入:支持 Stream Load、Routine Load 等方式实时导入数据。
    • 复杂查询优化:高效执行多表 JOIN、子查询、窗口函数等复杂 SQL。
    • 资源隔离:通过资源组(Resource Group)限制查询资源,避免大查询影响线上业务。
    • 数据湖分析:直接查询 Hive、Iceberg 等外部表,无需数据迁移。

      六、同类型产品分析

      特性

      StarRocks

      ClickHouse

      Apache Doris

      实时更新

      支持 Upsert

      仅追加

      支持

      高并发

      支持数千 QPS

      低并发

      中等并发

      复杂查询优化

      CBO 优化器

      较弱

      基于规则优化

      生态兼容性

      多数据源、MySQL 协议

      需定制开发

      类似 StarRocks

      相关文章:

      极速全场景 MPP数据库starrocks介绍

      目录 一、引子 二、起源 (一)前身 (二)定位 三、特点 (一)高性能架构 (二)实时分析 (三)高并发与扩展性 (四)兼容性与生态 …...

      RS232转Profinet网关技术,检漏仪新篇章!

      RS232转Profinet网关技术,检漏仪新篇章! 在现代医疗监控系统中,RS232转PROFINET网关扮演着至关重要的角色。这种转换设备能够将传统的RS232串行通讯接口无缝转换为PROFINET以太网通信接口,确保老旧设备与现代自动化系统之间的顺畅…...

      Linux操作系统7- 线程同步与互斥7(RingQueue环形队列生产者消费者模型改进)

      上篇文章:Linux操作系统7- 线程同步与互斥6(POSIX信号量与环形队列生产者消费者模型)-CSDN博客 本篇代码仓库:myLerningCode/l36 橘子真甜/Linux操作系统与网络编程学习 - 码云 - 开源中国 (gitee.com) 目录 一. 单生产单消费单保…...

      景区导游--LCA+树上前缀和

      关键就是删点少删边&#xff0c;只删有关的边 LCA找最近祖先&#xff0c;树上前缀和记&#xff0c;画图找公式&#xff0c;特殊情况为删第一和最后 sum和前缀和开ll #include<bits/stdc.h> using namespace std; #define N 100011 typedef long long ll; typedef pair…...

      将 Markdown 表格结构转换为Excel 文件

      在数据管理和文档编写过程中&#xff0c;我们经常使用 Markdown 来记录表格数据。然而&#xff0c;Markdown 格式的表格在实际应用中不如 Excel 方便&#xff0c;特别是需要进一步处理数据时。因此&#xff0c;我们开发了一个使用 wxPython 的 GUI 工具&#xff0c;将 Markdown…...

      OpenAI流式解析

      OpenAI 流式的代码&#xff1a; 首选一般请使用os.getenv 去读环境变量的内容 注意使用pip install python-dotenv 的安装方法 load_dotenv 是这个库提供的一个函数&#xff0c;用于读取 .env 文件并将其中定义的键值对设置为系统的环境变量。 默认情况下&#xff0c;load_…...

      Java动态生成Word终极指南:poi-tl与Aspose.Words性能对比及选型建议

      在Java中实现复杂文档生成&#xff08;如合同、报表&#xff09;时&#xff0c;poi-tl、Aspose.Words 和 docx4j 是三个主流的模板技术方案。以下是它们的核心对比和选型建议&#xff1a; 1. poi-tl&#xff08;基于Apache POI的模板引擎&#xff09; 定位&#xff1a;轻量级开…...

      微信小程序逆向开发

      一.wxapkg文件 如何查看微信小程序包文件&#xff1a; 回退一级 点击进入这个目录 这个就是我们小程序对应的文件 .wxapkg概述 .wxapkg是微信小程序的包文件格式&#xff0c;且其具有独特的结构和加密方式。它不仅包含了小程序的源代码&#xff0c;还包括了图像和其他资源文…...

      Spring Data审计利器:@LastModifiedDate详解!!!

      &#x1f552; Spring Data审计利器&#xff1a;LastModifiedDate详解&#x1f525; &#x1f31f; 简介 在数据驱动的应用中&#xff0c;记录数据的最后修改时间是常见需求。Spring Data的LastModifiedDate注解让这一过程自动化成为可能&#xff01;本篇带你掌握它的核心用法…...

      wms窗口/多窗口/自由窗口systemui侧边栏手势退出实战-学员作业

      背景&#xff1a; 再学习了马哥的分屏自由窗口专题课程时候&#xff0c;有一个需求就是实现自由窗口置顶的功能&#xff0c;这个需求实现后&#xff0c;自由窗口就会一直处于顶端&#xff0c;不会因为打开其他Activity导致自由窗口退出。 不会因为打开了其他Activity而导致短…...

      树莓派超全系列文档--(11)RaspberryOS上使用 Python控制GPIO

      RaspberryOS上使用 Python控制GPIO 使用 Python 控制 GPIOLED 控制读取按键状态使用按钮控制LED 文章来源&#xff1a; http://raspberry.dns8844.cn/documentation 原文网址 使用 Python 控制 GPIO 使用 GPIO Zero 库可以轻松地用 Python 控制 GPIO 设备。该库在 gpiozero.…...

      服装零售行业数据分析方案

      在数据洪流的时代&#xff0c;大数据分析已成为服装产业的强大引擎&#xff0c;助力企业飞速提升运营效率&#xff0c;削减成本&#xff0c;并优化资源配置。在服饰行业的生产运营链中&#xff0c;商业智能&#xff08;BI&#xff09;工具扮演着至关重要的角色&#xff0c;它们…...

      构建高可用性西门子Camstar服务守护者:异常监控与自愈实践

      在智能制造领域,西门子Camstar作为领先的MES系统承载着关键生产业务。但在实际运维中,我们发现其服务常因数据库负载激增(如SQL阻塞链超时)或应用服务器资源耗尽(CPU峰值达90%以上)导致服务不可用。传统人工干预方式平均故障恢复时间长达47分钟,这对连续生产场景构成了严…...

      基于大模型的pc版语音对话问答

      Vosk基础知识&#xff1a; Vosk 是一个强大的开源语音识别工具包&#xff0c;以下是对它的详细介绍&#xff1a; 特点 离线识别&#xff1a;Vosk 的显著特点是支持离线语音识别。这意味着在没有网络连接的情况下&#xff0c;也能进行语音识别操作&#xff0c;避免了因网络问…...

      深入理解 Linux 内核中的 GPU 子系统:从 DRM 到 NXP 驱动架构全解读

      本文不仅为 GPU 子系统的深入复习笔记&#xff0c;更是一本面向 Linux 内核开发者、嵌入式图形系统开发人员的实践指南。本文围绕 drivers/gpu 展开&#xff0c;特别聚焦 NXP i.MX 系列平台的 GPU 架构和 Linux-imx 的实现方式&#xff0c;内容超 5000 字&#xff0c;适合收藏学…...

      Go 语言标准库中path模块详细功能介绍与示例

      Go语言的 path 模块提供了处理斜杠分隔路径的通用方法&#xff0c;适用于跨平台路径操作&#xff08;如 URL 路径或 Unix 风格路径&#xff09;。以下是 path 模块的核心方法及示例说明&#xff1a; 1. path.Base 返回路径的最后一个元素&#xff08;类似 Unix 的 basename 命…...

      鸿蒙NEXT开发App相关工具类

      import bundleManager from ohos.bundle.bundleManager; import { KeyboardAvoidMode, window } from kit.ArkUI; import { common, ConfigurationConstant } from kit.AbilityKit;/*** App相关工具类(使用该工具前请在UIAbility的onWindowStageCreate方法中调用AppUtil的init方…...

      Kafka 的高可用性

      Kafka 的高可用性主要通过副本机制、ISR&#xff08;In-Sync Replicas&#xff09;列表和控制器 Broker 来实现。这些机制共同确保了 Kafka 集群在部分节点故障时仍然可以正常运行&#xff0c;数据不会丢失&#xff0c;并且服务不会中断。 1. 副本机制 Kafka 的副本机制是其高…...

      docker 部署 postgresql 切换用户

      ① 启动容器 docker run -d --name postgres-e POSTGRES_PASSWORDpostgres-p 5432:5432 postgres su - omm gsql -d postgres -p 5432 # 将会在postgres下创建用户test1&#xff0c;在其他数据库下是无法删除此用户 CREATE USER test1 WITH Sysadmin IDENTIFIED BY Zcxzhf175…...

      Allegro界面颜色改变设置

      概述&#xff1a;本文主要讲解如何改变allegro的背景颜色&#xff0c;改为自己喜欢的颜色 1、 打开Allegro文件 2、 Setup—User Preference—UI—General—Allegro_theme选择Light即可 改变前 改变后...

      【log4j】配置Slf4j

      配置Slf4j 引入lombok包 <dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.36</version><scope>provided</scope> </dependency>引入log4j相关api <dependency…...

      ThreadLocal与Cookie + Session?

      这篇文章主要在做 Echo 社区项目的时候写的&#xff0c;在保持用户登录态的这个需求下&#xff0c;为啥要用 ThreadLocal 存储用户信息&#xff0c;而不是采用常见的 Cookie Session。 Cookie Session 由于 HTTP 协议是无状态的&#xff0c;完成操作关闭浏览器后&#xff0c;…...

      freecad手动装插件 add on

      python工作台输入 FreeCAD.ConfigGet("UserAppData") 在返回的地址上新建文件夹&#xff1a;Mod #like /home/chen/snap/freecad/common 进入Mod #like /home/chen/snap/freecad/common/Mod git clone 你要的项目 #like git clone https://github.com/looooo/f…...

      【算法】二分查找(下)

      一、山峰数组的峰顶索引 题目链接&#xff1a;852. 山脉数组的峰顶索引 - 力扣&#xff08;LeetCode&#xff09; 题目描述&#xff1a; 给定一个长度为 n 的整数 山脉 数组 arr &#xff0c;其中的值递增到一个 峰值元素 然后递减。 返回峰值元素的下标。 你必须设计并实现时…...

      【动手学深度学习】#6 卷积神经网络

      主要参考学习资料&#xff1a; 《动手学深度学习》阿斯顿张 等 著 【动手学深度学习 PyTorch版】哔哩哔哩跟李牧学AI 由于本系列一开始跳过了第一章引言部分&#xff0c;因此系列编号比书本章节编号提前。现改为和书本统一&#xff08;因为之前自己的原始笔记也是按照书本章节编…...

      认识一家公司:瑞芯微(Rockchip Electronics Co., Ltd.)以及旗下的两款芯片RK3288\RK3588

      瑞芯微&#xff08;Rockchip Electronics Co., Ltd.&#xff09;简介 一、公司概况 瑞芯微电子股份有限公司&#xff08;简称“瑞芯微”&#xff09;成立于2001年&#xff0c;总部位于中国福建省福州市&#xff0c;是一家专注于集成电路设计与研发的高新技术企业。公司采用Fa…...

      爬虫面试题

      总结一下最近面试遇到的笔试题 1、解释Python中的init方法的作用。 在Python中&#xff0c;__init__方法是一种特殊的构造方法&#xff0c;主要用于在创建类的实例时初始化对象。至少接受至少一个参数&#xff1a;self,它是对当前实例的引用&#xff0c;可以通过添加其他参数…...

      Netty——零拷贝

      文章目录 1. 什么是零拷贝&#xff1f;2. 为什么需要零拷贝&#xff1f;2.1 传统 I/O 的拷贝流程2.2 零拷贝的优化2.2.1 通过 sendfile 系统调用2.2.2 通过 mmap (内存映射) 系统调用 3. Netty 实现零拷贝的方式3.1 文件传输优化&#xff1a;FileRegion 封装3.2 直接内存 (Dire…...

      Java制作简单的聊天室(复习)

      设计的知识点&#xff1a;几乎包含java基础的全部知识点&#xff08;java基础语法&#xff0c;java基础进阶&#xff1a;双列集合&#xff0c;io流&#xff0c;多线程&#xff0c;网络编程等&#xff09; 代码如下 客户端&#xff1a; 服务器采用的时多线程的循环多线程的方式…...

      ES 字段的映射定义了字段的类型及其行为

      在 Elasticsearch 中&#xff0c;字段的映射定义了字段的类型及其行为。你提供的 content_answer 字段映射如下&#xff1a; Json 深色版本 "content_answer": { "type": "text", "fields": { "keyword": { …...