关于数据库:墨天轮访谈-SelectDB-衣国垒Apache-Dorisincubating10版本特性解析与未来规划

2次阅读

共计 4498 个字符,预计需要花费 12 分钟才能阅读完成。

分享嘉宾 衣国垒 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 亿元人民币。

以下是咱们的联系方式,咱们很快乐与酷爱技术的你独特交换。我明天的分享就到这里,谢谢大家!

问答环节

分享完结后,衣国垒老师也急躁解答观众们在问答区提出的疑难,咱们也在此整顿成视频,供大家查看、学习。

👇问题一览

  1. 向量化引擎在反对 simd 上是怎么优化的?
  2. Doris 能够代替 Greenplum、ES、ClickHouse 吗?
  3. Doris 能够跑规范的 TPCH 和 TPC-DS 吗?有没有相干的测试脚本分享一下。
  4. 多个 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

欲了解更多能够进入👉墨天轮,围绕数据人的学习成长提供一站式的全面服务,打造集新闻资讯、在线问答、流动直播、在线课程、文档阅览、资源下载、常识分享及在线运维为一体的对立平台,继续促成数据畛域的常识流传和技术创新。

关注官网公众号:墨天轮、墨天轮平台、墨天轮成长营、数据库国产化、数据库资讯

正文完
 0