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

大数据基础:Doris重点架构原理

文章目录

Doris重点架构原理

一、Apache Doris介绍

二、Apache Doris使用场景

三、Apache Doris架构原理

四、Apache Doris 特点


Doris重点架构原理

一、Apache Doris介绍

基于 MPP 架构的高性能、实时的分析型数据库,以极速易用的特点被人们所熟知,仅需亚秒级响应时间即可返回海量数据下的查询结果,不仅可以 支持高并发的点查询场景,也能支持高吞吐的复杂分析场景

二、Apache Doris使用场景

  • 报表分析

  • 即席查询(Ad-hoc Query)

  • 统一数仓构建

  • 数据湖联邦查询

三、Apache Doris架构原理

Doris 架构非常简单,只有两类进程FE和BE,这两类进程都是可以横向扩展的,单集群可以支持到数百台机器,数十 PB 的存储容量。并且这两类进程通过一致性协议来保证服务的高可用和数据的高可靠。这种高度集成的架构设计极大的降低了一款分布式系统的运维成本。

  • Frontend(FE) : 主要负责用户请求的接入、查询解析规划、元数据的存储、节点管理相关工作。

FE又分为 Leader、Follwer和Observer三种角色 ,默认一个Doris集群中只能有一个Leader,可以有多个Follwer和Observer。其中Leader和Follwer组成一个Paxos选择组,如果Leader宕机,则剩下的Follower会自动选出新的Leader,保证单节点宕机情况下元数据的高可用及数据写入高可用。

Observer用来扩展查询节点、同步Leader元数据进行备份,如果Doris集群压力非常大,可以扩展Observer节点来提高集群查询能力,Observer不参与选举、数据写入,只参与数据读取。

  • Backend(BE) :一个用户请求通过FE解析、规划后,具体的执行计划会发送给BE具体执行,BE主要负责数据存储、查询计划的执行。

BE分布式的存储Doris table表数据,table表数据会经过分区分桶形成tablet,tablet采用列式存储,默认有3个副本。BE会接收FE命令来创建、查询、删除table表,接收来自FE的执行计划并分布式执行。BE会通过索引和谓词下推快速过滤数据,可以在后台执行Compact任务,减少查询时的读放大。

  • Broker(可选):

Apache Doris架构中除了有BE和FE进程之外,还可以部署Broker可选进程,主要用于支持Doris读写远端存储上的文件和目录。例如:Apache HDFS 、阿里云OSS、亚马逊S3等。

Broker 通过提供一个 RPC 服务端口来提供服务,是一个无状态的 Java 进程,负责为远端存储的读写操作封装一些类 POSIX 的文件操作,如 open,pread,pwrite 等等。除此之外,Broker 不记录任何其他信息,所以包括远端存储的连接信息、文件信息、权限信息等等,都需要通过参数在 RPC 调用中传递给 Broker 进程,才能使得 Broker 能够正确读写文件。Broker 仅作为一个数据通路,并不参与任何计算,因此仅需占用较少的内存。通常一个 Doris 系统中会部署一个或多个 Broker 进程。

四、Apache Doris 特点

  • 支持标准SQL接口

  • 列式存储引擎

  • 支持丰富的索引结构

  • 支持多种存储模型

  • 支持物化视图

  • MPP架构设计

  • 支持向量化查询引擎

  • 动态调整执行计划

  • 采用CBO和RBO 查询优化器


  • 📢博客主页:https://lansonli.blog.csdn.net

  • 📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!

  • 📢本文由 Lansonli 原创,首发于 CSDN博客🙉

  • 📢停下休息的时候不要忘了别人还在奔跑,希望大家抓紧时间学习,全力奔赴更美好的生活✨

http://www.lryc.cn/news/401751.html

相关文章:

  • .NET Framework、.NET Core 、 .NET 5、.NET 6和.NET 7 和.NET8 简介及区别
  • k8s核心操作_存储抽象_K8S中使用ConfigMap抽取配置_实现配置热更新---分布式云原生部署架构搭建032
  • 【前端】SpringBootWeb 篇-入门了解 Spring Cache、Spring Task与WebSocket 框架
  • 应用最优化方法及MATLAB实现——第4章代码实现
  • 搜维尔科技:Riablo提供一种创新的康复解决方案,通过激活本体感觉,并通过视听反馈促进神经肌肉的训练。
  • NodeJS技巧:在循环中管理异步函数的执行次数
  • debian 实现离线批量安装软件包
  • 远程开机准备工作
  • PGCCC|【PostgreSQL】PCA+PCP+PCM等IT类认证申报个税退税指南
  • 让AI语言模型自由飞翔:LangChain框架的奇妙世界
  • solidity基础语法(以太坊solidity合约)
  • 【机器学习实战】电力需求预测挑战赛 Datawhale AI 夏令营 task2
  • 【设计模式】【创建型模式】【02工厂模式】
  • FPGA设计中的流水线 -分割大的计算电路可以更快的处理数据。
  • GNU/Linux - U-BOOT的GPIO command
  • 35.UART(通用异步收发传输器)-RS232(2)
  • OpenLayers学习笔记-点位聚合
  • flutter实现语言的国际化
  • 服务端正常启动了,但是客户端请求不到
  • 鸿蒙开发 -本地数据库操作
  • 主机安全-进程、命令攻击与检测
  • FPGA FIR fdatool filter designer MATLAB
  • 水表数字识别2:Pytorch DBNet实现水表数字检测(含训练代码和数据集)
  • Windows 点云生成二维栅格图 [附C++完整代码实现]
  • SpringBoot结合ip2region实现博客评论显示IP属地
  • 设计模式使用场景实现示例及优缺点(行为型模式——策略模式)
  • ReactRouter v6升级的步骤
  • 【JVM实战篇】内存调优:内存问题诊断+案例实战
  • 专业条码二维码扫描设备和手机二维码扫描软件的区别?
  • 基于嵌入式Linux的高性能车载娱乐系统设计与实现 —— 融合Qt、FFmpeg和CAN总线技术