分享嘉宾:衣国垒 Apache Doris Committer、SelectDB 联结创始人&CTO
整顿:墨天轮社区
导读
大家好,我是来自Apache Doris社区的衣国垒,也是SelectDB的联结创始人,明天为大家分享的内容是《Apache Doris(incubating)1.0版本个性解析与将来布局》。
Apache Doris 介绍
1、Apache Doris 倒退历程
Apache Doris(incubating)是一个高性能、简略易用、反对实时的MPP架构剖析型数据库,最早发祥于百度外部的广告统计报表场景中,起初随着零碎的屡次优化迭代开始在百度外部失去大范畴推广,成为百度对立的OLAP剖析平台。2017年正式在GitHub上开源,2018年被募捐给Apache基金会进行孵化并正式更名为Apache Doris(incubating)。
据粗略统计,目前在寰球范畴内有超过500家企业应用Apache Doris,百度、美团、小米、京东、腾讯、网易、字节、新浪等泛滥一线互联网公司长期运行Apache Doris 在其生产环境中。
图1 Apache Doris倒退历程
2、Apache Doris 在数据分析中的定位
作为一款极速易用的剖析型数据库,Apache Doris提供了丰盛的数据接入形式,存储在RDBMS、日志或业务零碎等源端的数据能够通过多种形式导入Doris,也能够通过CDC、Kafka音讯队列、流解决或批处理引擎(Flink、Storm、Spark)以及ETL工具等进行数据集成与解决后加载进Doris中,由Doris承接各种剖析负载。与此同时,Apache Doris还能够以内部表的形式拜访来自Elasticsearch、MySQL、PostgreSQL、Oracle等数据库以及Hive、Iceberg、Hudi等湖仓中的数据,能够减速湖仓查问或者进行跨数据源的联邦查问。
基于Apache Doris杰出的查问性能和丰盛的数据接入形式,Apache Doris能够高效反对多种业务场景,包含用户行为剖析、日志检索剖析、交易订单剖析、自助BI平台、实时大屏及治理驾驶舱、用户画像等。
图2 Apache Doris在数据分析中的定位
3、Apache Doris 次要适宜的剖析负载
Apache Doris 适宜的剖析负载能够概括为以下四个场景:
- 多维报表剖析:适宜面向企业外部业务人员的多维报表,能够高效承载超高并发和毫秒级别查问延时的业务需要。
- Ad-hoc剖析:适宜企业外部数据分析师在自助BI剖析平台上进行交互式数据摸索,查问模式灵便多变、数据吞吐要求高。
- 对立数仓:通过一个平台满足对立的数据仓库建设需要,简化繁琐的大数据技术栈,通过资源隔离来同时满足不同业务对数据处理和利用的多样需要。
- 湖仓减速和联邦剖析:以表面的模式查问位于离线数仓hive以及数据湖Iceberg, Hudi, Delta lake中的数据,借助高效向量化执行引擎和优化器,实现数据分析效率数倍的晋升。
图3 Apache Doris 适宜剖析负载的四个场景
目前,Apache Doris的开源用户遍布国内支流的互联网公司,除此之外、Apache Doris也被利用在物流、制造业,金融业,游戏等畛域。
图4 Apache Doris 局部开源用户
4、Apache Doris 核心技术
Apache Doris 的第一个核心技术是简略易用。
首先是架构简略,Doris 只有两个主过程模块,一个是Frontend(FE),能够了解为 Doris 的管控节点,次要负责用户申请的接入、查问打算的解析、元数据的存储和集群治理相干工作。另一个是 Backend(BE),次要负责数据存储、查问打算的执行。Apache Doris 没有任何内部组件(如Zookeeper、HDFS等)依赖的,这种高度集成的架构设计极大的简化了一款分布式系统的运维老本。同时FE和BE这两类过程都是能够横向扩大的,并且扩容缩容过程非常简单。
其次是应用简略,Apache Doris反对规范SQL,能够反对聚合、排序、过滤以及多表Join、子查问、窗口函数等语法并反对UDF和UDAF。并且Apache Doris高度兼容MySQL协定,用户能够应用各类BI以及客户端工具轻松对接Doris。
图5 Apache Doris 核心技术:简略易用
Apache Doris 的第二个核心技术是存储引擎的性能卓越。
首先体现在列式存储引擎,数据依照列存储,在查问时能够缩小无用数据的扫描,并且通过多种编码方式实现了超高的数据压缩比,同时丰盛的索引构造也能够进一步缩小数据扫描量。以后Apache Doris 反对sorted short key、Min/max、Bloom filter、invert index等多种索数据引。
其次Apache Doris的性能卓越还体现在场景优化的存储模型,aggregate key模型能够通过预聚合大幅晋升性能、unique key模型能够在雷同key列上进行数据笼罩、实现行级别数据更新,duplicate key模型能够保留最明细数据。在数据模型之上,Apache Doris还提供了强统一的物化视图,物化视图表与基表的数据始终保持一致性,用户查问时还能够主动匹配最优的物化视图返回查问后果。
图6 Apache Doris 存储引擎的卓越性能
Apache Doris 的第三个核心技术是查问引擎的性能卓越。
首先是向量化执行引擎。向量化执行引擎是Apache Doris在1.0版本新增的性能,过来 Apache Doris 的 SQL 执行引擎是基于行式内存格局以及基于传统的火山模型进行设计的,在进行 SQL 算子与函数运算时存在非必要的开销,导致 Apache Doris 执行引擎的效率受限,并不适应古代 CPU 的体系结构。向量化执行引擎的指标是替换 Apache Doris 以后的行式 SQL 执行引擎,充沛开释古代 CPU 的计算能力,冲破在 SQL 执行引擎上的性能限度,施展出极致的性能体现。
基于古代 CPU 的特点与火山模型的执行特点,向量化执行引擎从新设计了在列式存储系统的 SQL 执行引擎:
- 从新组织内存的数据结构,用 Column替换 Tuple,进步了计算时 Cache 亲和度,分支预测与预取内存的友好度
- 分批进行类型判断,在本次批次中都应用类型判断时确定的类型,将每一行类型判断的虚函数开销摊派到批量级别。
- 通过批级别的类型判断,打消了虚函数的调用,让编译器有函数内联以及 SIMD 优化的机会
基于以上个性,向量化执行引擎大大提高了 CPU 在 SQL 执行时的效率,通过内部测试,在款表聚合场景下性能有5-10倍的晋升。
其次是基于分布式MPP的查问框架,Doris在执行SQL时能够在节点间与节点内并行执行,大幅晋升了SQL执行的效率,同时也反对大表的shuffle 分布式Join,进一步利用多节点资源进行并行数据处理。
图7 Apache Doris 查问引擎的卓越性能
同时,咱们对查问引擎的多种算子进行优化。例如对本来阻塞型的聚合算子做了自适应两阶段的优化,防止数据聚合时不必要的等待时间。同时针对Join算子设计了Runtime Fliter,在左右表进行Join的时候为连贯列生成了过滤构造推给左表,大大减小了Probe Table须要传输的数据量。针对不同类型的数据,实现了In/Min/Max/Bloom Filter等不同类型的Filter,并且Filter能够穿透吓退到最底层的扫描节点。
Runtime Filter是十分重要的一个优化伎俩,通过咱们测试,它对SSB规范测试数据集的局部查问有2-10倍晋升。
图8 Apache Doris 核心技术:查问引擎的卓越性能
稳固牢靠是Apache Doris 的第四个核心技术,别离体现在元数据、数据管理、导入事务、备份复原上这四个方面。
- 元数据管理:元数据采取内存构造+Log的形式存储,能够保障高性能、高可用和高牢靠。Log存储应用BDBJE,同时应用类Paxos的一致性协定复制到多节点。FE能够通过配置多个节点来保障服务的高可用性以及查问性能的线型拓展。
- 数据管理:数据能够依据Range/List分区和Bucket Hash分桶后划分成多个Tablet(数据分片),每个Tablet都能够以多正本的模式复制到多台机器上存储,在节点下线或扩容时,数据分片能主动在多台节点上主动负载平衡。
- 导入事务:通过两阶段提交保障多表导入的原子性,应用MVCC机制来做并发管制,通过内部导入的起码一次以及Doris外部的lable机制保障最多一次,最终实现Exactly Once,数据不丢不重。
- 备份复原:Doris反对将数据以文件的模式,备份到远端存储系统中。并通过复原命令复原到任意Doris集群基于此性能能够对数据定期的进行快照备份,也能够通过这个性能,在不同集群间进行数据迁徙。
图9 Apache Doris 核心技术:稳固牢靠
将来布局
Apache Doris 社区的倒退逐步凋敝,累计贡献者规模曾经增至323名,并处于持续增长中;月沉闷贡献者已靠近70人,提交超过300个Commits。
图10 Apache Doris 在C++我的项目中登上 GitHub Trending第二名
图11 Apache Doris 在2022年的倒退布局
对于SelectDB
SelectDB是一家开源技术公司,致力于为Apache Doris社区提供一个由全职工程师、产品经理和反对工程师组成的团队,凋敝开源社区生态,打造实时剖析型数据库畛域的国内工业界规范。基于Doris研发新一代云原生实时数仓SelectDB,运行云上,为用户和客户提供开箱即用的能力。
目前公司曾经实现天使轮和天使+轮融资,融资金额达3亿元人民币。
以下是咱们的联系方式,咱们很快乐与酷爱技术的你独特交换。我明天的分享就到这里,谢谢大家!
问答环节
分享完结后,衣国垒老师也急躁解答观众们在问答区提出的疑难,咱们也在此整顿成视频,供大家查看、学习。
问题一览
- 向量化引擎在反对simd上是怎么优化的?
- Doris能够代替Greenplum、ES、ClickHouse吗?
- Doris能够跑规范的TPCH和TPC-DS吗?有没有相干的测试脚本分享一下。
- 多个FE是什么机制,属于多主吗,多个FE如何同时解决客户端的增删改查的?
点击原文可查看问题答复视频:https://www.modb.pro/db/407457
以上就是我明天分享的全部内容,谢谢大家!
更多精彩内容,欢送大家观看现场视频回放:
https://www.modb.pro/video/6388
- 查看原文:https://www.modb.pro/db/407457
- 查看【国产数据库沙龙】实时数仓专场文章、视频回放资源:https://www.modb.pro/topic/405214
欲了解更多能够进入墨天轮,围绕数据人的学习成长提供一站式的全面服务,打造集新闻资讯、在线问答、流动直播、在线课程、文档阅览、资源下载、常识分享及在线运维为一体的对立平台,继续促成数据畛域的常识流传和技术创新。
关注官网公众号: 墨天轮、 墨天轮平台、墨天轮成长营、数据库国产化 、数据库资讯