首页 > 其他分享 >StarRocks基本架构原理

StarRocks基本架构原理

时间:2024-10-08 14:12:09浏览次数:1  
标签:分析 存储 StarRocks 架构 FE 原理 数据

概念

  • StarRocks是新一代高性能分析型数据仓库,支持实时、多维、高并发的数据分析;
  • StarRocks支持从各种数据源进行实时和批量数据推流,它还允许您直接分析存储在数据湖中的数据,无需数据迁移
  • StarRocks非常适合对新数据进行实时分析。可以高速摄取数据,并实时更新和删除数据

场景

  • StarRocks满足各种企业分析需求,包括OLAP多维分析、实时分析、高并发分析、统一分析等

OLAP多维分析

  • OLAP(Online Analytical Processing,联机分析处理)是一种数据分析技术,它允许用户从多个角度对数据进行快速、灵活的分析
  • MPP(Massively Parallel Processing,大规模并行处理)框架是一种分布式计算架构,它通过将任务并行地分散到多个服务器和节点上执行来提高数据处理的速度和效率
  • MPP框架和向量化执行引擎使用户能够在各种架构之间进行选择,以开发多维分析报告
  • 用户行为分析、用户画像、标签分析、用户标记、高维指标报表、自助式仪表板、服务异常探测和分析、跨主题分析、财务数据分析、系统监控分析

实时分析

  • StarRocks使用Primary Key表实现实时更新,TP数据库中的数据变更可以在几秒钟内同步到StarRocks,构建实时仓库
  • 在线促销分析、物流跟踪分析、金融行业的性能分析和指标计算、直播质量分析、广告投放分析、驾驶舱管理、应用程序性能管理(APM)

高并发分析

  • StarRocks利用高性能数据分发、灵活的索引和智能物化视图,以高并发方式进行面向用户的分析

统一分析

  • 一个系统可以为各种分析场景提供支持,从而降低系统复杂性并降低TCO
  • StarRocks统一了数据湖和数据仓库,湖仓一体中的数据可以在StarRocks中全部进行管理,需要高并发的延迟敏感型查询可以在StarRocks上运行,数据湖中的数据可以通过StarRocks提供的外部目录或外部表进行访问

架构

  • 整个系统仅由两种类型的组件组成:前端和后端。前端节点称为FE。后端节点有两种类型:BE和 CNs(计算节点)
  • 当使用本地数据存储时,会部署BE,当数据存储在对象存储或HDFS上时,会部署CN

前端节点(FE)

  • 负责元数据管理、客户端连接管理、查询规划和查询调度
  • FE节点分为Leader FE、Follower FE和Observer FE。Leader FE负责读写元数据,Follower FE和Observer FE只读取元数据,并将写请求路由到Leader FE

后端节点(BE)

  • 负责数据存储和SQL执行
  • BE节点在存算一体架构中负责数据存储,在存算分离架构中,BE被计算节点(CN)取代,数据存储在对象存储或HDFS中

数据管理

  • 使用列式存储,采用分区分桶机制进行数据管理
  • 一张表可以被划分成多个分区,一个分区内的数据可以进一步分桶,形成Tablet,每个Tablet以多副本形式存储在不同的BE节点上,支持数据的高可靠性和服务的高可用性

存算分离架构

  • StarRocks支持存算分离架构,其中计算节点(CN)仅负责数据计算任务和缓存热数据,数据存储在对象存储或HDFS中
  • 这种设计降低了存储成本,确保更好的资源隔离,并具有高度的弹性和可扩展性

特点

  • 向量化引擎:通过向量化引擎,StarRocks可以充分利用CPU的SIMD指令集,提高查询性能
  • CBO(基于代价的优化器):StarRocks的CBO优化器采用Cascades框架,基于统计信息进行代价估算,选择最优的物理执行计划
  • 高并发查询:StarRocks优化查询调度和资源分配,支持高并发查询。
  • 智能物化视图:StarRocks支持异步物化视图,可以自动刷新,支持多表关联和丰富的聚合算子,提高查询性能

StarRocks和Doris对比

StarRocks Doris
架构特点 MPP架构,支持存算分离,可以将数据存储在对象存储(如S3)或HDFS中,而计算节点可以独立扩展,支持向量化查询引擎,列式存储,以及多种数据导入方式 MPP架构,支持多种数据导入方式,在2.0版本后也开始支持存算分离架构,允许数据存储在远端存储系统中
性能对比 单表查询场景有优势,更新频率高,降低维护成本 多表查询和资源消耗方面有优势
应用场景 需要处理大规模数据和分析复杂数据的场景 需要高性能数据处理和分析的场景
存储模型 在存储方面提供了更多优化,如数据压缩和行列混存表 同样采用列式存储模型

数据导入方式

  • Insert Into: 两者都支持使用Insert Into语句直接导入数据,适用于小批量数据的导入
  • Stream Load: 两者都支持Stream Load,适用于实时数据导入,通过HTTP协议发送数据
  • Broker Load: 两者都支持Broker Load,适用于从HDFS等外部存储系统批量导入数据
  • Routine Load: 两者都支持Routine Load,适用于从Kafka等流数据源实时导入数据

标签:分析,存储,StarRocks,架构,FE,原理,数据
From: https://www.cnblogs.com/shihongpin/p/18451160

相关文章

  • GUI图形界面 无代码开发 原理 - 属性标识链 | uiotos致敬amis、nodered、appsmith、co
    低代码饱受争议。也有例外:后端NodeRed,前端Amis。整体还是诟病为主:简单业务可以,复杂的是扯淡,不论前后端。这是一贯的认知。在GUI方面,UIOTOS发明的嵌套技术,为复杂前端的无代码开发,开辟了一条新的思路。往期文章:可视化拖拉拽?过时了!组态零代码,不能做复杂前端?嵌套原理一复杂交互......
  • 飘香水果购物网站:基于SpringBoot的架构设计
    2相关技术2.1MYSQL数据库MySQL是一个真正的多用户、多线程SQL数据库服务器。是基于SQL的客户/服务器模式的关系数据库管理系统,它的有点有有功能强大、使用简单、管理方便、安全可靠性高、运行速度快、多线程、跨平台性、完全网络化、稳定性等,非常适用于Web站点或者其他......
  • 计算机组成原理核心考点
    参次结构机器级包括汇编语言及机器语言通过编译器将预处理文件转化为汇编语言时,就是将高级语言转化为机器级目标代码文件的过程,分水岭是编译程序编码大小补码:FFFx=FFFF-[FFFF-(16-x)]=x-16FFxy=FFFF-[FFFF-(256-x16-y)]=x16+y-256补码负数的表示法他们为了继续使用模......
  • 深度学习中的注意力机制:原理、应用与发展
    一、引言在深度学习领域,注意力机制(AttentionMechanism)已经成为一种极为重要的技术手段。它的出现使得模型能够像人类一样,在处理大量信息时聚焦于关键部分,从而提高模型的性能和效率。从自然语言处理到计算机视觉等多个领域,注意力机制都展现出了卓越的能力,极大地推动了深度......
  • 在K8S中,kube-proxy ipvs原理是什么?
    在Kubernetes(K8S)中,kube-proxy的IPVS模式是一种高性能的负载均衡解决方案,它利用Linux内核的IPVS(IPVirtualServer)功能来实现服务的负载均衡。以下是kube-proxy在IPVS模式下的工作原理:监听API服务器:kube-proxy启动后会持续监听KubernetesAPI服务器上的Service资源......
  • 在K8S中,kube-proxy iptables原理是什么?
    在Kubernetes中,kube-proxy使用不同模式来实现其功能,其中iptables模式是早期广泛使用的模式之一。下面详细介绍kube-proxy使用iptables模式的基本原理。1.iptables原理概述iptables是Linux内核的一部分,用于定义网络封包过滤规则。它是一个用户空间的应用程序,用来设......
  • 浏览器的渲染原理
    浏览器渲染原理五个渲染流程Parse阶段:解析HTMLStyle阶段:样式计算三个阶段:收集,划分和索引所有样式表中存在的样式规则访问每个元素并找到适用于该元素的所有规则,CSS引擎遍历DOM节点,进行选择器匹配,并且匹配的节点执行样式设置结合层叠规则和其他信息为节点生成最......
  • React Fiber 原理
    ReactFiber在React16之前的版本对比更新VirtualDOM的过程是采用Stack架构实现的,也就是循环加递归,这种方式的问题是一旦任务开始进行就无法被中断。如果应用中的组件数量庞大,VirtualDOM的层级比较深,主线程被长期占用,知道整颗VirtualDOM树比对更新完成之后主线程才......
  • 人工智能前沿研究热点与发展趋势原理与代码实战案例讲解
    人工智能前沿研究热点与发展趋势原理与代码实战案例讲解作者:禅与计算机程序设计艺术/ZenandtheArtofComputerProgramming1.背景介绍1.1问题的由来人工智能(ArtificialIntelligence,AI)作为计算机科学的一个分支,已经取得了长足的进步。从早期的专家系统到现在......
  • 14-恶意代码防范技术原理
    14.1概述1)定义与分类(MaliciousCode)它是一种违背目标系统安全策略的程序代码,会造成目标系统信息泄露、资源滥用,破坏系统的完整性及可用性。它能够经过存储介质或网络进行传播,从一台计算机系统传到另外一台计算机系统,未经授权认证访问或破坏计算机系统。常许多人认为“病毒”......