StarRocks详解

什么是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上。

StarRocks为什么快:

列式存储:StarRocks中,一张表的列可以分为维度列(key列)和指标列(value列),维度列用于分组和排序,指标列可通过聚合函数等累加起来。StarRocks可以认为是多维的key到多维指标的映射。(在写SQL的时候最好要根据表的前缀,类似于MySQL的索引最左前缀原则)

稀疏索引:当进行范围查询时,StarRocks能够快速定位到起始目标行,是因为shortkey index(稀疏索引)。

预先聚合:StarRocks支持聚合模型,维度列取值相同数据行可合并一行,合并后数据行的维度列取值不变,指标列的取值为这些数据行的聚合结果,用户需要给指标列指定聚合函数,通过预先聚合,可以加速聚合操作。

分区分桶:StarRocks的表被分为tablet,每个tablet多副本冗余存储在BE上,BE和tablet的数量可以根据计算资源和数据规模而弹性伸缩,查询时,多台BE可并行地查找tablet快速获取数据。而且tablet的副本可以复制和前一,增强了数据的可靠性,避免了数据倾斜。

列级别的索引技术:Bloomfilter可以快速判断数据块中不含所查找值,ZoneMap通过数据范围快速过滤待查找值,Bitmap索引可快速计算出枚举类型的列满足一定条件的行。

StarRocks的4种表模型:

明细模型(Duplicate key):关注历史数据。

聚合模型(Aggregate key):关注总量,平均值,最大值,最小值,计算一个统一的指标。

更新模型(Unique key):设定一个主键(uid),主键是唯一的,如果主键是第一次出现在表中,那么执行插入操作,如果主键第二次出现在表中,那么执行更新操作,覆盖前一条记录。(并不是真的覆盖,其实也存着明细数据,只是将最新的一条记录返回)

主键模型(Primary key):主键模型相当于是更新模型的升级版,速度更快一些。更新模型采用Merge on Read读时合并策略会大大限制查询功能,在主键模型更好地解决了行级的更新操作。配合Flink-connector-starrocks可以完成MySQL CDC实时同步的方案。存储引擎会为主键建立索引,导入数据时会把索引加载到内存中,所以主键模型对内存的要求更高。真正保证每个主键只有一条数据存在。

各自适用场景:

1.明细模型:

关注历史明细数据。

2.聚合模型:建表的时候注意设置分组键( distributed by hash(site_id) )

业务方进行查询为汇总类查询,比如sum,count,max。

不需要查看明细数据。

老数据不会被频繁修改,只会追加和新增。

3.更新模型:建表的时候注意UNIQUE KEY(create_time,order_id)

数据需要进行更新,比如拉链表。

已经写入的数据有大量的更新需求。(比如电商场景中,订单的状态经常会发生变化,没必要用明细表记录变化趋势,使用更新模型记录最新的状态即可)

需要进行实时数据分析。

4.主键模型:建表的时候注意PRIMARY KEY(user_id)

数据冷热特征:只有最近几天的数据才需要修改,老的冷数据很少需要修改,比如订单数据,老的订单完成后就不再更新,并且分区是按天进行分区的,那么在导入数据时历史分区的数据的主键就不会被加载,也就不会占用内存了,内存中仅会加载近几天的索引。

大宽表(数百列数千列):主键只占整个数据的很小一部分,内存开销比较低。比如用户状态/画像表,虽然列非常多,但总的用户数量不大,主键索引内存占用相对可控。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

SQL入门到入土索引优化,聚合函数,数据备份与恢复,事务处理,查询、更新、插入和删除数据库

本人详解 作者:王文峰,参加过 CSDN 2020年度博客之星,《Java王大师王天师》 公众号:JAVA开发王大师,专注于天道酬勤的 Java 开发问题中国国学、传统文化和代码爱好者的程序人生,期待你的关注和支持!本人外号:神秘小峯 山峯 转载说明:务必注明来源(注明:作者:王文峰…

pdf书签怎么做?这三款软件轻松驾驭文档!

在数字化时代,PDF文件已成为我们工作、学习中的重要组成部分。然而,面对海量的PDF内容,如何快速定位关键信息,提高阅读效率呢?答案就是——制作PDF书签。今天,我将为大家介绍三款实用的软件,助你…

Ubuntu 的 apt 相关问题

错误:1 http://mirrors.tuna.tsinghua.edu.cn/ubuntu focal InRelease Couldnt create temporary file /tmp/apt.conf.KSeTlI for passing config to apt-key 原因 无法创建配置文件 /tmp/apt.conf.KSeTlI 并传递给 apt-key apt-key 等实际上并不是直接使…

失眠焦虑的解脱之道:找回内心的平静

🍃 在这个快节奏的时代,失眠与焦虑似乎成了许多人的隐形敌人。每当夜幕降临,它们便悄悄潜入心底,扰乱我们的思绪,让宁静的夜晚变得无比漫长。然而,生活总有办法让我们找回内心的平静,只需稍作调…

0613#111. 构造二阶行列式

时间限制&#xff1a;1.000S 空间限制&#xff1a;256MB 题目描述 小欧希望你构造一个二阶行列式&#xff0c;满足行列式中每个数均为不超过 20 的正整数&#xff0c;且行列式的值恰好等于x。你能帮帮她吗? 输入描述 一个正整数x。-1000 < x < 1000 输出描述 如果…

Android Studio新增功能:Device Streaming

今天将Android Studio升级到2023.3.1 Patch2。发现新增了Device Streaming功能。支持远程使用Google的物理设备调试程序。这样可以方便地在真实设备上测试自己的APP。这对于手头没有Google设备的开发者而言&#xff0c;确实方便很多。该功能目前处于测试阶段&#xff0c;在2025…

jsl+rs???企业信用系统,秒了~

文章目录 写在前面流程分析521412 加速乐第一次请求第二次请求第三次请求 瑞数看看效果秒了~ 本文仅供参考学习使用&#xff0c;不得用于非法盈利&#xff0c;如有侵权&#xff0c;请联系作者删 写在前面 好久没更新了&#xff0c;送给有缘人 目标网站&#xff1a;aHR0cHM6Ly9…

UbuntuServer22.04.4安装Nexus

文章目录 一、安装步骤二、登录Nexus设置系统参数1.登录Nexus2.先进入Nexus首页3.nexus3中央仓库改为阿里云 一、安装步骤 官网先下载https://help.sonatype.com/en/download.html 1.更新包列表 sudo apt update 2.安装Java,因为Nexus需要Java运行环境&#xff1a; sudo …

vue3 vant4 仿京东分类功能实现

Ⅰ- 壹 - 功能展示和使用需求 需求描述 基于vant 实现,仿京东分类功能实现样式交互等基本实现,细节可能需要优化 地址 https://gitee.com/wswhq/vue3-vant-temp/tree/master/src/view/ClassIfication 功能展示 Ⅱ - 贰 - 封装思路 不表述了自己看代码吧 Ⅲ - 叁 - 使用 …

【新手必看】修复Windows11蓝牙连接问题的7个方法!

在Windows11电脑操作中&#xff0c;用户经常会到蓝牙功能&#xff0c;如果蓝牙连接出现问题了&#xff0c;就会导致用户无法成功使用蓝牙。但是&#xff0c;许多新手用户不清楚要怎么操作才能解决蓝牙连接问题&#xff1f;会有不同的因素导致蓝牙连接出现问题&#xff0c;接下来…

WordPress、Typecho 站点如何让 CloudFlare 缓存加速

众所周知 WordPress、Typecho 都是著名动态博客站点(一个最简单的判断依据就是都要依赖结合数据库),这类站点在 CDN 缓存上都有一个致命的缓存弊端就是动静态请求的区分,理论上要让 CDN 绕过所有的动态请求,缓存所有的静态请求,否则就会造成前端登录和非登录状态的混乱,…

高考志愿专业选择:计算机人才需求激增,人工智能领域成热门

随着2024年高考的落幕&#xff0c;数百万高三学生站在了人生新的十字路口&#xff0c;面临着一个重要的抉择&#xff1a;选择大学专业。这一选择不仅关乎未来四年的学习生涯&#xff0c;更可能决定一个人一生的职业方向和人生轨迹。在众多专业中&#xff0c;计算机相关专业因其…

自然资源-关于进一步加强规划土地政策支持老旧小区改造更新工作的通知

自然资源-关于进一步加强规划土地政策支持老旧小区改造更新工作的通知 今日&#xff0c;自然资源部办公厅发布了《关于进一步加强规划土地政策支持老旧小区改造更新工作的通知》&#xff08;以下简称《通知》&#xff09;。《通知》提出&#xff0c;以市县国土空间总体规划为统…

商务风格可视化插图怎么绘制?一行代码搞定~~

上期推文推出使用极少代码绘制顶级期刊要求的学术图表(一行代码绘制符合)后&#xff0c;有小伙伴就问了&#xff0c;有没有可以使用较少代码绘制偏商业风的技巧分享&#xff1f;还别说&#xff0c;我还真有这样的技巧准备分享给爱学习的你们&#xff01;话不多说&#xff0c;咱…

亚马逊跟卖选品不再迷茫,适合跟卖卖家得一款选品软件工具!

对于刚开始做跟卖的卖家而言&#xff0c;刚开始最头疼的应该就是选品了吧&#xff0c;不知道跟卖什么产品&#xff0c;不是知道怎么有效的选择跟卖产品&#xff0c;所以很多卖家都会借助&#xff0c;选品软件来进行选品&#xff0c;这样不仅能提高选品的效率&#xff0c;还能帮…

国际期货短线交易的技巧有哪些?

期货短线交易的技巧&#xff1a; 1、快、准、狠。 如果离开这三个字&#xff0c;你不适合做短线&#xff0c;或者说你永远也做不好短线。 2、仓位管理。 每天可能有二到三次的短线开仓的好机会,为了保证开仓后不因资金占用过多&#xff0c;错过更好盈利的品种.每次开仓的资金…

悦库企业网盘 /user/login/.html SQL注入漏洞复现

0x01 产品简介 悦库企业网盘是一款专为满足企业文件管理、协同办公、文件共享需求而设计的私有部署安全、简单的企业文件管理系统。该产品全面覆盖企业文件管理场景,提供一系列功能强大且操作简便的解决方案,助力企业提升效率、降低管理成本。悦库企业网盘提供精细的权限管理…

全面了解性格测试:探索你的内在世界

人不走空 &#x1f308;个人主页&#xff1a;人不走空 &#x1f496;系列专栏&#xff1a;算法专题 ⏰诗词歌赋&#xff1a;斯是陋室&#xff0c;惟吾德馨 目录 全面了解性格测试&#xff1a;探索你的内在世界 什么是性格测试&#xff1f; 定义和概念 &#x1f9e0; …

2024酒店IPTV云桌面系统建设方案

Hello大家好&#xff0c;我是点量小芹&#xff0c;这一年多的时间一直在分享实时云渲染像素流相关的内容&#xff0c;今天和大家聊聊酒店IPTV云桌面电视系统解决方案&#xff0c;或者有的朋友也会称之为IPTV服务器。熟悉小芹的朋友知道&#xff0c;IPTV软件系统是我们一直在推的…

c++中main(int argc, char* argv[])参数详解

目录 一、main函数形式 1.无参数&#xff1a; 2.带有两个参数&#xff1a; 二、参数详解 1.int argc 2.char* argv[] 三、示例演示 一、main函数形式 在C中&#xff0c;main 函数可以有两种常见的参数形式&#xff1a; 1.无参数&#xff1a; 代码如下&#xff1a; i…