Apache Doris产品调研报告

本文介绍截至2021年3月12日,能搜集到的Apache doris的产品信息,现有客户,厂商,与其它数据库对比报告等。

1. 概述

Doris前身是百度Palo,是百度开发的面向在线报表和分析的数据仓库系统,基于C++和Java开发,集成了Google Mesa和Apache Impala的技术,现为Apache开源产品。

structure

1.1. 发展历程

2017年正式在 GitHub 上开源,2018年贡献给 Apache 开源基金会。

1.2. 现状

到目前为止,已经有上百家公司在使用Apache Doris进行数据分析工作。包括美团、小米、京东、作业帮、百信银行等。

产品聚焦在大数据仓库分析场景,特别是ROLAP,其提供的物化视图,聚合索引,自动上卷表(RoolUP)等功能可以极大的提高分析场景性能。支持MySQL语法减轻入门使用和迁移难度。

现在网上能找到的服务提供商,除了百度外,现有开源社区的主要核心开发人员都在鼎石(DoriaDB)。

2. 主要客户

主要客户:百度内部应用于200多个产品线,美团、小米、京东、作业帮等。

2.1. 官网

2.2. 百度智能云

2.3. 鼎石

3. 国内厂商

3.1. 百度智能云数据仓库Doris/Palo

https://cloud.baidu.com/product/palo.html

数据仓库Doris/Palo是基于Apache Doris(百度自研分析型数据库引擎)构建的企业级MPP云数据仓库,Doris全面兼容MySQL协议,提供快捷查询UI,易于使用;支持高并发低延时查询,支持PB级以上的超大数据集,可有效地支持在线实时数据分析。

3.2. 鼎石(DorisDB)

https://www.dorisdb.com/zh-CN/index

北京鼎石纵横科技有限公司是一家专注于大数据核心技术的高科技公司。公司的核心产品是基于Apache开源基金会顶级项目,Apache Doris开发的新一代极速MPP分析型数据库系统DorisDB。

公司的成员均来自于百度,阿里,微软,美团,京东,小米,字节跳动等互联网头部公司的基础架构和大数据团队。Apache Doris的核心开发人员大部分都在鼎石科技数据库团队任职。

4. 应用客户和业务类型

重点在数仓、实时统计分析ROLAP。

4.1. 百度

2019年,Doris在百度内部部署超过1000台机器,包括百度凤巢和百度统计在内的200多个业务线。最大单个业务数据量超过500TB。

4.2. 京东

Apache Doris在京东广告的应用实践

通过一年多时间的生产环境使用,Doris满足了我们日常使用的需求,并通过了多次大促的考验,证明了其在广告效果数据场景下适用性,和高并发场景下的可靠性。在日常使用中,其良好的设计也大大降低我们的维护成本,缩短了我们日常业务的开发时间。Doris已经成为了京东广告的核心系统之一。

4.3. 美团外卖

美团外卖实时数仓建设实践

4.4. 作业帮

作业帮基于Apache Doris的数仓实践

4.5. 小米

基于Apache Doris的小米增长分析平台实践

4.6. 搜狐

搜狐智能媒体数据仓库体系建设实践

4.7. 一点资讯

Apache Doris在一点资讯自媒体平台的应用

4.8. 新浪微博

Apache Doris在新浪微博的应用

4.9. 美团点评

Doris在美团点评的应用 (ROLAP美团外卖准实时数仓)

5. 核心特性

5.1. 官网

5.2. 百度智能云

5.2.1. 高效查询

业界领先的MPP查询引擎、列式存储、智能索引、向量执行

高度兼容SQL标准,并提供库内分析、窗口函数等高级分析功能

5.2.2. 数据导入

支持批量数据的原子性导入

支持流数据的低延迟导入

5.2.3. 在线数据管理

无须停服务即可建立物化视图、更改表结构

支持灵活高效的数据恢复

5.2.4. 物化视图

物化视图随原始表自动更新

自动选择最合适的物化视图完成查询

·

5.3. 鼎石

5.3.1. 极速SQL查询

  • 全新的向量化执行引擎,亚秒级查询延时,单节点每秒可处理多达100亿行数据。
  • 强大的MPP执行框架,支持星型模型和雪花模型,极致的Join性能。
  • 综合查询速度比其他产品快10-100倍

5.3.2. 实时数据分析

  • 新型列式存储引擎,支持大规模数据实时写入,秒级实时性保证。
  • 支持业务指标实时聚合,加速实时多维数据分析。
  • 新型读写并发管理模式,可同时高效处理数据读取和写入。

5.3.3. 高并发查询

  • 灵活的资源分配策略,每秒可支持高达1万以上的并发查询。
  • 可高效支持数千用户同时进行数据分析。

5.3.4. 轻松管理大数据

  • 支持在大数据规模下进行在线弹性扩展,扩容不影响线上业务。集群可扩展至数百节点,PB量级数据。
  • 集群运行高度自治化,故障自恢复,运维成本低。

5.3.5. 国产核心软件

  • 完全自主创新,全球领先。
  • 更完善的本地化专家服务体系。

5.4. 其它总结

  1. 完全兼容MySQL协议;
  2. 采用列式存储、对数据以高压缩比进行压缩存储、向量化执行、LLVM优化等先进技术,因此获得了极高的查询效率;
  3. 支持多种存储模型:同时支持类似于Mesa将列分为Key和Value的存储模型,同时支持Unique Key和Dup Key的存储模型。用户可以根据自己的业务场景,选用不同的存储模型;
  4. 支持两层分区;
  5. 支持多种数据导入方式;
  6. 安全资源隔离扩容缩容;
  7. 备份和恢复;8
  8. 支持web监控和管理。

6. 测试对比

6.1. 鼎石DorisDB 与 ClickHouse和TIDB对比

https://forum.dorisdb.com/t/topic/114

从实际业务场景测试结果看, DorisDB和ClickHouse性能和成硬件本均秒杀TIDB, 同时DorisDB性能优于ClickHouse且是本次测试中硬件配置最差的. DorisDB支持MySQL协议, 标准SQL, 对于研发的代码改动量更少, 易用性更佳。

6.2. 京东广告应用Clickhouse、Druid对比选型

https://www.dorisdb.com/zh-CN/blog/jingdong

目前开源的OLAP引擎很多,但由于面临大促的压力,我们需要尽快完成选型并进行数据迁移,因此我们只考察了比较出名的几个OLAP系统:ClickHouse,Druid和Doris。最终我们选择了Doris来替换我们的原有系统,主要基于以下几方面的考虑:

1. Doris的查询速度是亚秒级的,并且相对ClickHouse来说,Doris对高并发的支持要优秀得多。

2. Doris扩容方便,数据可以自动进行负载均衡,解决了我们原有系统的痛点。ClickHouse在扩容时需要进行数据重分布,工作量比较大。

3. Doris支持Rollup和Online Schema Change,这对我们日常业务需求十分友好。而且由于支持MySQL协议,Doris可以很好地和之前已有的系统进行融合。而Druid对标准SQL的支持有限,并且不支持MySQL协议,对于我们来说改造成本很高。

7. 参考资料

1、http://doris.apache.org/master/zh-CN/
2、http://www.xinhuanet.com/tech/2018-07/18/c_1123145165.htm
3、https://www.dorisdb.com/zh-CN/index
4、https://www.dorisdb.com/zh-CN/blog
5、https://zhuanlan.zhihu.com/p/87146121
6、https://www.codercto.com/a/92729.html
7、https://baijiahao.baidu.com/s?id=1633669902039812353&wfr=spider&for=pc