【大数据】Doris:基于 MPP 架构的高性能实时分析型数据库

这篇具有很好参考价值的文章主要介绍了【大数据】Doris:基于 MPP 架构的高性能实时分析型数据库。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Doris:基于 MPP 架构的高性能实时分析型数据库

1.Doris 介绍

Apache Doris 是一个基于 MPPMassively Parallel Processing大规模并行处理)架构的高性能、实时的分析型数据库,以极速易用的特点被人们所熟知,仅需亚秒级响应时间即可返回海量数据下的查询结果,不仅可以支持高并发的点查询场景,也能支持高吞吐的复杂分析场景。基于此,Apache Doris 能够较好的满足 报表分析即席查询统一数仓构建数据湖联邦查询加速 等使用场景,用户可以在此之上构建 用户行为分析AB 实验平台日志检索分析用户画像分析订单分析 等应用。

Apache Doris 最早是诞生于百度广告报表业务的 Palo 项目, 2017 2017 2017 年正式对外开源, 2018 2018 2018 7 7 7 月由百度捐赠给 Apache 基金会进行孵化,之后在 Apache 导师的指导下由孵化器项目管理委员会成员进行孵化和运营。目前 Apache Doris 社区已经聚集了来自不同行业数百家企业的 400 400 400 余位贡献者,并且每月活跃贡献者人数也超过 100 100 100 位。 2022 2022 2022 6 6 6 月,Apache Doris 成功从 Apache 孵化器毕业,正式成为 Apache 顶级项目(Top-Level ProjectTLP

Apache Doris 如今在中国乃至全球范围内都拥有着广泛的用户群体,截止目前, Apache Doris 已经在全球超过 2000 2000 2000 家企业的生产环境中得到应用,在中国市值或估值排行前 50 50 50 的互联网公司中,有超过 80 % 80\% 80% 长期使用 Apache Doris,包括百度、美团、小米、京东、字节跳动、腾讯、网易、快手、微博、贝壳等。同时在一些传统行业如金融、能源、制造、电信等领域也有着丰富的应用。

【大数据】Doris:基于 MPP 架构的高性能实时分析型数据库,大数据,大数据,数据库,doris,实时分析

2.使用场景

如下图所示,数据源经过各种数据集成和加工处理后,通常会入库到 实时数仓 Doris 和 离线湖仓HiveIcebergHudi 中),Apache Doris 被广泛应用在以下场景中。

【大数据】Doris:基于 MPP 架构的高性能实时分析型数据库,大数据,大数据,数据库,doris,实时分析

  • 报表分析

    • 实时看板 (Dashboards)
    • 面向企业内部分析师和管理者的报表
    • 面向用户或者客户的高并发报表分析(Customer Facing Analytics)。比如面向网站主的站点分析、面向广告主的广告报表,并发通常要求成千上万的 QPS ,查询延时要求毫秒级响应。著名的电商公司京东在广告报表中使用 Apache Doris ,每天写入 100 100 100 亿行数据,查询并发 QPS 上万, 99 99 99 分位的查询延时 150 150 150 m s ms ms
  • 即席查询Ad-hoc Query):面向分析师的自助分析,查询模式不固定,要求较高的吞吐。小米公司基于 Doris 构建了增长分析平台(Growing AnalyticsGA),利用用户行为数据对业务进行增长分析,平均查询延时 10 10 10 s s s 95 95 95 分位的查询延时 30 30 30 s s s 以内,每天的 SQL 查询量为数万条。

  • 统一数仓构建:一个平台满足统一的数据仓库建设需求,简化繁琐的大数据软件栈。海底捞基于 Doris 构建的统一数仓,替换了原来由 SparkHiveKuduHbasePhoenix 组成的旧架构,架构大大简化。

  • 数据湖联邦查询:通过外表的方式联邦分析位于 Hive、Iceberg、Hudi 中的数据,在避免数据拷贝的前提下,查询性能大幅提升。

3.技术概述

Doris 整体架构如下图所示,Doris 架构非常简单,只有两类进程

  • Frontend(FE),主要负责用户请求的接入、查询解析规划、元数据的管理、节点管理相关工作。
  • Backend(BE),主要负责数据存储、查询计划的执行。

这两类进程都是可以横向扩展的,单集群可以支持到数百台机器,数十 PB 的存储容量。并且这两类进程通过一致性协议来保证服务的高可用和数据的高可靠。这种高度集成的架构设计极大的降低了一款分布式系统的运维成本。
【大数据】Doris:基于 MPP 架构的高性能实时分析型数据库,大数据,大数据,数据库,doris,实时分析
使用接口 方面,Doris 采用 MySQL 协议,高度兼容 MySQL 语法,支持标准 SQL,用户可以通过各类客户端工具来访问 Doris,并支持与 BI 工具的无缝对接。Doris 当前支持多种主流的 BI 产品,包括不限于 SmartBI、DataEase、FineBI、Tableau、Power BI、SuperSet 等,只要支持 MySQL 协议的 BI 工具,Doris 就可以作为数据源提供查询支持。

存储引擎 方面,Doris 采用列式存储,按列进行数据的编码压缩和读取,能够实现极高的压缩比,同时减少大量非相关数据的扫描,从而更加有效利用 IO 和 CPU 资源。

Doris 也支持比较丰富的索引结构,来减少数据的扫描:

  • Sorted Compound Key Index:可以最多指定三个列组成复合排序键,通过该索引,能够有效进行数据裁剪,从而能够更好支持高并发的报表场景。
  • Z-order Index:使用 Z-order 索引,可以高效对数据模型中的任意字段组合进行范围查询。
  • Min/Max:有效过滤数值类型的等值和范围查询。
  • Bloom Filter:对高基数列的等值过滤裁剪非常有效。
  • Invert Index:能够对任意字段实现快速检索。

在存储模型方面,Doris 支持多种存储模型,针对不同的场景做了针对性的优化:

  • Aggregate Key 模型:相同 Key 的 Value 列合并,通过提前聚合大幅提升性能。
  • Unique Key 模型:Key 唯一,相同 Key 的数据覆盖,实现行级别数据更新。
  • Duplicate Key 模型:明细数据模型,满足事实表的明细存储。

Doris 也支持强一致的物化视图,物化视图的更新和选择都在系统内自动进行,不需要用户手动选择,从而大幅减少了物化视图维护的代价。

查询引擎 方面,Doris 采用 MPP 的模型,节点间和节点内都并行执行,也支持多个大表的分布式 Shuffle Join,从而能够更好应对复杂查询。
【大数据】Doris:基于 MPP 架构的高性能实时分析型数据库,大数据,大数据,数据库,doris,实时分析
Doris 查询引擎是向量化的查询引擎,所有的内存结构能够按照列式布局,能够达到大幅减少虚函数调用、提升 Cache 命中率,高效利用 SIMDSingle Instruction Multiple Data,单指令多数据流)指令的效果。在宽表聚合场景下性能是非向量化引擎的 5 5 5 ~ 10 10 10 倍。
【大数据】Doris:基于 MPP 架构的高性能实时分析型数据库,大数据,大数据,数据库,doris,实时分析
Doris 采用了 Adaptive Query Execution(自适应查询执行) 技术, 可以根据 Runtime Statistics 来动态调整执行计划,比如通过 Runtime Filter 技术能够在运行时生成 Filter 推到 Probe 侧,并且能够将 Filter 自动穿透到 Probe 侧最底层的 Scan 节点,从而大幅减少 Probe 的数据量,加速 Join 性能。Doris 的 Runtime Filter 支持 In / Min / Max / Bloom Filter。

优化器 方面 Doris 使用 CBO(Rule-Based Optimizer)和 RBO(Cost-Based Optimizer)结合的优化策略,RBO 支持常量折叠、子查询改写、谓词下推等,CBO 支持 Join Reorder。目前 CBO 还在持续优化中,主要集中在更加精准的统计信息收集和推导,更加精准的代价模型预估等方面。文章来源地址https://www.toymoban.com/news/detail-675185.html

到了这里,关于【大数据】Doris:基于 MPP 架构的高性能实时分析型数据库的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 数据仓库系列:StarRocks 下一代高性能分析数据仓库的架构、数据存储及表设计

    数据仓库系列:StarRocks 下一代高性能分析数据仓库的架构、数据存储及表设计

    本文是学习StarRocks的读书笔记,让你快速理解下一代高性能分析数据仓库的架构、数据存储及表设计。 StarRocks的架构相对简单。 整个系统只包含两种类型的组件,前端(FE)和后端(BE),StarRocks不依赖任何外部组件,简化了部署和维护。 FE和BE可以在不停机的情况下横向扩展。

    2024年02月16日
    浏览(8)
  • 架构篇17:高性能缓存架构

    架构篇17:高性能缓存架构

    虽然我们可以通过各种手段来提升存储系统的性能,但在某些复杂的业务场景下,单纯依靠存储系统的性能提升不够的,典型的场景有: 需要经过复杂运算后得出的数据,存储系统无能为力 例如,一个论坛需要在首页展示当前有多少用户同时在线,如果使用 MySQL 来存储当前

    2024年01月24日
    浏览(12)
  • 【架构】后端服务架构高性能设计方法

    【架构】后端服务架构高性能设计方法

    “N 高 N 可”,高性能、高并发、高可用、高可靠、可扩展、可维护、可用性等是后台开发耳熟能详的词了,它们中有些词在大部分情况下表达相近意思。本序列文章旨在探讨和总结后台架构设计中常用的技术和方法,并归纳成一套方法论。 本文主要探讨和总结服务架构设计

    2024年02月11日
    浏览(9)
  • 架构篇20:高性能负载均衡-分类及架构

    架构篇20:高性能负载均衡-分类及架构

    单服务器无论如何优化,无论采用多好的硬件,总会有一个性能天花板,当单服务器的性能无法满足业务需求时,就需要设计高性能集群来提升系统整体的处理性能。 高性能集群的本质很简单,通过增加更多的服务器来提升系统整体的计算能力。由于计算本身存在一个特点:

    2024年01月25日
    浏览(13)
  • 架构篇21:高性能负载均衡-算法

    架构篇21:高性能负载均衡-算法

    负载均衡算法数量较多,而且可以根据一些业务特性进行定制开发,抛开细节上的差异,根据算法期望达到的目的,大体上可以分为下面几类。 任务平分类:负载均衡系统将收到的任务平均分配给服务器进行处理,这里的“平均”可以是绝对数量的平均,也可以是比例或者权

    2024年01月25日
    浏览(12)
  • 从零开始学架构-计算高性能

    从零开始学架构-计算高性能

            高性能是每个程序员的追求,无论做一个系统、还是写一组代码,都希望能够达到高性能的效果。而高性能又是最复杂的一环,磁盘、操作系统、CPU、内存、缓存、网络、编程语言、数据库、架构等,每个都可能影响系统的高性能,一行不恰当的 debug 日志,一个

    2023年04月24日
    浏览(15)
  • 架构师的36项修炼-06高性能系统架构设计

    架构师的36项修炼-06高性能系统架构设计

    本课时讲解大家常听到的高性能系统架构。 高性能系统架构,主要包括两部分内容,性能测试与性能优化。性能优化又可以细分为硬件优化、中间件优化、架构优化及代码优化,知识架构图如下。 性能测试 先看系统的性能测试。性能测试是性能优化的前提和基础,也是性能

    2024年01月25日
    浏览(9)
  • 架构篇04:复杂度来源 - 高性能

    架构篇04:复杂度来源 - 高性能

    从本篇开始,我们一起深入分析架构设计复杂度的 6 个来源,先来聊聊复杂度的来源之一高性能。 对性能孜孜不倦的追求是整个人类技术不断发展的根本驱动力。例如计算机,从电子管计算机到晶体管计算机再到集成电路计算机,运算性能从每秒几次提升到每秒几亿次。但伴

    2024年01月22日
    浏览(11)
  • 构建三高架构:高性能、高可用、高可扩展

    在当今计算机科学领域,构建强大、高效的系统已成为迫切需求。为了应对用户需求的不断增加,三高架构应运而生,包括高性能、高可用性和高可扩展性。本文将深入探讨这三个关键特性,并提供基于 Java 的代码示例来说明这些概念的实际应用。 1.1 优化的系统设计 在构建

    2024年01月25日
    浏览(13)
  • SambaNova 芯片:深入解析其架构和高性能秘诀

    SambaNova 芯片:深入解析其架构和高性能秘诀

    原创 AI苏妲己  SambaNova——一家总部位于帕洛阿尔托的公司已经筹集了超过10亿美元的风险投资,不会直接向公司出售芯片。相反,它出售其定制技术堆栈的访问权限,该堆栈具有专门为运行最大的人工智能模型而设计的专有硬件和软件。 最近,SambaNova宣布推出了其新型SN

    2024年04月10日
    浏览(17)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包