一文速通 StarRocks 数据库:核心概念、架构与特性

Author: Xinyao Tian

概述

本文档简要梳理了 StarRocks 的基本信息。

简介 Introduction

StarRocks 是面向下个时代的,高性能的数据分析仓库。其提供了实时、多维度、高并发的数据分析能力。

StarRocks is a next-gen, high-performance analytical data warehouse that enables real-time, multi-dimensional, and highly concurrent data analysis.

特性 Features

StarRocks 具有如下功能特性 [1]:

  • 基于 MPP 架构 (Massively Parallel Processing architecture)

  • 完全向量化处理引擎 (Fully vectorized execution engine)

  • 列式存储 (columnar storage)

  • 实时更新 (real-time updates)

  • 完全可自定义的基于成本的优化器 (Fully-customized cost-based optimizer)

  • 智能物化视图 (Intelligent materialized view)

  • 丰富数据源的实时数据注入 (real-time data ingestion from a variety data sources)

  • 丰富数据源的批量数据注入 (batch data ingestion from a variety data sources)

  • 无数据迁移的数据湖分析 (Directly analyze data stored in data lakes with zero data migration)

  • 兼容 Mysql 客户端连接协议 (compatible with MySQL protocols)

  • 可扩展、高可用、易运维 (highly scalable, available, and easy to maintain)

  • 广泛应用于业界 OLAP 分析领域 (widely adopted in the industry with OLAP scenarios)

Fast-speed multi-table joins = MPP + fully vectorized engine + CBO + intelligent materialized view

架构 Architecture [2]

宏观架构

亮点:组件简单、可水平扩展、metadata 也有 replica 提供高可用 (metadata 被完整存储于每台 FE 的内存)

主要分工:

FE (ForntEnd) 负责元数据管理、客户端连接、查询计划、查询调度:

  • Leader:元数据的变更,并通过 BDE JE 协议将 metadata 同步至其他 FEs (Follower 和 Observer)

  • Follower:参与竞选并在内存中同步存储完整的 metadata

  • Observer:不参与选举的 Follower,仅作为性能扩展的 FE

BE (BackEnd) 主要负责数据存储和 SQL 执行和计算:

  • 数据存储:BEs 接受从 FEs 分配来的数据,并将数据按照指定格式写入,并生成 Index

  • SQL 执行:BEs 接收从 FEs 处理后的物理执行计划并将目标数据缓存并执行查询

数据管理架构

StarRocks 同时使用分区 (Partitioning) 和分桶 (Bucketing) 机制对数据进行管理,以增强查询的效率和并发度。

如下图所示,一张表被根据时间分为四个分区,同时第一个分区内又被分为了四个数据小块 (Data Tablet) 。每个数据小块又创建了三份备份 (Replica) 并被分别存储在不同的 BE 上。由于一张表被分解成了多个数据小块,因此 StarRocks 可以将一个 SQL 查询语句分派到多个物理节点上并行执行,从而最大化物理主机和处理器的计算能力,同时还可以提升服务的可用性。用户可以轻松地按需扩展物理主机从而获得更高的并发性能。

亮点:No Need for manual data redistribution (StarRocks 会自动根据新加入或删除的物理节点进行数据小块再分配,而不需要手动进行数据均衡。StarRocks 默认的 Replica 数量为 3)

常见应用场景 Scenarios

StarRocks 基于上述的架构和功能特性可以为我们在如下场景中解决诸多问题。

OLAP multi-dimensional analytics

StarRocks 的 MPP 架构配合向量执行引擎可以让用户在不同的 schemas 之间进行选择并开发多维度分析报告。主要的应用场景包括:

  • 用户行为分析 (User behavior analysis)

  • 用户画像、用户标签、标签分析 (User profiling, user tagging, label analysis)

  • 高纬度指标分析报告 (High-dimensional metrics report)

  • 自助数据仪表板 (Self-service dashboard)

  • 服务异常探测和分析 (Service anomaly probing and analysis)

  • 跨场景分析 (Cross-theme analysis)

  • 金融数据分析 (Financial Data analysis)

  • 系统监测分析 (System monitoring analysis)

Real-time analytics

StarRocks 使用主键表来进行实时更新。在 StarRocks 的 TB 级数据库的数据改变可以被在数秒内得到同步并用于搭建实时数据仓库。主要的应用场景包括:

  • 在线促销分析 (Online promotion analysis)

  • 物流跟踪和分析 (Logistics tracking and analysis)

  • 金融领域的性能分析和指标计算 (Performance analysis and metrics computation for the financial industry)

  • 在线直播的质量分析 (Quality analysis for livestreaming)

  • 广告放置位置分析 (Ad placement analysis)

  • 驾驶舱管理 (Cockpit management)

  • 应用性能管理 (Application Performance Management (APM))

High-concurrency analytics

StarRocks 借助高效的数据分布,灵活的 Index 和智能化物化视图来促进面向用户的高并发分析。主要的应用场景包括:

  • 广告商报告分析 (Advertiser report analysis)

  • 零售业渠道分析 (Channel analysis for the retail industry)

  • Saas 面向用户分析 (User-facing analysis for SaaS)

  • 多表仪表板分析 (Multi-tabbed dashboard analysis)

Unified analytics

StarRocks 提供了一致性的数据分析体验。

  • 一个系统提供了应对多种分析场景的能力,显著降低系统复杂度和总体采购成本 (TCO)

  • 提供了统一的数据湖和数据仓库接口。

核心机制与技术 Core Mechnism and Tech

StarRocks 使用了许多先进的技术为用户在大数据集的场景提供侵略如火般的实时分析体验。其核心技术如下所示,在此处暂不做原理的解释和说明。详情请参考 [3]。

  • MPP 架构 (MPP Framework): StarRocks 并行处理大规模数据的核心理论依据

  • 完全向量化的执行引擎 (Fully Vectorized Execution Engine)

  • 基于成本的优化器 (Cost-based Optimizer)

  • 实时的,可更新的列式存储引擎 (Real-time, updatable columnar storage engine)

  • 智能的物化视图 (Intelligent materialized view): 物化视图自动更新 (无需手动操作和人工介入) 且自动进行查询优化

  • 数据湖直连分析 (Data lake analytics): 通过 Catalog 达成湖仓直连无需转换或导数

References

  • [1] StarRocks DB 简介: https://docs.starrocks.io/en-us/latest/introduction/StarRocks_intro

  • [2] StarRocks 架构: https://docs.starrocks.io/en-us/latest/introduction/what_is_starrocks

  • [3] StarRocks 特性: https://docs.starrocks.io/en-us/latest/introduction/Features

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/176428.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

杂牌行车记录仪特殊AVI结构恢复案例

最近遇到一个杂牌的行车记录仪需要恢复数据,其使用AVI格式,但是在扫描恢复的过程中却发现厂家对其AVI结构进行了“魔改”致程序无法正常识别 故障存储:16G SD卡 fat32文件系统 故障现象: 16G的SD卡,在发生事故后客户尝试自行接到手机上读…

在 Visual Studio 中远程调试 C++ 项目

目录 一、说明二、下载远程工具1. 官网下载2. 自己电脑上拷贝 三、 运行远程工具四、本机Visual Studio配置五、自动部署 一、说明 参考官方文档:https://learn.microsoft.com/zh-cn/visualstudio/debugger/remote-debugging-cpp?viewvs-2022 二、下载远程工具 …

解决:http://localhost:8080 不在以下 request 合法域名列表中

在搭建资源服务器时,遇到了微信开发者工具中无法访问本地资源服务器的情况,报错如下: 参考一篇博文的方法,完美解决 【解决】http://localhost:8080 不在以下 request 合法域名列表中_localhost不在以下 request 合法域名列表中-…

Mac 解决 APP 快捷键冲突

打开 Mac 系统设置键盘->键盘快捷键->App快捷键->添加快捷键(加号)->标题需要和tab名称完全一致(包括中英文、标点符号等,如下图)设置快捷键即可 Reference: https://www.cnblogs.com/Questio…

Android开发,车载通讯应用——binder通讯原理解析

Binder简单理解 简单来说,Binder 就是用来Client 端和 Server 端通信的。并且 Client 端和 Server 端 可以在一个进程也可以不在同一个进程,Client 可以向 Server 端发起远程调用,也可以向Server传输数据(当作函数参数来传&#…

【element-ui】表格

效果展示 组件代码 <el-table class"compTableClass" ref"tableOOOOO":class"(className in tableConfig)?tableConfig.className:":data"tableConfig.data" :height"tableConfig.height" style"width: 100%"…

阿里发布AI编码助手:通义灵码,兼容 VS Code、IDEA等主流编程工具

今天是阿里云栖大会的第一天&#xff0c;相信场外的瓜&#xff0c;大家都吃过了。这里就不说了&#xff0c;有兴趣可以看看这里&#xff1a;云栖大会变成相亲现场&#xff0c;最新招婿鄙视链来了... 。 这里主要说说阿里还发布了一款AI编码助手&#xff0c;对于我们开发者来说…

selenium+python web自动化测试框架项目实战实例教程

自动化测试对程序的回归测试更方便。 由于回归测试的动作和用例是完全设计好的,测试期望的结果也是完全可以预料的,将回归测试自动运行... 可以运行更加繁琐的测试 自动化测试的一个明显好处就是可以在很短的时间内运行更多的测试。学习自动化测试最终目的是应用到实际项目中&…

通过shiro框架记录用户登录,登出及浏览器关闭日志

背景&#xff1a; 公司项目之前使用websocket记录用户登录登出日志及浏览器关闭记录用户登出日志&#xff0c;测试发现仍然存在问题&#xff0c; 问题一&#xff1a;当浏览器每次刷新时websocket其实是会断开重新连接的&#xff0c;因此刷新一下就触发记录登出的日志&#xff0…

C语言KR圣经笔记 2.11条件表达式 2.12优先级和求值顺序

2.11条件表达式 if (a > b) z a; else z b; 上面的语句计算 a 和 b 中的最大值并存入 z。而使用三元操作符 ? : 的条件表达式&#xff0c;为这个结构及类似结构提供了另一种写法。在如下表达式 expr1 ? expr2 : expr3 中&#xff0c;首先对 expr1 求值。如果值非0 …

验证链(CoVe)降低LLM中的幻觉10.31

验证链&#xff08;CoVE&#xff09;降低LLM中的幻觉 摘要1 引言2 相关工作3 验证链&#xff08;Chain-of-Verification&#xff09;3.1 生成基准回答3.2 计划验证3.3 执行验证3.4 最终验证的回答 4 实验&#xff08;直译&#xff09;4.1 任务4.1.1 WIKIDATA4.1.2 WIKI-CATEGOR…

ByteBuffer的原理和使用详解

ByteBuffer是字节缓冲区&#xff0c;主要用户读取和缓存字节数据&#xff0c;多用于网络编程&#xff0c;原生的类&#xff0c;存在不好用&#xff0c;Netty采用自己的ByteBuff&#xff0c;对其进行了改进 1.ByteBuffer的2种创建方式 1.ByteBuffer buf ByteBuffer.allocate(i…

mediapipe 训练自有图像数据分类

参考&#xff1a; https://developers.google.com/mediapipe/solutions/customization/image_classifier https://colab.research.google.com/github/googlesamples/mediapipe/blob/main/examples/customization/image_classifier.ipynb#scrollToplvO-YmcQn5g 安装&#xff1a…

【漏洞复现】酒店宽带运营系统RCE

漏洞描述 安美数字 酒店宽带运营系统 server_ping.php 远程命令执行漏洞 免责声明 技术文章仅供参考&#xff0c;任何个人和组织使用网络应当遵守宪法法律&#xff0c;遵守公共秩序&#xff0c;尊重社会公德&#xff0c;不得利用网络从事危害国家安全、荣誉和利益&#xff…

生成瑞利信道(Python and Matlab)

channel h k h_k hk​ is modeled as independent Rayleigh fading with average power loss set as 10^−3 Python import numpy as np# Set the parameters average_power_loss 1e-3 # Average power loss (10^(-3)) num_samples 1000 # Number of fading samples to …

1深度学习李宏毅

目录 机器学习三件事&#xff1a;分类&#xff0c;预测和结构化生成 2、一般会有经常提到什么是标签label&#xff0c;label就是预测值&#xff0c;在机器学习领域的残差就是e和loss​编辑3、一些计算loss的方法&#xff1a;​编辑​编辑 4、可以设置不同的b和w从而控制loss的…

Android Button修改背景颜色及实现科技感效果

目录 效果展示 实现科技感效果 修改Button背景 结语 效果展示 Android Button修改背景颜色及实现科技感效果效果如下&#xff1a; 实现科技感效果 操作方法如下&#xff1a; 想要创建一个富有科技感的按钮样式时&#xff0c;可以使用 Android 的 Shape Drawable 和 Sele…

CSS3表格和表单样式

在传统网页中&#xff0c;表格主要用于网页布局&#xff0c;因此也成为网页编辑的主要工具&#xff1b;在标准化网页设计中&#xff0c;表格的主要功能是显示数据&#xff0c;也可适当辅助结构设计。本章主要介绍如何使用CSS控制表格和表单的显示效果&#xff0c;如表格和表单的…

cortex-A7核UART总线

1.总线 各个部件之间传输一种媒介 2.串行总线 3.并行总线 4.同步和异步 同步&#xff1a; 异步&#xff1a; 5.ST-LINK仿真器连接方式 6.串口通信信息---异步串行全双工总线 串口配置信息8N1代表什么? 7.串口通讯协议

小米电视播放win10视频 win10共享问题

解决的方法就是安装SMB1.0协议 重启就OK了