doris

doris

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

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

Apache Doris数据库分析性能MPP架构SQL查询Github开源项目
<!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <div align="center">

Apache Doris

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

<div>

官方网站 快速下载

</div> <div> <a href="https://twitter.com/doris_apache"><img src="https://img.shields.io/badge/- @Doris_Apache -424549?style=social&logo=x" height=25></a> &nbsp; <a href="https://github.com/apache/doris/discussions"><img src="https://img.shields.io/badge/- Discussion -red?style=social&logo=discourse" height=25></a> &nbsp; <a href="https://apachedoriscommunity.slack.com/join/shared_invite/zt-2kl08hzc0-SPJe4VWmL_qzrFd2u2XYQA"><img src="https://img.shields.io/badge/-Slack-red?style=social&logo=slack" height=25></a> &nbsp; <a href="https://medium.com/@ApacheDoris"><img src="https://img.shields.io/badge/-Medium-red?style=social&logo=medium" height=25></a> </div> </div>

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)中。

<br /> <img src="https://yellow-cdn.veclightyear.com/ab5030c0/6aff3dd9-01ec-4b9e-82c3-069d3c2b373b.png" /> <br />

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 的存储容量。这两种进程通过一致性协议保证服务的高可用性和数据的高可靠性。这种高度集成的架构设计大大降低了分布式系统的运维成本。

<br />

Apache Doris 的整体架构

<br />

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

💾 存储引擎

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

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

💿 存储模型

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

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

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

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

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

🔍 查询引擎

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

<br />

查询引擎

<br />

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

<br />

Doris 查询引擎

<br />

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

编辑推荐精选

TRAE编程

TRAE编程

AI辅助编程,代码自动修复

Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。

AI工具TraeAI IDE协作生产力转型热门
蛙蛙写作

蛙蛙写作

AI小说写作助手,一站式润色、改写、扩写

蛙蛙写作—国内先进的AI写作平台,涵盖小说、学术、社交媒体等多场景。提供续写、改写、润色等功能,助力创作者高效优化写作流程。界面简洁,功能全面,适合各类写作者提升内容品质和工作效率。

AI辅助写作AI工具蛙蛙写作AI写作工具学术助手办公助手营销助手AI助手
问小白

问小白

全能AI智能助手,随时解答生活与工作的多样问题

问小白,由元石科技研发的AI智能助手,快速准确地解答各种生活和工作问题,包括但不限于搜索、规划和社交互动,帮助用户在日常生活中提高效率,轻松管理个人事务。

热门AI助手AI对话AI工具聊天机器人
Transly

Transly

实时语音翻译/同声传译工具

Transly是一个多场景的AI大语言模型驱动的同声传译、专业翻译助手,它拥有超精准的音频识别翻译能力,几乎零延迟的使用体验和支持多国语言可以让你带它走遍全球,无论你是留学生、商务人士、韩剧美剧爱好者,还是出国游玩、多国会议、跨国追星等等,都可以满足你所有需要同传的场景需求,线上线下通用,扫除语言障碍,让全世界的语言交流不再有国界。

讯飞智文

讯飞智文

一键生成PPT和Word,让学习生活更轻松

讯飞智文是一个利用 AI 技术的项目,能够帮助用户生成 PPT 以及各类文档。无论是商业领域的市场分析报告、年度目标制定,还是学生群体的职业生涯规划、实习避坑指南,亦或是活动策划、旅游攻略等内容,它都能提供支持,帮助用户精准表达,轻松呈现各种信息。

AI办公办公工具AI工具讯飞智文AI在线生成PPTAI撰写助手多语种文档生成AI自动配图热门
讯飞星火

讯飞星火

深度推理能力全新升级,全面对标OpenAI o1

科大讯飞的星火大模型,支持语言理解、知识问答和文本创作等多功能,适用于多种文件和业务场景,提升办公和日常生活的效率。讯飞星火是一个提供丰富智能服务的平台,涵盖科技资讯、图像创作、写作辅助、编程解答、科研文献解读等功能,能为不同需求的用户提供便捷高效的帮助,助力用户轻松获取信息、解决问题,满足多样化使用场景。

热门AI开发模型训练AI工具讯飞星火大模型智能问答内容创作多语种支持智慧生活
Spark-TTS

Spark-TTS

一种基于大语言模型的高效单流解耦语音令牌文本到语音合成模型

Spark-TTS 是一个基于 PyTorch 的开源文本到语音合成项目,由多个知名机构联合参与。该项目提供了高效的 LLM(大语言模型)驱动的语音合成方案,支持语音克隆和语音创建功能,可通过命令行界面(CLI)和 Web UI 两种方式使用。用户可以根据需求调整语音的性别、音高、速度等参数,生成高质量的语音。该项目适用于多种场景,如有声读物制作、智能语音助手开发等。

咔片PPT

咔片PPT

AI助力,做PPT更简单!

咔片是一款轻量化在线演示设计工具,借助 AI 技术,实现从内容生成到智能设计的一站式 PPT 制作服务。支持多种文档格式导入生成 PPT,提供海量模板、智能美化、素材替换等功能,适用于销售、教师、学生等各类人群,能高效制作出高品质 PPT,满足不同场景演示需求。

讯飞绘文

讯飞绘文

选题、配图、成文,一站式创作,让内容运营更高效

讯飞绘文,一个AI集成平台,支持写作、选题、配图、排版和发布。高效生成适用于各类媒体的定制内容,加速品牌传播,提升内容营销效果。

热门AI辅助写作AI工具讯飞绘文内容运营AI创作个性化文章多平台分发AI助手
材料星

材料星

专业的AI公文写作平台,公文写作神器

AI 材料星,专业的 AI 公文写作辅助平台,为体制内工作人员提供高效的公文写作解决方案。拥有海量公文文库、9 大核心 AI 功能,支持 30 + 文稿类型生成,助力快速完成领导讲话、工作总结、述职报告等材料,提升办公效率,是体制打工人的得力写作神器。

下拉加载更多