前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >大数据Doris(一):Doris概述篇

大数据Doris(一):Doris概述篇

原创
作者头像
Lansonli
发布2023-12-28 23:17:13
13.2K0
发布2023-12-28 23:17:13
举报
文章被收录于专栏:Lansonli技术博客

Doris概述篇

一、前言

Doris由百度大数据部研发,之前叫百度Palo,于2017年开源,2018年贡献到 Apache 社区后,更名为Doris。

二、​​​​​​​Doris简介

Apache Doris是一个现代化的基于MPP(大规模并行处理)技术的分析型数据库产品。简单来说,MPP是将任务并行的分散到多个服务器和节点上,在每个节点上计算完成后,将各自部分的结果汇总在一起得到最终的结果(与Hadoop相似)。仅需亚秒级响应时间即可获得查询结果,有效地支持实时数据分析。

Apache Doris可以满足多种数据分析需求,例如固定历史报表,实时数据分析,交互式数据分析和探索式数据分析等。令您的数据分析工作更加简单高效。

MPP ( Massively Parallel Processing ),即大规模并行处理,在数据库非共享集群中,每个节点都有独立的磁盘存储系统和内存系统,业务数据根据数据库模型和应用特点划分到各个节点上,每台数据节点通过专用网络或者商业通用网络互相连接,彼此协同计算,作为整体提供数据库服务。非共享数据库集群有完全的可伸缩性、高可用、高性能、优秀的性价比、资源共享等优势。简单来说,MPP 是将任务并行的分散到多个服务器和节点上,在每个节点上计算完成后,将各自部分的结果汇总在一起得到最终的结果 ( 与 Hadoop 相似 )。

三、​​​​​​​核心特性

  1. 基于MPP(大规模并行处理)架构的分析型数据库
  2. 性能卓越,PB级别数据毫秒/秒级响应
  3. 支持标准SQL语言,兼容MySQL协议
  4. 向量化执行器
  5. 高效的聚合表技术
  6. 新型预聚合技术Rollup
  7. 高性能、高可用、高可靠
  8. 极简运维,弹性伸缩

四、​​​​​​​​​​​​​​Doris特点

  • 性能卓越

TPC-H、TPC-DS性能领先,性价比高,高并发查询,100台集群可达10w QPS,流式导入单节点50MB/s,小批量导入毫秒延迟

  • 简单易用

高度兼容MySql协议;支持在线表结构变更高度集成,不依赖于外部存储系统

  • 扩展性强

架构优雅,单集群可以水平扩展至200台以上

  • 高可用性

多副本,元数据高可用

五、​​​​​​​​​​​​​​开源OLAP引擎对比

  • OLTP 与 OLAP

OLTP是 Online Transaction Processing 的简称;OLAP 是 OnLine Analytical Processing 的简称

OLTP的查询一般只会访问少量的记录,且大多时候都会利用索引。比如最常见的基于主键的 CRUD 操作

OLAP 的查询一般需要 Scan 大量数据,大多时候只访问部分列,聚合的需求(Sum,Count,Max,Min 等)会多于明细的需求(查询原始的明细数据)

  • HTAP

HTAP 是 Hybrid Transactional(混合事务)/Analytical Processing(分析处理)的简称。

基于创新的计算存储框架,HTAP 数据库能够在一份数据上同时支撑业务系统运行和 OLAP 场景,避免在传统架构中,在线与离线数据库之间大量的数据交互。此外,HTAP 基于分布式架构,支持弹性扩容,可按需扩展吞吐或存储,轻松应对高并发、海量数据场景。

目前,实现 HTAP 的数据库不多,主要有 PingCAP 的 TiDB、阿里云的 HybridDB for MySQL、百度的 BaikalDB 等。其中,TiDB 是国内首家开源的 HTAP 分布式数据库。

  • OLAP分类

MOLAP:通过预计算,提供稳定的切片数据,实现多次查询一次计算,减轻了查询时的计算压力,保证了查询的稳定性,是“空间换时间”的最佳路径。实现了基于Bitmap的去重算法,支持在不同维度下去重指标的实时统计,效率较高。

ROLAP:基于实时的大规模并行计算,对集群的要求较高。MPP引擎的核心是通过将数据分散,以实现CPU、IO、内存资源的分布,来提升并行计算能力。在当前数据存储以磁盘为主的情况下,数据Scan需要的较大的磁盘IO,以及并行导致的高CPU,仍然是资源的短板。因此,高频的大规模汇总统计,并发能力将面临较大挑战,这取决于集群硬件方面的并行计算能力。传统去重算法需要大量计算资源,实时的大规模去重指标对CPU、内存都是一个巨大挑战。目前Doris最新版本已经支持Bitmap算法,配合预计算可以很好地解决去重应用场景。

doris是一个ROLAP引擎, 可以满足以下需求

  • 灵活多维分析
  • 明细+聚合
  • 主键更新

对比其他的OLAP系统

  • MOLAP模式的劣势(以Kylin为例
    • 应用层模型复杂,根据业务需要以及Kylin生产需要,还要做较多模型预处理。这样在不同的业务场景中,模型的利用率也比较低。
    • 由于MOLAP不支持明细数据的查询,在“汇总+明细”的应用场景中,明细数据需要同步到DBMS引擎来响应交互,增加了生产的运维成本。
    • 较多的预处理伴随着较高的生产成本。
  • ROLAP模式的优势
    • 应用层模型设计简化,将数据固定在一个稳定的数据粒度即可。比如商家粒度的星形模型,同时复用率也比较高。
    • App层的业务表达可以通过视图进行封装,减少了数据冗余,同时提高了应用的灵活性,降低了运维成本。
    • 同时支持“汇总+明细”。
    • 模型轻量标准化,极大的降低了生产成本。

综上所述,在变化维、非预设维、细粒度统计的应用场景下,使用MPP引擎驱动的ROLAP模式,可以简化模型设计,减少预计算的代价,并通过强大的实时计算能力,可以支撑良好的实时交互体验。

总结:

  • 数据压缩率Clickhouse好
  • ClickHouse单表查询性能优势巨大
  • Join查询两者各有优劣,数据量小情况下Clickhouse好,数据量大Doris好
  • Doris对SQL支持情况要好

六、​​​​​​​​​​​​​​使用场景

上图是整个Doris的具体使用场景,主要是它的接收数据源,以及它的一个整体的模块,还有最后它的一个可视化的呈现。后面会有一张更详细的图去介绍它整个的来源,以及最后可以输出的数据流向。

一般情况下,用户的原始数据,比如日志或者在事务型数据库中的数据,经过流式系统或离线处理后,导入到Doris中以供上层的报表工具或者数据分析师查询使用。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • ​Doris概述篇
    • 一、前言
      • 二、​​​​​​​Doris简介
        • 三、​​​​​​​核心特性
          • 四、​​​​​​​​​​​​​​Doris特点
            • 五、​​​​​​​​​​​​​​开源OLAP引擎对比
              • 六、​​​​​​​​​​​​​​使用场景
              相关产品与服务
              大数据处理套件 TBDS
              腾讯大数据处理套件(Tencent Big Data Suite,TBDS)依托腾讯多年海量数据处理经验,基于云原生技术和泛 Hadoop 生态开源技术提供的可靠、安全、易用的大数据处理平台。 TBDS可在公有云、私有云、非云化环境,根据不同数据处理需求组合合适的存算分析组件,包括 Hive、Spark、HBase、Flink、Presto、Iceberg、Elasticsearch、StarRocks 等,以快速构建企业级数据湖仓。
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档