Apache Doris 是一个易于使用、高性能和统一的分析数据库。
github地址
https://github.com/apache/doris
Apache Doris 已成功从 Apache 孵化器毕业,并于 2022 年 6 月成为顶级项目。
Apache Doris 是一个开源的、基于MPP(Massive Parallel Processing,大规模并行处理)架构的分析数据库。
它以易用性、高性能和实时分析能力而闻名,能够满足报表分析、即席查询、统一数据仓库和数据湖查询加速等多种场景的需求。

Apache Doris 的架构
Apache Doris的整体架构如下图所示。Doris架构非常简单,只有两类进程。
两种类型的进程都可以水平扩展,单个集群可以支持多达数百台机器和数十PB的存储容量。而这两类流程通过一致性协议保证了服务的高可用性和数据的高可靠性。这种高度集成的架构设计大大降低了分布式系统的运维成本。

接口方面,Apache Doris采用MySQL协议,支持标准SQL,与MySQL方言高度兼容。用户可以通过各种客户端工具访问Doris,并且支持与BI工具无缝连接。
Doris 的设计初衷是为了解决大数据时代下,数据仓库和分析需求的快速增长。它能够处理PB级别的大数据集,查询速度可以达到秒级或者毫秒级,特别适合于多维分析和报表查询。在MPP架构的加持下,Doris 能够实现数据的并行处理,极大地提高了查询效率。
2017年,Palo项目开源,2018年7月,Palo将其捐赠给Apache基金会,并在Apache导师的指导下,由孵化器项目管理委员会成员进行孵化和运营。2022年6月,Doris 顺利毕业于Apache 孵化器,成为顶级项目。
Doris 的数据源可以存储在HDFS、Kafka、对象存储系统(如Amazon S3)等地方,Doris 可以将这些数据读取进来,进行存储和多副本管理,然后通过可视化工具展示报表和各种多维分析的结果。
💾 存储引擎
Doris 使用列式存储引擎,按列编码、压缩和读取数据。这样可以实现非常高的压缩比,并大大减少不相关的数据扫描,从而更有效地利用 IO 和 CPU 资源。Doris 支持各种索引结构以最大程度地减少数据扫描:
排序复合键索引:用户最多可以指定三列来组成复合排序键。这可以有效地修剪数据,以更好地支持高度并发的报告场景。
MIN/MAX 索引:这可以有效过滤数字类型的等价和范围查询。
布隆过滤器:在高基数列的等价过滤和剪枝方面非常有效
反向索引:这可以快速搜索任何字段。
💿 存储模型
Doris支持多种存储模型,并针对不同场景进行了优化:
聚合键模型:能够合并具有相同键的值列并显着提高性能
唯一键模型:该模型中的键是唯一的,相同键的数据将被覆盖,以实现行级数据更新。
重复键模型:这是一个详细的数据模型,能够详细存储事实表。
Doris 的最新版本是2.0.2,这个版本在标准基准测试上实现了超过10倍的性能提升,日志分析和湖仓场景全面提升,数据更新和写入效率更加高效稳定,支持更全面的多租户和资源隔离机制,在资源弹性和存储计算分离的方向上迈出了新的一步。它还为企业用户添加了一系列可用性功能。

查询引擎
-
Doris在其查询引擎中采用MPP模型来实现节点之间和节点内的并行执行。它还支持多个大表的分布式shuffle join,以处理复杂的查询。

Doris 查询引擎是矢量化的,所有内存结构都以柱状格式排列。这可以很大程度上减少虚拟函数调用,提高缓存命中率,并有效利用SIMD指令。Doris 在宽表聚合场景中的性能比非矢量化引擎高 5-10 倍。

Apache Doris 使用自适应查询执行技术根据运行时统计信息动态调整执行计划。例如,它可以生成运行时过滤器,将其推送到探针端,并自动穿透到底部的Scan节点,从而大大减少探针中的数据量并提高连接性能。Doris中的运行时过滤器支持In/Min/Max/Bloom过滤器。
Doris 还支持高度一致的物化视图。物化视图自动选择和更新,大大降低了用户的维护成本。
目前,Doris 已经在全球超过500家公司的生产环境中使用,其中包括中国互联网市值或估值前50强企业中的80%以上,如百度、美团、小米、京东、字节跳动、腾讯、网易、快手、微博等。它还广泛应用于金融、能源、制造、电信等传统行业。
对于程序员或者小公司来说,通过部署Apache Doris和提供相关咨询服务来赚钱,可以采取以下几种方式:
1. 部署和运维服务:程序员或者小公司可以为不具备自主部署和运维能力的企业提供Doris的部署、运维和优化服务。这包括硬件选型、软件部署、数据迁移、性能调优等方面。通过收取服务费或运维费用,程序员或者小公司可以实现盈利。
2. 定制开发服务:Doris具有一定的定制开发空间,程序员或者小公司可以根据企业客户的需求,提供定制化的功能开发、数据模型设计、报表开发等服务。通过收取开发费用,程序员或者小公司可以获得收入。
3. 技术培训和咨询:程序员或者小公司可以为企业客户的技术团队提供Doris的技术培训,帮助他们更好地了解和使用Doris。此外,还可以提供技术咨询和解决方案设计服务,帮助企业客户解决在Doris使用过程中遇到的问题。通过收取培训费和咨询费,小公司可以实现盈利。
4. 数据分析服务:程序员或者小公司可以利用Doris的高性能分析能力,为企业客户提供数据分析服务。例如,基于客户的数据进行各种统计分析、数据挖掘和预测分析等,为企业提供决策依据。通过收取数据分析费用,程序员或者小公司可以获得收入。
5. 软件代理销售:程序员或者小公司可以成为Doris的软件代理商,代表Doris品牌在本地市场进行销售,并获取一定的代理佣金。
总之,程序员或者小公司可以通过提供与Apache Doris相关的各种服务,来满足企业客户的需求,实现盈利。在开拓市场时,小公司应注重与客户建立长期合作关系,不断提升自身的技术能力和服务质量,以提高市场竞争力和客户满意度。
Apache Doris 是一个易于使用、高性能和统一的分析数据库。
github地址
https://github.com/apache/doris
我们收集了 10000+ 开源项目,点击 阅读原文