Project Icon

doris

MPP架构实时分析数据库 提供亿级数据秒级响应

Apache Doris是基于MPP架构的开源实时分析数据库,可在海量数据下实现亚秒级响应。它支持高并发点查询和复杂分析,适用于报表分析、即席查询、统一数据仓库和数据湖查询加速等场景。Doris采用列式存储引擎,结合多种存储模型和索引结构,通过向量化查询引擎和自适应执行技术提升性能。该系统兼容MySQL协议,使用标准SQL,便于部署和扩展。

Apache Doris

许可证 GitHub 发布 OSSRank 提交活动 英文文档 中文文档

官方网站 快速下载

     

Apache Doris 是一个基于 MPP 架构的易用、高性能和实时的分析型数据库,以其极速和易用性而闻名。它只需亚秒级响应时间即可在海量数据下返回查询结果,不仅可以支持高并发的点查询场景,还能支持高吞吐的复杂分析场景。

这些特性使得 Apache Doris 成为报表分析、即席查询、统一数据仓库和数据湖查询加速等场景的理想工具。用户可以在 Apache Doris 上构建各种应用,如用户行为分析、AB 测试平台、日志检索分析、用户画像分析和订单分析等。

🎉 2.1.4 版本现已发布。请查看 🔗发布说明。2.1 版本在 TPC-DS 1TB 测试中展现出 100% 更高的开箱即用查询性能,增强的数据湖分析速度比 Trino 和 Spark 快 4-6 倍,通过新的 Variant 类型和一套分析函数为半结构化数据分析提供了强大支持,异步物化视图加速查询,优化了大规模实时写入,并通过稳定性和运行时 SQL 资源跟踪改进了工作负载管理。

🎉 2.0.12 版本现已发布!这个全面进化且稳定的版本已准备好供所有用户升级。请查看 🔗发布说明

👀 请查看 🔗官方网站,了解 Apache Doris 的核心功能、博客和用户案例的完整列表。

📈 使用场景

如下图所示,各种数据源经过整合和处理后,通常存储在实时数据仓库 Apache Doris 和离线数据湖或数据仓库(如 Apache Hive、Apache Iceberg 或 Apache Hudi)中。



Apache Doris 广泛应用于以下场景:

  • 报表分析

    • 实时仪表盘
    • 面向内部分析师和管理者的报表
    • 面向高并发用户或客户的报表分析:如网站分析和广告报表,通常需要处理数千 QPS 并要求毫秒级响应时间。一个成功的用户案例是中国电商巨头京东在广告报表中使用 Doris,每天接收 100 亿行数据,处理超过 10,000 QPS,99% 的查询延迟在 150 毫秒以内。
  • 即席查询。面向分析师的自助分析,具有不规则的查询模式和高吞吐量要求。小米基于 Doris 构建了一个增长分析平台(Growth Analytics,GA),利用用户行为数据进行业务增长分析,平均查询延迟为 10 秒,95% 的查询延迟在 30 秒以内,每天处理数万次 SQL 查询。

  • 统一数据仓库构建。Apache Doris 允许用户通过单一平台构建统一数据仓库,避免了处理复杂软件栈的麻烦。中国火锅连锁海底捞使用 Doris 构建了统一数据仓库,替代了原有的由 Apache Spark、Apache Hive、Apache Kudu、Apache HBase 和 Apache Phoenix 组成的复杂架构。

  • 数据湖查询。Apache Doris 通过使用外部表联合 Apache Hive、Apache Iceberg 和 Apache Hudi 中的数据,避免了数据复制,从而实现了出色的查询性能。

🖥️ 核心概念

📂 Apache Doris 的架构

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

  • Frontend (FE):用户请求访问、查询解析和规划、元数据管理、节点管理等。

  • Backend (BE):数据存储和查询计划执行。

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


Apache Doris 的整体架构


在接口方面,Apache Doris 采用 MySQL 协议,支持标准 SQL,并与 MySQL 方言高度兼容。用户可以通过各种客户端工具访问 Doris,并支持与 BI 工具的无缝连接。

💾 存储引擎

Doris 使用列式存储引擎,按列对数据进行编码、压缩和读取。这使得压缩比非常高,并大大减少了不相关的数据扫描,从而更有效地利用 IO 和 CPU 资源。Doris 支持各种索引结构以最小化数据扫描:

  • 排序复合键索引:用户可以指定最多三列形成复合排序键。这可以有效地裁剪数据,更好地支持高并发报表场景。
  • MIN/MAX 索引:这可以有效地过滤数值类型的等值和范围查询。
  • 布隆过滤器:对高基数列的等值过滤和裁剪非常有效。
  • 倒排索引:这可以实现任何字段的快速搜索。

💿 存储模型

Doris 支持多种存储模型,并针对不同场景进行了优化:

  • 聚合键模型:能够合并具有相同键的值列,显著提高性能。

  • 唯一键模型:在这个模型中,键是唯一的,具有相同键的数据将被覆盖,以实现行级数据更新。

  • 重复键模型:这是一种详细的数据模型,能够详细存储事实表。

Doris 还支持强一致性物化视图。物化视图会自动选择和更新,大大降低了用户的维护成本。

🔍 查询引擎

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


查询引擎


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


Doris 查询引擎


Apache Doris 使用自适应查询执行技术,根据运行时统计信息动态调整执行计划。例如,它可以生成运行时过滤器,将其推送到探测端,并自动渗透到底部的扫描节点,这大大减少了探测中的数据量,提高了连接性能。Doris 中的运行时过滤器支持 In/Min/Max/Bloom 过滤器。

🚅 查询优化器

在优化器方面,Doris 使用 CBO 和 RBO 的组合。RBO 支持常量折叠、子查询重写、谓词下推,而 CBO 支持 Join 重排序。Doris 的 CBO 正在不断优化,以实现更精确的统计信息收集和推导,以及更准确的成本模型预测。

技术概述:🔗Apache Doris 简介

🎆 为什么选择 Apache Doris?

  • 🎯 易于使用: 两个进程,无其他依赖;在线集群扩展,自动副本恢复;兼容 MySQL 协议,使用标准 SQL。

  • 🚀 高性能: 通过列式存储引擎、现代 MPP 架构、向量化查询引擎、预聚合物化视图和数据索引,实现低延迟和高吞吐查询的极快性能。

  • 🖥️ 单一统一: 单一系统可支持实时数据服务、交互式数据分析和离线数据处理场景。

  • ⚛️ 联邦查询: 支持对 Hive、Iceberg、Hudi 等数据湖以及 MySQL 和 Elasticsearch 等数据库的联邦查询。

  • 多种数据导入方法: 支持从 HDFS/S3 批量导入和从 MySQL Binlog/Kafka 流式导入;支持通过 HTTP 接口进行微批量写入和使用 JDBC 进行实时写入。

  • 🚙 丰富的生态系统: Spark 使用 Spark-Doris-Connector 读写 Doris;Flink-Doris-Connector 使 Flink CDC 能够实现对 Doris 的 exactly-once 数据写入;提供 DBT Doris Adapter 以使用 DBT 在 Doris 中转换数据。

🙌 贡献者

**Apache Doris 已于 2022 年 6 月成功从 每月活跃贡献者

贡献者随时间变化

我们衷心感谢 🔗社区贡献者 对Apache Doris的贡献。

👨‍👩‍👧‍👦 用户

Apache Doris 目前在中国和全球拥有广泛的用户基础,截至今日,Apache Doris 已在全球数千家公司的生产环境中使用。 中国市值或估值排名前50的互联网公司中,超过80%长期使用Apache Doris,包括百度、美团、小米、京东、字节跳动、腾讯、网易、快手、新浪、360、米哈游和贝壳控股等。它在金融、能源、制造业和电信等传统行业中也被广泛使用。

Apache Doris 的用户: 🔗用户列表

在Apache Doris网站添加您公司的logo: 🔗添加您的公司

👣 入门

📚 文档

所有文档 🔗文档

⬇️ 下载

所有发布版本和二进制版本 🔗下载

🗄️ 编译

查看如何编译 🔗编译

📮 安装

查看如何安装和部署 🔗安装和部署

🧩 组件

📝 Doris 连接器

Doris 提供了 Spark/Flink 通过连接器读取存储在 Doris 中的数据的支持,同时也支持通过连接器将数据写入 Doris。

🔗apache/doris-flink-connector

🔗apache/doris-spark-connector

🌈 社区和支持

📤 订阅邮件列表

邮件列表是 Apache 社区最受认可的交流形式。查看如何 🔗订阅邮件列表

🙋 报告问题或提交 Pull Request

如果您遇到任何问题,欢迎提交 🔗GitHub Issue 或在 🔗GitHub Discussion 中发帖,并通过提交 🔗Pull Request 来修复它

🍻 如何贡献

我们欢迎您的建议、评论(包括批评)、意见和贡献。查看 🔗如何贡献 和 🔗代码提交指南

⌨️ Doris 改进提案 (DSIP)

🔗Doris 改进提案 (DSIP) 可以被视为 所有重大功能更新或改进的设计文档集合

🔑 后端 C++ 编码规范

🔗 后端 C++ 编码规范 应被严格遵守,这将帮助我们实现更好的代码质量。

💬 联系我们

通过以下邮件列表联系我们。

名称范围
dev@doris.apache.org开发相关讨论订阅取消订阅存档

🧰 链接

📜 许可证

Apache License, Version 2.0

注意 一些第三方依赖的许可证与 Apache 2.0 许可证不兼容。因此,您需要禁用某些 Doris 功能以符合 Apache 2.0 许可证。详情请参阅 thirdparty/LICENSE.txt

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号