Apache Doris 2.0.0 特性分析
1、存算分离 所谓存算分离是指查询外表时,使用一种专门做计算的BE节点,但对于存储在BE上的内部表,目前还不能做到存储分离。 doris可以查询外部表,包括: Hive、Iceberg、Hudi、Elasticsearch、JDBC、Paimon 早期版本中,FE通过BE节点查询外部表,并且在BE节点内执行join、sort、agg等计算, 这些BE节点同时也负责doris的内部表的存储和计算, 新版本改造了BE节点,通过修改配置,它可以仅用于查询外表时的计算,内部表数据不会存到它上面, 这种BE称为“计算节点”,而既存储内部表数据又执行计算的BE节点称为“混合节点”。 两者的代码和二进制安装文件是一样的,只是配置不同,在集群中扮演的角色不同。 配置方法如下: 修改FE的配置文件: prefer_compute_node_for_external_table=true min_backend_num_for_external_table=3 修改BE配置: be_node_role=computation 然后将这个BE加入集群: ALTER SYSTEM ADD BACKEND "be_ip:be_port"; 可以如此加入多个“计算节点”。
当集群中有充足的计算节点时,当FE查询外表时,执行计划优先下发给“计算节点”,而不发给“混合节点”。
以上就是2.0.0存算分离特性的原理和状态,以下是这一特性的限制和理解上的澄清: 目前访问外部表(无论是否使用存算分离)只支持读取,不能写入。 存算分离的计算节点,只能用于外表的访问和计算,对内部表算子(例如JOIN、AGG、SORT)还不能调度到计算节点执行, 可能以后版本会支持,这个称为“计算外溢”。 SelectDB在apache doris官网上说,2023年10月会上传更成熟的存算分离架构给社区,估计目前的存算分离还不够完善。 查看了一下StarRocks的官网,没有存算分离的文档,只有3.1的release note提了一下。
2、多源数据目录(Multi-Catalog) 这是一种管理外部数据源更好的模型,数据库层级的模型: Catalog -- 可以理解为一个种类型的数据库集群,里面包含多个同一类型的数据库。 Database -- 用于数据管理的隔离,有独立的元数据存储,字符编码、数据存储格式等属性,内部包含schema和table。 Doris的Multi-Catalog可以将外部数据源,映射到一个新的Catalog,并自动读取外部数据源的所有元数据,在本地创建对应的database和表。 例如,hive里有如下数据库: default random ssb100 tpch1 tpch100 tpch1_orc 其中tpch100中有表: customer lineitem nation orders part partsupp region supplier 使用Multi-Catalog特性,不需要为每个hive数据库在Doris创建对应数据库,也不需要为每个hive表创建映射表。 对于Doris支持的数据源(如hive,Elasticsearch),只要创建Catalog并指定连接信息: CREATE CATALOG hive PROPERTIES ( 'type'='hms', 'hive.metastore.uris' = 'thrift://172.21.0.1:7004' ); Doris会自动读取外部数据源的元数据信息,并为每个数据库和表创建映射。 这个功能极大的方便了外部数据源的访问,在1.20版本已经具备了这一功能,2.0.0支持更多数据源,并与存算分离结合。
3、冷热分层 冷热分层是指,将表中较早时间导入的数据,保存到对象存储或其它廉价的存储中去,并在doris本地删除, 当需要这些旧数据时,再从对象存储读进来,这个过程对于用户是透明的。 具体的操作是,在创建表时设置一个日期,在这个日期到达时,之前导入的数据,会上传到对象存储,并在本地删除。 也可以建表时设置数据的生命期,从数据导入时开始计算,超过这个生命期的数据会上传到对象存储,并在本地删除。 上面冷热分层的逻辑,也可以只作用于分区数据。
每次数据导入(如执行一个insert、一次stream load),虽然最终存储在segment文件中, 但是也会创建一个对应的Rowset对象,记录了这批数据的导入时间。 冷热分层粒度就是基于Rowset,当到达冷却时间时,会将当前满足条件的Rowset 全部上传到对象存储,并删除本地数据,之后新导入的数据,生成的新Rowset,会在到达冷却时间后也上传到对象存储。
查询时,如果查询的数据是热数据,这些数据仍然存储在BE节点,可以直接返回结果, 如果查询的数据是冷数据,BE会读取对象存储里的数据,在本地恢复,再返回结果。
这一功能非常适用于交易记录、日志的存储和查询。
注意,冷热分层是以导入时间作为数据冷热标准,自动上传冷数据的,对用户是透明的, 不是以用户定义的某个类型为日期的列,用户对于冷热分层的控制是非常有限的。
4、默认使用新的优化器 nereids
5、默认使用新执行器 这种称为pipeline的执行器,将执行计划的执行分为更小的粒度,最大程度的异步化和并行化。
相关文章:
Apache Doris 2.0.0 特性分析
1、存算分离 所谓存算分离是指查询外表时,使用一种专门做计算的BE节点,但对于存储在BE上的内部表,目前还不能做到存储分离。 doris可以查询外部表,包括: Hive、Iceberg、Hudi、Elasticsearch、JDBC、Paimon 早期版本中…...
如何做H5性能测试?
提起H5性能测试,可能许多同学有所耳闻,但是不知道该如何对H5做性能测试,或者不知道H5应该关注哪些性能指标。今天我们就来看下,希望阅读本文后,能够有所了解。 常用指标 1、H5性能相关参数介绍 白屏时间:…...
【Docker】Docker Desktop配置资源:cpu、内存等(windows环境下)
Docker Desktop配置资源:cpu、内存等(windows环境下) 一、WSL2 以及 hyper-v区别,二者安装docker desktop1.WSL2和hyper-v区别2.安装Docker Desktop 二、docker desktop限额配置,资源配置方法 Docker 是指容器化技术&a…...
8.2.tensorRT高级(3)封装系列-内存管理的封装,内存的复用
目录 前言1. 内存管理封装2. 补充知识总结 前言 杜老师推出的 tensorRT从零起步高性能部署 课程,之前有看过一遍,但是没有做笔记,很多东西也忘了。这次重新撸一遍,顺便记记笔记。 本次课程学习 tensorRT 高级-内存管理的封装&…...
Keepalived入门指南:实现故障转移和负载均衡
文章目录 一、简介1. Keepalived概述2. 高可用性和负载均衡的重要性 二、故障转移1. 什么是故障转移2. Keepalived的故障转移原理a) VRRP协议b) 虚拟路由器ID和优先级 3. 配置Keepalived实现故障转移a) 主备服务器的设置b) 监控网络接口c) 虚拟IP的配置d) 备份服务器接管流程 三…...
cuOSD(CUDA On-Screen Display Library)库的学习
目录 前言1. cuOSD1.1 Description1.2 Getting started1.3 For Python Interface1.4 Demo1.5 Performance Table 2. cuOSD案例2.1 环境配置2.2 simple案例2.3 segment案例2.4 segment2案例2.5 polyline案例2.6 comp案例2.7 perf案例 3. cuOSD浅析3.1 simple_draw函数 4. 补充知…...
c++函数指针基本用法
将函数像变量一样传递,实际上拿到的是函数的地址,由于函数类型的多样,可以使用auto关键字,可以使用 void(*function2)() ,不过它太繁琐,因此使用typedef 起个名字 typedef void(*HelloWorldFunction)(); 叫…...
Java创建对象的几种方式
在Java中,对象是程序中的一种基本元素,它通过类定义和创建。本篇教程旨在介绍Java中创建对象的几种方式,包括使用new关键字、反射、clone、反序列化等方式。 使用new关键字创建对象 在Java中,最常用的创建对象方式是使用new关键…...
Docker实战专栏简介
🌷🍁 博主猫头虎 带您 Go to New World.✨🍁 🦄 博客首页——猫头虎的博客🎐 🐳《面试题大全专栏》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 &a…...
解放数据库,实时数据同步利器:Alibaba Canal
文章首发地址 Canal是一个开源的数据库增量订阅&消费组件,主要用于实时数据同步和数据订阅的场景,特别适用于构建分布式系统、数据仓库、缓存更新等应用。它支持MySQL、阿里云RDS等主流数据库,能够实时捕获数据库的增删改操作ÿ…...
机器学习基础之《分类算法(3)—模型选择与调优》
作用是如何选择出最好的K值 一、什么是交叉验证(cross validation) 1、定义 交叉验证:将拿到的训练数据,分为训练和验证集。以下图为例:将数据分成5份,其中一份作为验证集。然后经过5次(组)的测试&#x…...
Datawhale Django后端开发入门 TASK03 QuerySet和Instance、APIVIew
一、QuerySet QuerySet 是 Django 中的一个查询集合,它是由 Model.objects 方法返回的,并且可以用于生成数据库中所有满足一定条件的对象的列表。 QuerySet 在 Django 中表示从数据库中获取的对象集合,它是一个可迭代的、类似列表的对象集合。主要特点…...
Python 网页解析中级篇:深入理解BeautifulSoup库
在Python的网络爬虫中,BeautifulSoup库是一个重要的网页解析工具。在初级教程中,我们已经了解了BeautifulSoup库的基本使用方法。在本篇文章中,我们将深入学习BeautifulSoup库的进阶使用。 一、复杂的查找条件 在使用find和find_all方法查找…...
IDEA 如何制作代码补丁?IDEA 生成 patch 和使用 patch
什么是升级补丁? 比如你本地修复的 bug,需要把增量文件发给客户,很多场景下大家都需要手工整理修改的文件,并整理好目录,这个很麻烦。那有没有简单的技巧呢?看看 IDEA 生成 patch 和使用 patch 的使用。 介…...
Redis专题-秒杀
Redis专题-并发/秒杀 开局一张图,内容全靠“编”。 昨天晚上在群友里看到有人在讨论库存并发的问题,看到这里我就决定写一篇关于redis秒杀的文章。 1、理论部分 我们看看一般我们库存是怎么出问题的 其实redis提供了两种解决方案:加锁和原子操…...
C++笔记之std::move和右值引用的关系、以及移动语义
C笔记之std::move和右值引用的关系、以及移动语义 code review! 文章目录 C笔记之std::move和右值引用的关系、以及移动语义1.一个使用std::move的最简单C例子2.std::move 和 T&& reference_name expression;对比3.右值引用和常规引用的经典对比——移动语义和拷贝语…...
ES6自用笔记
目录 原型链 引用类型:__proto__(隐式原型)属性,属性值是对象函数:prototype(原型)属性,属性值是对象 相关方法 person.prototype.isPrototypeOf(stu) Object.getPrototypeOf(Object)替换已不推荐的Object._ _ proto _ _ Ob…...
【BASH】回顾与知识点梳理(二十九)
【BASH】回顾与知识点梳理 二十九 二十九. 进程和工作管理29.1 什么是进程 (process)进程与程序 (process & program)子进程与父进程:fork and exec:进程呼叫的流程系统或网络服务:常驻在内存的进程 29.2 Linux 的多人多任务环境多人环境…...
Docker的Cgroup资源限制
Docker通过Cgroup来控制容器使用的资源配额,包括 CPU、内存、磁盘三大方面,基本覆盖了常见的资源配颡和使用量控制。 Cgoup 是CotrolGroups 的缩写,是Linux 内核提供的一种可以限制、记录、隔高进程组所使用的物理资源(如CPU、内存…...
AI智能语音机器人的基本业务流程
先画个图,了解下AI语音机器人的基本业务流程。 上图是一个AI语音机器人的业务流程,简单来说就是首先要配置话术,就是告诉机器人在遇到问题该怎么回答,这个不同公司不同行业的差别比较大,所以一般每个客户都会配置其个性…...
eNSP-Cloud(实现本地电脑与eNSP内设备之间通信)
说明: 想象一下,你正在用eNSP搭建一个虚拟的网络世界,里面有虚拟的路由器、交换机、电脑(PC)等等。这些设备都在你的电脑里面“运行”,它们之间可以互相通信,就像一个封闭的小王国。 但是&#…...
linux之kylin系统nginx的安装
一、nginx的作用 1.可做高性能的web服务器 直接处理静态资源(HTML/CSS/图片等),响应速度远超传统服务器类似apache支持高并发连接 2.反向代理服务器 隐藏后端服务器IP地址,提高安全性 3.负载均衡服务器 支持多种策略分发流量…...
对WWDC 2025 Keynote 内容的预测
借助我们以往对苹果公司发展路径的深入研究经验,以及大语言模型的分析能力,我们系统梳理了多年来苹果 WWDC 主题演讲的规律。在 WWDC 2025 即将揭幕之际,我们让 ChatGPT 对今年的 Keynote 内容进行了一个初步预测,聊作存档。等到明…...
在Ubuntu中设置开机自动运行(sudo)指令的指南
在Ubuntu系统中,有时需要在系统启动时自动执行某些命令,特别是需要 sudo权限的指令。为了实现这一功能,可以使用多种方法,包括编写Systemd服务、配置 rc.local文件或使用 cron任务计划。本文将详细介绍这些方法,并提供…...
sqlserver 根据指定字符 解析拼接字符串
DECLARE LotNo NVARCHAR(50)A,B,C DECLARE xml XML ( SELECT <x> REPLACE(LotNo, ,, </x><x>) </x> ) DECLARE ErrorCode NVARCHAR(50) -- 提取 XML 中的值 SELECT value x.value(., VARCHAR(MAX))…...
多模态大语言模型arxiv论文略读(108)
CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文标题:CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文作者:Sayna Ebrahimi, Sercan O. Arik, Tejas Nama, Tomas Pfister ➡️ 研究机构: Google Cloud AI Re…...
大学生职业发展与就业创业指导教学评价
这里是引用 作为软工2203/2204班的学生,我们非常感谢您在《大学生职业发展与就业创业指导》课程中的悉心教导。这门课程对我们即将面临实习和就业的工科学生来说至关重要,而您认真负责的教学态度,让课程的每一部分都充满了实用价值。 尤其让我…...
Element Plus 表单(el-form)中关于正整数输入的校验规则
目录 1 单个正整数输入1.1 模板1.2 校验规则 2 两个正整数输入(联动)2.1 模板2.2 校验规则2.3 CSS 1 单个正整数输入 1.1 模板 <el-formref"formRef":model"formData":rules"formRules"label-width"150px"…...
Springboot社区养老保险系统小程序
一、前言 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,社区养老保险系统小程序被用户普遍使用,为方…...
华硕a豆14 Air香氛版,美学与科技的馨香融合
在快节奏的现代生活中,我们渴望一个能激发创想、愉悦感官的工作与生活伙伴,它不仅是冰冷的科技工具,更能触动我们内心深处的细腻情感。正是在这样的期许下,华硕a豆14 Air香氛版翩然而至,它以一种前所未有的方式&#x…...
