Doris概述篇一、前言Doris由百度大数据部研发之前叫百度Palo于2017年开源2018年贡献到 Apache 社区后更名为Doris。二、Doris简介Apache Doris是一个现代化的基于MPP大规模并行处理技术的分析型数据库产品。简单来说MPP是将任务并行的分散到多个服务器和节点上在每个节点上计算完成后将各自部分的结果汇总在一起得到最终的结果(与Hadoop相似)。仅需亚秒级响应时间即可获得查询结果有效地支持实时数据分析。Apache Doris可以满足多种数据分析需求例如固定历史报表实时数据分析交互式数据分析和探索式数据分析等。令您的数据分析工作更加简单高效。MPP ( Massively Parallel Processing )即大规模并行处理在数据库非共享集群中每个节点都有独立的磁盘存储系统和内存系统业务数据根据数据库模型和应用特点划分到各个节点上每台数据节点通过专用网络或者商业通用网络互相连接彼此协同计算作为整体提供数据库服务。非共享数据库集群有完全的可伸缩性、高可用、高性能、优秀的性价比、资源共享等优势。简单来说MPP 是将任务并行的分散到多个服务器和节点上在每个节点上计算完成后将各自部分的结果汇总在一起得到最终的结果 ( 与 Hadoop 相似 )。三、核心特性基于MPP大规模并行处理架构的分析型数据库性能卓越PB级别数据毫秒/秒级响应支持标准SQL语言兼容MySQL协议向量化执行器高效的聚合表技术新型预聚合技术Rollup高性能、高可用、高可靠极简运维弹性伸缩四、Doris特点性能卓越TPC-H、TPC-DS性能领先性价比高高并发查询100台集群可达10w QPS流式导入单节点50MB/s小批量导入毫秒延迟简单易用高度兼容MySql协议支持在线表结构变更高度集成不依赖于外部存储系统扩展性强架构优雅单集群可以水平扩展至200台以上高可用性多副本元数据高可用五、开源OLAP引擎对比OLTP与OLAPOLTP是 Online Transaction Processing 的简称OLAP 是 OnLine Analytical Processing 的简称OLTP的查询一般只会访问少量的记录且大多时候都会利用索引。比如最常见的基于主键的 CRUD 操作OLAP 的查询一般需要 Scan 大量数据大多时候只访问部分列聚合的需求SumCountMaxMin 等会多于明细的需求查询原始的明细数据HTAPHTAP 是 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中以供上层的报表工具或者数据分析师查询使用。
Doris概述介绍
Doris概述篇一、前言Doris由百度大数据部研发之前叫百度Palo于2017年开源2018年贡献到 Apache 社区后更名为Doris。二、Doris简介Apache Doris是一个现代化的基于MPP大规模并行处理技术的分析型数据库产品。简单来说MPP是将任务并行的分散到多个服务器和节点上在每个节点上计算完成后将各自部分的结果汇总在一起得到最终的结果(与Hadoop相似)。仅需亚秒级响应时间即可获得查询结果有效地支持实时数据分析。Apache Doris可以满足多种数据分析需求例如固定历史报表实时数据分析交互式数据分析和探索式数据分析等。令您的数据分析工作更加简单高效。MPP ( Massively Parallel Processing )即大规模并行处理在数据库非共享集群中每个节点都有独立的磁盘存储系统和内存系统业务数据根据数据库模型和应用特点划分到各个节点上每台数据节点通过专用网络或者商业通用网络互相连接彼此协同计算作为整体提供数据库服务。非共享数据库集群有完全的可伸缩性、高可用、高性能、优秀的性价比、资源共享等优势。简单来说MPP 是将任务并行的分散到多个服务器和节点上在每个节点上计算完成后将各自部分的结果汇总在一起得到最终的结果 ( 与 Hadoop 相似 )。三、核心特性基于MPP大规模并行处理架构的分析型数据库性能卓越PB级别数据毫秒/秒级响应支持标准SQL语言兼容MySQL协议向量化执行器高效的聚合表技术新型预聚合技术Rollup高性能、高可用、高可靠极简运维弹性伸缩四、Doris特点性能卓越TPC-H、TPC-DS性能领先性价比高高并发查询100台集群可达10w QPS流式导入单节点50MB/s小批量导入毫秒延迟简单易用高度兼容MySql协议支持在线表结构变更高度集成不依赖于外部存储系统扩展性强架构优雅单集群可以水平扩展至200台以上高可用性多副本元数据高可用五、开源OLAP引擎对比OLTP与OLAPOLTP是 Online Transaction Processing 的简称OLAP 是 OnLine Analytical Processing 的简称OLTP的查询一般只会访问少量的记录且大多时候都会利用索引。比如最常见的基于主键的 CRUD 操作OLAP 的查询一般需要 Scan 大量数据大多时候只访问部分列聚合的需求SumCountMaxMin 等会多于明细的需求查询原始的明细数据HTAPHTAP 是 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中以供上层的报表工具或者数据分析师查询使用。