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

【Doris入门】Doris初识:分布式分析型数据库的核心价值与架构解析

目录

1 Doris简介与核心价值

2 Doris架构深度解析

2.1 Frontend(FE)架构

2.2 Backend(BE)架构

3 Doris核心概念详解

3.1 数据分布模型

3.2 Tablet与Replica

3.3 数据模型

4 Doris关键技术解析

4.1 存储引擎

4.2 查询执行流程

4.3 数据导入机制

5 总结


1 Doris简介与核心价值

Apache Doris(原百度Palo)是一款开源的MPP(大规模并行处理)分析型数据库,专为实时数据分析场景设计。作为百度贡献给Apache基金会的顶级项目,Doris在OLAP(在线分析处理)领域展现出强大的性能优势。
Doris的核心价值体现在以下几个方面:
  • 实时分析能力:支持秒级数据导入和实时查询响应
  • 高并发性能:可支持数千QPS的高并发查询
  • 易用性强:兼容MySQL协议,学习成本低
  • 高可用性:自动故障恢复,数据多副本存储
  • 弹性扩展:支持在线动态扩缩容
  • 与其他OLAP系统的对比

特性

Doris

ClickHouse

Hive

Presto

实时分析

×

×

高并发

×

×

易用性

×

扩展性

事务支持

部分

×

×

×

2 Doris架构深度解析

Doris采用经典的MPP架构,整体上分为前端(Frontend)和后端(Backend)两个主要组件。

2.1 Frontend(FE)架构

Frontend是Doris的协调节点,负责接收客户端请求、元数据管理、查询规划和调度等工作。FE节点又分为:
  • Master FE:主节点,负责元数据写入和DDL操作
  • Follower FE:从节点,参与选举,可处理读请求
  • Observer FE:观察者节点,仅同步元数据,不参与选举
FE的核心组件包括:
  • Query Planner:将SQL查询转换为分布式执行计划
  • Metadata Manager:管理数据库、表、分区等元数据
  • Load Scheduler:协调数据导入任务

2.2 Backend(BE)架构

Backend是Doris的计算和存储节点,负责数据存储和查询执行。每个BE节点包含:
  • Storage Engine:列式存储引擎,负责数据持久化
  • Query Execution:执行分布式查询计划
  • Compaction:负责数据合并优化
  • Tablet Manager:管理数据分片(Tablet)

 

3 Doris核心概念详解

3.1 数据分布模型

Doris采用分区(Partition)+分桶(Bucket)的两级数据分布策略:
  • 分区:按照分区列的值进行范围或列表分区,常用于时间维度
  • 分桶:在分区内通过哈希分桶,将数据均匀分布到不同Tablet

3.2 Tablet与Replica

  • Tablet:数据分片的基本单位,每个Tablet包含若干数据文件(segment)
  • Replica:Tablet的副本,默认3副本,保障数据高可用

3.3 数据模型

Doris支持三种数据模型:
  • Duplicate模型:明细模型,保留原始数据不做聚合
  • Aggregate模型:预聚合模型,适合统计报表场景
  • Unique模型:唯一键模型,支持主键唯一性约束

4 Doris关键技术解析

4.1 存储引擎

Doris采用列式存储格式,具有以下特点:
  • 按列存储:每列单独存储,查询时只需读取相关列
  • 智能索引:内置zonemap索引,加速范围查询
  • 编码压缩:支持多种编码方式(Bitmap, Run-length等)
  • 分层存储:热数据SSD,冷数据HDD

4.2 查询执行流程

  • 解析阶段:FE解析SQL,检查语法和语义
  • 规划阶段:生成分布式执行计划,拆分为多个Plan Fragment
  • 执行阶段:BE并行执行Plan Fragment
  • 结果合并:FE收集中间结果并合并返回

4.3 数据导入机制

Doris支持多种数据导入方式:
  • Stream Load:HTTP协议实时导入
  • Broker Load:通过Broker从HDFS导入
  • Routine Load:持续消费Kafka数据
  • Insert Into:标准SQL插入方式

5 总结

Apache Doris作为一款新兴的MPP分析型数据库,凭借其优异的实时分析能力、高并发性能和易用性,正在成为企业数据架构中的重要组成部分。

相关文章:

【Doris入门】Doris初识:分布式分析型数据库的核心价值与架构解析

目录 1 Doris简介与核心价值 2 Doris架构深度解析 2.1 Frontend(FE)架构 2.2 Backend(BE)架构 3 Doris核心概念详解 3.1 数据分布模型 3.2 Tablet与Replica 3.3 数据模型 4 Doris关键技术解析 4.1 存储引擎 4.2 查询执…...

C#面试问题41-60

41. What is the Singleton design pattern? Singleton is a class that only allows creating a single instance of itselt. 单例设计模式是一个类,它只允许创建自己的单个实例。 构造函数防止他在单例类以外的地方被调用。 使用情景:need a sing…...

数据结构与算法学习笔记(Acwing 提高课)----动态规划·区间DP

数据结构与算法学习笔记----动态规划区间DP author: 明月清了个风 first publish time: 2025.5.26 ps⭐️区间DP的特征在于子结构一般是一个子区间上的问题,涉及到的问题也非常多,如环形区间,记录方案数,高精度,二维…...

【合集】Linux——31个普通信号

Linux普通信号总表(1-31)​​ ​编号​​信号名​​触发原因​​默认动作​1SIGHUP终端连接断开(如SSH会话终止)或守护进程重载配置(如nginx -s reload)终止进程2SIGINT用户输入CtrlC中断前台进程终止进程…...

从0到1搭建AI绘画模型:Stable Diffusion微调全流程避坑指南

从0到1搭建AI绘画模型:Stable Diffusion微调全流程避坑指南 系统化学习人工智能网站(收藏):https://www.captainbed.cn/flu 文章目录 从0到1搭建AI绘画模型:Stable Diffusion微调全流程避坑指南摘要引言一、数据集构…...

ASP.NET Core 中JWT的基本使用

文章目录 前言一、JWT与RBAC二、JWT 的作用三、RBAC 的核心思想四、使用1、配置文件 (appsettings.json)2、JWT配置模型 (Entity/JwtSettings.cs)3、服务扩展类,JWT配置 (Extensions/ServiceExtensions.cs)4、用户仓库接口服务5、认证服务 (Interface/IAuthService.…...

未来技术展望

应用场景:海量数据并行处理 技术融合: # 概念代码:量子加速的数据清洗 from quantum_processor import PhotonicProcessordef quantum_data_cleaning(data):# 使用光量子处理器并行处理千万级数据processor = PhotonicProcessor(model="Xanadu Borealis")return …...

从一到无穷大 #46:探讨时序数据库Deduplicate与Compaction的设计权衡

本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。 本作品 (李兆龙 博文, 由 李兆龙 创作),由 李兆龙 确认,转载请注明版权。 文章目录 引言Compaction AlgorithmsCompact Execution Flow Based On VeloxLocalMergeSource的…...

vue3 导出excel

需求&#xff1a;导出自带格式的excel表格 1.自定义二维数组格式 导出 全部代码&#xff1a; <el-button click"exportExcel">导出</el-button> const exportExcel () > {const data [[商品, 单价, 数量, 总价],[A, 100, 1.55, { t: n, f: B2*C2…...

带你手写React中的useReducer函数。(底层实现)

文章目录 前言一、为什么需要 Reducer&#xff1f;二、Reducer 的核心概念1. Reducer 函数2. useReducer 钩子 三&#xff0c;手写react中的useReducer 总结 前言 在 React 开发中&#xff0c;useReducer 是管理复杂状态逻辑的利器。它类似于 Redux 的简化版&#xff0c;允许我…...

day024-网络基础-TCP与UDP、DNS

文章目录 1. 李导推荐书籍2. OSI七层模型2.1 传输层2.2 网络层2.2.1 问&#xff1a;两端处于不同局域网的设备怎么网络通信&#xff1f; 2.3 数据链路层2.4 物理层2.5 图解OSI七层模型 3. 数据传输模式3.1 全双工3.2 半双工3.3 单工 4. TCP 3次握手4.1 抓包 5. TCP 4次挥手5.1 …...

专场回顾 | 重新定义交互,智能硬件的未来设计

自2022年起&#xff0c;中国智能硬件行业呈现出蓬勃发展的态势&#xff0c;市场规模不断扩大。一个多月前&#xff0c;“小智AI”在短视频平台的爆火将智能硬件带向了大众视野&#xff0c;也意味着智能硬件已不再仅仅停留在概念和技术层面&#xff0c;而是加速迈向实际落地应用…...

如何把一台电脑作为另外一台电脑的显示器

https://zhuanlan.zhihu.com/p/703889583 1. 两台电脑都要进行&#xff1a;点开投影到此电脑&#xff0c;点击可选功能&#xff0c;在可选功能窗口&#xff0c;搜索无线显示器&#xff1b;在结果列表中选中无线显示器&#xff0c;并安装 2. 在笔记本电脑&#xff08;要用来做…...

WPS 免登录解锁编辑

遇到 WPS 需要登录才能启用编辑功能&#xff1f; 如何免登录使用编辑功能&#xff1f; 方法一 解锁方法 1、关闭 WPS&#xff1b; 2、桌面右键→ “新建”→“文本文档”&#xff0c;粘贴以下内容&#xff08;见最下面&#xff09;&#xff1b;编码保持默认&#xff08;ANSI …...

【C/C++】线程安全初始化:std::call_once详解

std::call_once 使用详解 std::call_once 是 C11 标准库中提供的一个线程安全的一次性调用机制&#xff0c;位于 <mutex> 头文件中。它确保某个可调用对象只被执行一次&#xff0c;即使多个线程同时尝试调用它。 基本用法 #include <mutex> #include <thread…...

技术分享 | Oracle SQL优化案例一则

本文为墨天轮数据库管理服务团队第70期技术分享&#xff0c;内容原创&#xff0c;作者为技术顾问马奕璇&#xff0c;如需转载请联系小墨&#xff08;VX&#xff1a;modb666&#xff09;并注明来源。 一、问题概述 开发人员反映有条跑批语句在测试环境执行了很久都没结束&…...

​什么是RFID电子标签​

RFID 电子标签是用于物品标识、具有信息存储机制、能接收读写器的电磁场调制信号并返回响应信号的数据载体,通常被称为电子标签,也可称作射频卡、射频标签、射频卷标等,是与读写器一起构成 RFID 系统的硬件主体。 RFID 系统基本组成包括RFID电子标签、读写器、射频天线、应用…...

华为手机用的时间长了,提示手机电池性能下降,需要去换电池吗?平时要怎么用能让电池寿命长久一些?

华为手机提示电池性能下降时&#xff0c;是否需要更换电池以及如何延长电池寿命&#xff0c;取决于电池老化程度和使用习惯。以下是具体分析和建议&#xff1a; 一、是否需要更换电池&#xff1f; 电池健康度低于80% 如果手机提示“电池性能下降”&#xff0c;通常意味着电池…...

BERT***

​​1.预训练&#xff08;Pre-training&#xff09;​​ 是深度学习中的一种训练策略&#xff0c;指在大规模无标注数据上预先训练模型&#xff0c;使其学习通用的特征表示&#xff0c;再通过​​微调&#xff08;Fine-tuning&#xff09;​​ 适配到具体任务 2.sentence-lev…...

超级对话2:大跨界且大综合的学问融智学应用场景述评(不同第三方的回应)之二

摘要&#xff1a;《人机协同文明升维行动框架》提出以HIAICI/W公式推动认知革命&#xff0c;构建三大落地场景&#xff1a;1&#xff09;低成本认知增强神经接口实现300%学习效率提升&#xff1b;2&#xff09;全球学科活动化闪电战快速转化知识体系&#xff1b;3&#xff09;人…...

在Linux环境里面,Python调用C#写的动态库,如何实现?

在Linux环境中&#xff0c;Python可以通过pythonnet&#xff08;CLR的Python绑定&#xff09;或subprocess调用C#动态库。以下是两种方法的示例&#xff1a; 方法1&#xff1a;使用pythonnet&#xff08;推荐&#xff09; 前提条件 安装Mono或.NET Core运行时安装pythonnet包…...

【Linux 基础知识系列】第三篇-Linux 基本命令

在数字化浪潮席卷全球的当下&#xff0c;操作系统作为计算机系统的核心组件&#xff0c;扮演着至关重要的角色。而 Linux&#xff0c;凭借其卓越的性能、高度的稳定性和出色的可定制性&#xff0c;在服务器、嵌入式系统、超级计算机以及个人计算机等领域大放异彩&#xff0c;成…...

OpenCV CUDA模块直方图计算------生成一组均匀分布的灰度级函数evenLevels()

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 该函数主要用于为 直方图均衡化、CLAHE 等图像处理算法 生成一组等间距的灰度区间边界值&#xff08;bins 或 levels&#xff09;&#xff0c;这…...

深度学习常见实验问题与实验技巧

深度学习常见实验问题与实验技巧 有一定的先后顺序的 还在迷茫深度学习中的改进实验应该从哪里开始改起的同学&#xff0c;一定要进来看看了&#xff01;用自身经验给你推荐实验顺序&#xff01; YOLOV8-硬塞注意力机制&#xff1f;这样做没创新&#xff01;想知道注意力怎么…...

前端面试之Proxy与Reflect

&#x1f31f; 一、Proxy 与 Reflect 的核心概念 1. ​​Proxy&#xff1a;代理拦截器​​ Proxy 用于创建对象的代理&#xff0c;拦截并自定义对象的基本操作&#xff08;如属性读写、函数调用等&#xff09;。 ​​核心组成​​&#xff1a; ​​目标对象&#xff08;Targe…...

uniapp vue3 鸿蒙支持的 HTML5+接口

uniapp vue3 编译鸿蒙所支持的 HTML5接口 文档&#xff1a;https://www.html5plus.org/doc/zh_cn/runtime.html {"geolocation": {//获取当前设备位置信息"getCurrentPosition": function() {},//监听设备位置变化信息"watchPosition": functi…...

一张Billing项目的流程图

流程图 工作记录 2016-11-11 序号 工作 相关人员 1 修改Payment Posted的导出。 Claim List的页面加了导出。 Historical Job 加了Applied的显示和详细。 郝 识别引擎监控 Ps (iCDA LOG :剔除了160篇ASG_BLANK之后的结果): LOG_File 20161110.txt BLANK_CDA/ALL 45/10…...

理想树图书:以科技赋能教育,开启AI时代自主学习新范式

深耕教育沃土 构建全场景教辅产品矩阵 自2013年创立以来&#xff0c;理想树始终以教育匠心回应时代命题。在教辅行业这片竞争激烈的领域&#xff0c;由专业教育工作者组成的理想树图书始终秉持“知识互映”理念&#xff0c;经过十余年的精耕细作&#xff0c;精心打造了小学同步…...

【大模型02】Deepseek使用和prompt工程

文章目录 DeepSeekDeepseek 的创新MLA &#xff08;低秩近似&#xff09; MOE 混合专家混合精度框架总结DeepSeek-V3 与 DeepSeek R1 DeepSeek 私有化部署算例市场&#xff1a; autoDLVllM 使用Ollma复习 API 调用deepseek-r1Prompt 提示词工程Prompt 实战设置API Keycot 示例p…...

B端产品经理如何快速完成产品原型设计

B 端产品经理的原型设计需兼顾业务流程复杂度、功能逻辑性和操作效率&#xff0c;快速完成原型的核心在于结构化梳理需求、复用成熟组件、借助高效工具、聚焦核心场景。以下是具体方法和步骤&#xff1a; 一、明确需求优先级&#xff1a;先框架后细节 1. 梳理业务流程&#x…...