Apache Doris 开源最顶级基于MPP架构的高性能实时分析数据库

背景介绍

Apache Doris是一个基于MPP架构的易于使用,高性能和实时的分析数据库,以其极高的速度和易用性而闻名。海量数据下返回查询结果仅需亚秒级响应时间,不仅可以支持高并发点查询场景,还可以支持高通量复杂分析场景。

这些都使得 Apache Doris 成为报表分析、即席查询、统一数据仓库和数据湖查询加速等场景的理想工具。在 Apache Doris 上,用户可以构建各种应用,如用户行为分析、AB 测试平台、日志检索分析、用户画像分析、订单分析等。

2023年亚洲多丽丝峰会即将到来,热烈邀请您加入!单击“立即 🔗doris-summit.org.cn

🎉 版本 2.0.2 版本现已发布。2.0.2版本在标准基准测试上实现了超过10倍的性能提升,日志分析和湖仓场景全面提升,数据更新和写入效率更加高效稳定,支持更全面的多租户和资源隔离机制,在资源弹性和存储计算分离的方向上迈出了新的一步。它还为企业用户添加了一系列可用性功能。我们欢迎所有对2.0版本新功能有需求的用户进行部署和升级。在此处🔗查看发行说明。

🎉 1.2.7版本现已发布!它是完全进化的版本,建议所有用户升级到此版本。在此处🔗查看发行说明。

🎉 版本 1.1.5 现已发布。它是基于1.1版本的稳定性改进和错误修复版本。在此处🔗查看发行说明。

👀 查看官方网站,了解🔗Apache Doris的核心功能,博客和用户案例的完整列表。

图片

使用场景

如下图所示,经过各种数据集成和处理后,数据源通常存储在实时数据仓库 Apache Doris 和离线数据湖或数据仓库(在 Apache Hive、Apache Iceberg 或 Apache Hudi 中)。

图片

Apache Doris广泛应用于以下场景:

报告分析

实时仪表板 面向内部分析师和经理的报告 高度并发的用户导向或客户导向的报告分析:例如通常需要数千个QPS和以毫秒为单位的快速响应时间的网站分析和广告报告。一个成功的用户案例是,Doris 已被中国电子商务巨头 JD.com 用于广告报告,它每天接收 10 亿行数据,处理超过 10,000 QPS,并提供 99 毫秒的 150% 查询延迟。即席查询。面向分析师的自助式分析,具有不规则的查询模式和高吞吐量要求。小米基于Doris构建了增长分析平台(Growth Analytics,GA),利用用户行为数据进行业务增长分析,平均查询延迟为10秒,第95百分位查询延迟为30秒或更少,每天数万次SQL查询。

统一数据仓库建设。Apache Doris允许用户通过单一平台构建统一的数据仓库,省去处理复杂软件栈的麻烦。中国火锅连锁店海底捞与Doris建立了一个统一的数据仓库,以取代其由Apache Spark,Apache Hive,Apache Kudu,Apache HBase和Apache Phoenix组成的旧复杂架构。

数据湖查询。Apache Doris 通过使用外部表联合 Apache Hive、Apache Iceberg 和 Apache Hudi 中的数据来避免数据复制,从而实现出色的查询性能。

🖥️ 核心概念

📂 Apache Doris的架构 Apache Doris 的整体架构如下图所示。Doris 架构非常简单,只有两种类型的流程。

前端(FE):用户请求访问、查询解析和规划、元数据管理、节点管理等。

后端 (BE):数据存储和查询计划执行

这两种类型的进程都可以水平扩展,单个集群可以支持多达数百台机器和数十 PB 的存储容量。而这两类流程通过一致性协议保证了业务的高可用性和数据的高可靠性。这种高度集成的架构设计大大降低了分布式系统的运维成本。

图片

Apache Doris的整体架构

在接口方面,Apache Doris采用MySQL协议,支持标准SQL,与MySQL方言高度兼容。用户可以通过各种客户端工具访问 Doris,它支持与 BI 工具的无缝连接。

💾 存储引擎 Doris 使用列式存储引擎,按列编码、压缩和读取数据。这实现了非常高的压缩比,并大大减少了无关的数据扫描,从而更有效地利用了 IO 和 CPU 资源。Doris 支持多种索引结构,尽量减少数据扫描:

排序复合键索引:用户最多可以指定三列来形成复合排序键。这可以有效地修剪数据,以更好地支持高并发报告方案。最小/最大索引:这样可以有效筛选数值类型的等效性和范围查询。布隆过滤器:在高基数列的等价过滤和修剪中非常有效 反转索引:这样可以快速搜索任何字段。💿 存储模型 Doris 支持多种存储模型,并针对不同场景进行了优化:

聚合键模型:能够合并具有相同键的值列,并显着提高性能

唯一键模型:键在此模型中是唯一的,具有相同键的数据将被覆盖以实现行级数据更新。

重复密钥模型:这是一个详细的数据模型,能够详细存储事实数据表。

Doris 也支持强一致性的物化视图。物化视图自动选择和更新,大大降低了用户的维护成本。

🔍 查询引擎 Doris 在其查询引擎中采用 MPP 模型,实现节点之间和节点内部的并行执行。它还支持多个大型表的分布式随机连接,以处理复杂的查询。

图片

Doris 查询引擎是矢量化的,所有内存结构都以列格式布局。这可以在很大程度上减少虚拟函数调用,提高缓存命中率,并有效利用 SIMD 指令。Doris 在宽表聚合场景中提供的性能是非矢量化引擎的 5-10 倍。

图片

Apache Doris 使用自适应查询执行技术,根据运行时统计信息动态调整执行计划。例如,它可以生成运行时过滤器,将其推送到探测端,并自动渗透到底部的 Scan 节点,从而大大减少探测中的数据量并提高连接性能。Doris 中的运行时过滤器支持 In/Min/Max/Bloom 过滤器。

🚅 查询优化器 在优化器方面,Doris 使用了 CBO 和 RBO 的组合。RBO 支持常量折叠、子查询重写、谓词下推,CBO 支持联接重新排序。Doris CBO正在不断优化,以实现更准确的统计信息收集和推导,以及更准确的成本模型预测。Apache Doris已成功从Apache孵化器毕业,并于2022年<>月成为顶级项目。

目前,Apache Doris 社区已经聚集了来自不同行业的近 400 家公司的 200 多名贡献者,每月活跃贡献者数量接近 100 人。Apache Doris已成功从Apache孵化器毕业,并于2022年<>月成为顶级项目。

目前,Apache Doris 社区已经聚集了来自不同行业的近 400 家公司的 200 多名贡献者,每月活跃贡献者数量接近 100 人。

图片

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Linux】Shell命令行的简易实现(C语言实现)内键命令,普通命令

文章目录 0.准备工作1.大体框架 一、获取命令行二、解析命令行三、进程执行1.普通命令2.内建命令 四、完整代码&#xff1a; 0.准备工作 1.大体框架 #include <stdio.h> #include <stdlib.h> #include <string.h> #include <assert.h> #include <u…

Failed to launch task: 文件”Setup”不存在 Mac安装Adobe软件报错解决方案

在安装 Adobe 软件时&#xff0c;软件提示 Failed to launch task: 文件”Setup”不存在 &#xff0c;这个时候怎么处理呢&#xff1f; 解决方法如下&#xff1a; 1、安装 AnitCC 或 或 Creative Cloud 环境&#xff0c;保证软件所需要的环境 2、如果安装后也不起作用&#x…

【软件逆向】如何逆向Unity3D+il2cpp开发的安卓app【IDA Pro+il2CppDumper+DnSpy+AndroidKiller】

教程背景 课程作业要求使用反编译技术&#xff0c;在游戏中实现无碰撞。正常情况下碰撞后角色死亡&#xff0c;修改为直接穿过物体不死亡。 需要准备的软件 il2CppDumper。DnSpy。IDA Pro。AndroidKiller。 一、使用il2CppDumper导出程序集 将{my_game}.apk后缀修改为{my_…

有限域的Fast Multiplication和Modular Reduction算法实现

1. 引言 关于有限域的基础知识&#xff0c;可参考&#xff1a; RISC Zero团队2022年11月视频 Intro to Finite Fields: RISC Zero Study Club 有限域几乎是密码学中所有数学的基础。 ZKP证明系统中的所有运算都是基于有限域的&#xff1a; 使用布尔运算的数字电路&#xf…

接口自动化测试分层设计与实践总结01

本文以笔者当前使用的自动化测试项目为例&#xff0c;浅谈分层设计的思路&#xff0c;不涉及到具体的代码细节和某个框架的实现原理&#xff0c;重点关注在分层前后的使用对比&#xff0c;可能会以一些伪代码为例来说明举例。 接口测试三要素&#xff1a; 参数构造 发起请求&…

重新思考边缘负载均衡

本文介绍了Netflix在基于轮询的负载均衡的基础上&#xff0c;集成了包括服务器使用率在内的多因素指标&#xff0c;并对冷启动服务器进行了特殊处理&#xff0c;从而优化了负载均衡逻辑&#xff0c;提升了整体业务性能。原文: Rethinking Netflix’s Edge Load Balancing[1] 我…

【flutter no devices】

1.在环境变量增加 ANDROID_HOME 值为&#xff1a;C:\Users\Administrator\AppData\Local\Android\Sdk &#xff08;Android sdk 位置) 2 环境变量的path里面增加2个值&#xff1a; %ANDROID_HOME%\platform-tools %ANDROID_HOME%\tools 3 打开cmd&#xff0c;或者在Android st…

【gpt redis】原理篇

用的黑马程序员redis课程的目录&#xff0c;但是不想听讲了。后续都是用gpt文档获取的。 1.课程介绍(Av766995956,P145) 2.Redis数据结构-动态字符串(Av766995956,P146) sds 1M是个界限 其实他是个由c语言实现的结构体 有这么几个参数 len alloc flag char[] len是实际长度 …

【ArcGIS模型构建器】06:ArcGIS中DOM批量分幅教程

ArcGIS中利用模型构建器实现DOM批量分幅裁剪。 文章目录 1. 加载数据2. 批量分幅1. 加载数据 批量分幅通常是基于数字正射影像来实现。 数字正射影像(DOM.tif)CASS标准图幅(shp) 2. 批量分幅 单个图幅可以通过裁剪或者按掩膜提取工具来进行,批量分幅采用模型构建器进行。…

微型导轨在医疗设备中起什么作用?

微型导轨因其高精度、小型化和轻量化的特点&#xff0c;被广泛应用于各种需要高精度和小型化的机器中&#xff0c;如数控机床、工业机器人、光学仪器、医疗设备和自动化设备等&#xff0c;尤其是医疗领域&#xff0c;其应用最为广泛。 1、手术机器人&#xff1a;手术机器人是医…

Excel·VBA工作表导出为图片

《Excel转图片别再截图啦&#xff01;用这4个方法&#xff0c;高清且无损&#xff01;》&#xff0c;excel转为图片一般方法较为简单&#xff0c;那么能否使用vba将excel转为图片 选中区域导出为图片 zoom设置为2&#xff0c;导出图片较为清晰 Sub 选中区域导出为图片()Dim …

C#学习中关于Visual Studio中ctrl+D快捷键(快速复制当前行)失效的解决办法

1、进入VisualStudio主界面点击工具——>再点击选项 2、进入选项界面后点击环境——>再点击键盘&#xff0c;我们可用看到右边的界面的映射方案是VisualC#2005 3、 最后点击下拉框&#xff0c;选择默认值&#xff0c;点击之后确定即可恢复ctrlD的快捷键功能 4、此时可以正…