Apache Doris 大数据仓库全面解析 - 教程

news/2025/10/14 9:52:51/文章来源:https://www.cnblogs.com/wzzkaifa/p/19140024

这是一个对 Apache Doris 的全面了解指南。结合其官方网站和社区知识,我将从核心概念、架构、特性、应用场景以及快速上手等方面为您进行系统性的解析,另外还补充了Doris的竞争方案。Apache Doris 是一款面向实时分析场景的现代化数据仓库。它能够对海量实时数据进行极速分析。https://doris.apache.org/

Apache Doris

一、Apache Doris 是什么?

Apache Doris 是一个高性能、实时分析型的MPP(大规模并行处理)数据库。它最初由百度开发并开源,名为 Palo,后来捐赠给 Apache 基金会并更名为 Doris。

它的主要目标是解决在线实时报表、即席查询、统一数据仓库构建等场景下的高速数据分析问题。简单来说,它就像一个专为“实时分析”而生的超级引擎,能够在大规模数据集上实现亚秒级的查询响应。

二、核心特性(为什么选择 Doris?)

  1. 极速的查询性能

    • MPP 架构:查询任务被并行分发到集群中的所有节点,充分利用集群的计算和I/O资源。

    • 列式存储:数据按列存储,在查询时只需读取相关列,极大地减少了磁盘I/O。

    • 向量化执行引擎:利用CPU的SIMD指令,一次处理一批数据,而不是一行数据,显著提高了CPU利用率。

    • 预聚合:支持创建基于“物化视图”的Rollup表,预先计算和存储聚合结果,使得查询时可以直接命中预计算好的数据,速度极快。

  2. 易于使用

    • 兼容标准SQL:支持ANSI SQL标准和MySQL协议,用户可以直接使用熟悉的MySQL客户端和BI工具(如Tableau, FineBI, Grafana)连接Doris,学习成本极低。

    • 统一的架构:Doris同时支持离线批处理和实时数据导入,无需维护两套不同的系统(如Hive + HBase)。

    • 简化运维:系统架构简单,只有 FE(前端)和 BE(后端)两种进程,部署和扩容非常方便。

  3. 实时能力

    • 支持多种实时数据导入方式,如 Kafka Routine Load、Flink Connector、MySQL Binlog Load等,可以实现数据毫秒到秒级的延迟。

  4. 丰富的生态系统

    • 可以方便地对接 Hadoop(HDFS, Hive)、Spark、Flink 等大数据组件。

    • 支持多种数据湖分析,如 Iceberg、Hudi 等外部表,可以直接查询数据湖中的数据而无需导入。

  5. 高可用性与可扩展性

    • FE 支持多副本,通过类 Paxos 的 BDB JE 协议实现元数据的高可用和一致性。

    • BE 节点可以水平扩展,增加节点即可线性提升集群的查询和存储能力。

三、架构解析

Doris 的架构非常简洁,主要由两类进程组成:

1. Frontend (FE) - 前端节点

  • 职责:负责元数据管理、客户端连接、查询解析与规划。

  • 角色

    • Leader:只有一个,负责元数据的写入和日志同步。

    • Follower:多个,参与选举,提供元数据读取服务。

    • Observer:多个,仅同步元数据,用于扩展读能力,不参与选举。

  • 对外接口:用户通过 MySQL 协议连接到 FE。

2. Backend (BE) - 后端节点

  • 职责:负责数据存储、查询执行。

  • 每个 BE 节点存储一部分数据(表的分片/分区),并执行 FE 下发的查询任务。

  • 数据采用多副本机制,保证高可用。

工作流程简述

  1. 用户通过 MySQL 客户端发送 SQL 到任意一个 FE。

  2. FE 对 SQL 进行解析、语法分析、查询优化,生成分布式执行计划。

  3. FE 将执行计划分发给相关的 BE 节点。

  4. 各个 BE 节点并行执行,处理本地存储的数据。

  5. FE 收集各个 BE 的中间结果,进行最终聚合。

  6. 将最终结果返回给客户端。

四、典型应用场景

  1. 实时报表与 OLAP 分析

    • 为业务提供实时运营看板、多维分析报表。例如:实时销售大盘、用户行为分析。

  2. 统一数据仓库构建

    • 作为一个中心化的数据仓库,承接来自各业务线(日志、数据库、埋点等)的数据,为上层提供统一的数据查询服务。

  3. 即席查询

    • 数据工程师和分析师可以进行灵活、快速的探索性查询,无需等待长时间的 ETL 过程。

  4. 日志存储与分析

    • 替代传统的 ELK 方案,处理海量日志数据,提供更强大的聚合查询能力和更低的存储成本。

  5. 高维向量分析

    • 最新版本支持了向量索引,可以用于 AI 场景下的快速相似性搜索,如图片、音频检索。

五、数据模型(表类型)

Doris 提供了三种数据模型,以满足不同场景的需求:

  1. Duplicate Key Model(明细模型)

    • 存储最原始的数据,不做任何聚合。适用于需要保留所有明细数据的场景,如日志分析、行为流水。

  2. Aggregate Key Model(聚合模型)

    • 定义 Key 列和 Value 列。相同 Key 列的数据行,其 Value 列会在导入时进行预聚合(如 SUM, MAX, MIN)。适用于报表汇总,可以极大提升查询性能。

  3. Unique Key Model(更新模型)

    • 定义唯一 Key。对于相同 Key 的数据,后导入的数据会覆盖先导入的数据。适用于实时同步变化的业务数据,如订单状态表。

  4. (补充)Duplicate Key Model with Sequence Column

    • 在明细模型基础上,增加了版本列,用于保证数据更新的顺序。

六、快速上手

以下是一个极简的从零开始使用 Doris 的流程:

  1. 部署

    • 参考官网文档,可以通过下载二进制包或使用 Docker 进行单机或集群部署。

  2. 连接

    bash

    # 使用 MySQL 客户端连接,默认端口 9030
    mysql -h FE_HOST -P 9030 -u root
  3. 创建数据库

    sql

    CREATE DATABASE demo;
    USE demo;
  4. 创建表(以聚合模型为例)

    sql

    CREATE TABLE sales (user_id INT,date DATE,city VARCHAR(20),amount BIGINT SUM
    )
    ENGINE=olap
    AGGREGATE KEY(user_id, date, city)
    DISTRIBUTED BY HASH(user_id) BUCKETS 10;

    解释:以 user_iddatecity 为 Key,对 amount 进行 SUM 聚合。数据按 user_id 的哈希值分到 10 个桶中。

  5. 导入数据

    sql

    -- 使用 Stream Load 方式插入数据
    INSERT INTO sales VALUES 
    (1, ‘2023-10-01’, ‘Beijing’, 100),
    (2, ‘2023-10-01’, ‘Shanghai’, 200);
  6. 查询

    sql

    -- 查询每个城市的总销售额
    SELECT city, SUM(amount) AS total_sales 
    FROM sales 
    GROUP BY city;

七、总结:优势与考量

优势

  • 性能卓越:在多数场景下,查询速度比 Hive, Presto, Kylin 等更快。

  • 运维简单:架构清晰,组件少,大大降低了运维负担。

  • 生态友好:兼容 MySQL 协议,与大数据生态无缝集成。

  • 功能全面:集实时、离线、数据湖分析于一体。

考量/适用边界

  • 对于超大规模的离线 ETL 作业,Hive/Spark on Hadoop 生态的批处理成本可能更低。

  • 作为OLTP(高并发事务处理) 数据库的替代品是不合适的,它专为分析型查询设计。

  • 社区相对年轻,虽然发展迅速,但企业级功能和支持可能不如一些老牌商业数据仓库成熟。

总而言之,Apache Doris 是现代大数据架构中,作为实时分析层和统一数据仓库的一个非常出色和受欢迎的选择。 如果您正在寻找一个能够提供快速查询、易于运维且支持实时数据摄入的分析型数据库,Doris 绝对值得您深入评估。建议访问其官网 https://doris.apache.org/ 和 GitHub 仓库以获取最新信息。

Apache Doris衍生方案

Apache Doris 本身是一个非常优秀的项目,而基于它的衍生方案也极大地丰富和推动了整个生态的发展。

最核心的衍生方案就是 StarRocks,它和 Doris 同根同源,可以看作是最主要的“分支”。此外,还有一些基于 Doris/StarRocks 的商业化产品。

下面我们来详细梳理一下:

一、核心衍生方案:StarRocks

StarRocks(原名 Palo,后来改名为 Doris,然后从这个分支出来叫 StarRocks)是 Apache Doris 最著名、也是最强大的一个衍生分支。

1. 渊源与关系
  • 同根同源:StarRocks 和 Apache Doris 都起源于百度开源的 Palo 项目。

  • 分支发展:在 Palo 捐给 Apache 基金会并成为 Apache Doris 后,原核心开发团队的大部分成员成立了公司(鼎石科技),并基于某个版本的 Doris 代码库进行了独立、激进的发展和迭代,这个新的分支就是 StarRocks。

  • 现状:目前,StarRocks 和 Apache Doris 是两个独立的开源项目,各自发展,但在功能和理念上仍有诸多相似之处,可以看作是“兄弟”项目。

2. StarRocks 的核心特点与差异化优势(相较于 Apache Doris)

StarRocks 的目标是打造一个更极致性能的新一代极速全场景MPP数据库。它的许多创新特性也反过来影响了 Doris 社区的发展。

  • 更先进的查询优化器

    • CBO(成本优化器):StarRocks 很早就自研了全新的、基于 Cascades 框架的CBO,对复杂查询(尤其是多表关联)的优化能力非常强。

    • Apache Doris 在较新的版本(如 1.2.0 之后)也推出了自研的全新 CBO,两者在这一领域的差距正在缩小。

  • 原生向量化执行引擎

    • StarRocks 从设计之初就全面采用了向量化执行引擎,并将其作为默认配置。

    • Apache Doris 的向量化引擎在较晚的版本中才逐步完善并默认开启。

  • 数据湖分析能力

    • StarRocks 在很早就大力投入了对数据湖分析的支持,可以高效地直接查询 Apache Hive、Iceberg、Hudi、Delta Lake 以及 MySQL、Elasticsearch 等外部数据源,其性能表现非常出色。

    • Apache Doris 也具备类似的能力,但 StarRocks 在这一领域投入更早,生态集成和性能优化在部分场景下可能更成熟。

  • 物化视图

    • StarRocks 提供了更强大和智能的异步物化视图,可以跨表构建,并支持查询的自动路由(查询时可以自动匹配到最优的物化视图,无需修改SQL)。

    • Apache Doris 的物化视图(Rollup)主要是同步的、基于单个表的,在灵活性和自动化程度上相对较弱,但其在单表预聚合场景下非常高效。

  • 更丰富的表类型

    • 除了 Doris 支持的明细、聚合、更新模型外,StarRocks 还推出了 主键模型,通过部分列更新、内存索引+磁盘存储的方式,更好地支持实时更新和点查询场景。

3. 如何选择 StarRocks 还是 Apache Doris?
  • 选择 StarRocks 的情况

    • 业务场景非常复杂,有大量的多表关联查询

    • 非常看重数据湖分析能力,希望一个引擎直接查询湖和仓的数据。

    • 需要更强大和灵活的物化视图来加速查询。

    • 极致的查询性能有最高要求,愿意尝试更激进的技术迭代。

  • 选择 Apache Doris 的情况

    • 更看重社区的稳定性和可预测性。作为 Apache 顶级项目,其发布流程和社区治理非常规范。

    • 业务场景以单表聚合分析实时报表为主,Doris 的 Rollup 模型在此场景下简单高效。

    • 技术栈偏向于与 Hadoop 生态 紧密集成。

    • 对 Apache 品牌和其背后的开源治理模式有偏好。


二、其他衍生方案与商业产品

1. SelectDB
  • 是什么:SelectDB 是一家商业化公司,其核心产品 SelectDB Cloud 是一个基于 Apache Doris 构建的云原生实时数据仓库服务。

  • 与 Doris 的关系:SelectDB 由 Apache Doris 项目的核心贡献者和初创成员创立,是 Doris 社区的积极维护者和推动者。你可以把它理解为 Doris 的 “官方”商业版和云服务版

  • 核心价值

    • 全托管服务:用户无需关心集群部署、运维、扩缩容等问题。

    • 云原生架构:充分利用云上弹性、存储计算分离等优势,降低成本。

    • 企业级功能:提供更好的监控、安全、多租户等企业级特性。

    • 专业支持:提供商业技术支持。

类比:SelectDB 与 Apache Doris 的关系,类似于 Confluent 与 Apache Kafka,或者 Databricks 与 Apache Spark 的关系。

2. 其他商业发行版

一些云厂商或大数据公司也会基于 Apache Doris 或 StarRocks 制作自己的商业发行版或集成方案,通常会包含一些定制化的功能、管理控制台和专业技术支持。


总结与对比

为了更直观,我们可以用一个表格来总结:

特性/项目Apache DorisStarRocksSelectDB
项目性质Apache 开源社区项目独立开源项目商业公司 & 云服务
核心定位高性能、易用的实时数据仓库极速全场景 MPP 数据库基于 Doris 的云原生实时数据仓库
技术渊源源于百度 Palo,Apache 项目源于早期 Doris 分支,独立发展基于 Apache Doris 构建
主要优势架构简单、运维友好、社区稳定、Apache生态查询优化器强大、向量化引擎成熟、数据湖分析能力强全托管、云原生、企业级功能、专业支持
适用场景实时报表、即席查询、统一数仓复杂即席查询、数据湖分析、高性能OLAP希望免运维、快速上云、需要企业级服务的企业
选择考量社区、稳定性、Hadoop生态集成极致性能、复杂查询、数据湖分析云服务、免运维、商业支持

结论

  1. StarRocks 是 Apache Doris 最强有力的“竞争者”和“同行者”,两者在技术上相互促进,共同推动了 MPP OLAP 数据库领域的进步。

  2. SelectDB 是 Apache Doris 在商业化云服务道路上的重要延伸,为不想自行运维集群的用户提供了绝佳选择。

  3. 对于技术选型而言:

    • 如果您的团队技术实力强,希望深度掌控并参与社区,Apache Doris 是一个稳健的选择。

    • 如果您的业务对复杂查询性能和数据湖分析有极高要求,StarRocks 值得优先评估。

    • 如果您的企业希望快速在云上构建实时数据平台,且不愿投入运维成本,SelectDB Cloud 是最省心的方案。

建议在实际选型时,用自身的业务数据和查询场景同时对 Apache Doris 和 StarRocks 进行 PoC(概念验证)测试,以数据说话,选择最适合自己的方案。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/936639.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

连接AI与决策:深度解析Palantir的“基石”:本体(Ontology)

连接AI与决策:深度解析Palantir的“基石”:本体(Ontology)在我们过去一系列关于Palantir Ontology的文章中,我们已经深入剖析了其作为企业“数字孪生”的核心本质。我们反复强调,它的革命性之处在于,其设计理念…

LGP3372 [LG TPLT] 线段树一 学习笔记

LGP3372 [LG TPLT] 线段树一 学习笔记 \(\texttt{Luogu Link}\) 题意简述 给你一个序列。 做法解析一 线段树。 维护若干个区间的信息,满足可以用 \(O(\log n)\) 个区间的信息拼起来整个区间的信息。所以它非常巧妙。…

鸿蒙应用开发从入门到实战(二十一):ArkUI自定义弹窗组件

上一篇文章讲述了ArkUI提供的各种内置弹窗组件,当项目中遇到这些组件仍然不满足需求时,可以使用自定义弹窗组件。本文研究自定义弹窗组件的使用。大家好,我是潘Sir,持续分享IT技术,帮你少走弯路。《鸿蒙应用开发从…

Day27 | Java集合框架之List接口详解 - 实践

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

2025 年北京开锁机构推荐:北京锁王开锁有限公司,您身边的锁具安全专家

在现代社会,随着人们生活节奏的加快以及居住、办公环境的日益复杂,锁具问题时有发生。无论是因忘带钥匙被锁门外,还是需要升级家中的锁具安防系统,都对专业开锁服务提出了更高需求。北京作为一座人口密集、商业繁荣…

jeecg vue2前端组件

https://doc.jeecg.com/2043986 # JDate 日期组件 使用文档###### 说明: antd-vue日期组件需要用moment中转一下,用起来不是很方便,特二次封装,使用时只需要传字符串即可 ## 参数配置 | 参数 | 类型 …

2025年空天信息感知与智能处理国际学术会议(AIPIP 2025)

2025年空天信息感知与智能处理国际学术会议(AIPIP 2025) 2025 International Conference on Aerospace Information Perception and Intelligent Processing 2025年空天信息感知与智能处理国际学术会议将于2025年10月…

svn常用命令命令

1.查看主干可合并的版本 svn mergeinfo --show-revs eligible ^/lb_manager_server/trunk/lb_manager_web 2.合并主干的某个特定修订版本范围(svn merge -r 命令的版本范围指定是左开右闭的,即 -r start:end 表示从 …

2025 年防撞护栏生产厂家最新推荐榜单:深度剖析各企业产品质量与服务能力,Q235/Q355B/景观/灯光/河道桥梁防撞护栏厂家推荐

在交通基础设施建设不断提速的当下,防撞护栏作为保障道路与桥梁安全的关键设施,市场需求持续增长,但市场上生产厂家良莠不齐,给采购方带来极大困扰。部分厂家原材料不达标、工艺落后,导致产品安全性能不足;有些厂…

人类一败涂地Mac版下载教程|Human Fall Flat Mac安装与游戏玩法详解

详情介绍 人类一败涂地mac版是由No Brakes Games制作Curve Digital发行的Mac平台上一款冒险物理解谜游戏。人类一败涂地Mac版游戏中玩法不是让玩家安放各种机关让小人触发,而是操作身处梦境中的主角bob,利用物理效果…

第二届航空航天、机械与材料工程国际学术会议 (AMME 2025)

第二届航空航天、机械与材料工程国际学术会议 (AMME 2025) 2025 2nd International Conference on Aerospace, Mechanical and Materials Engineering 2025年第二届航空航天、机械与材料工程国际学术会议(AMME 2025)…

从Salesforce到国产CRM,纷享销客助力顺祥新材料提速提效

当 Salesforce 这样的全球顶级系统,在实际业务中频频出现数据延迟、跨系统对接失败、关键流程卡顿,一家新材料领军企业终于转身拥抱国产 CRM 。这不是冲动决定,而是被效率拖垮后的理性反击。他们为何放弃行业标杆?…

再见 Navicat!DataGrip 正式宣布免费!!

大家好,我是R哥。 最近 JetBrains 放了个大招:DataGrip 现在对「非商业用途」免费了!DataGrip 正式加入 JetBrains 旗下对「非商业用途免费」的产品行列! 其实这不是 JetBrains 第一次这么良心了,之前像 JetBrain…

蓝牙语音遥控器方案 NRF52840、HS6621

方案介绍 蓝牙语音遥控器一般是通过按下语音键,遥控器会发送一个 HID 编码通知智能电视或者机顶盒打开识音功能,此时,遥控器LED灯保持闪烁或者长亮,用户开始录音同时将语音数据上传给智能电视或者机顶盒。而智能电…

如何本地直升Windows 11 25H2:两种方法超级简单

如何本地直升Windows 11 25H2:两种方法超级简单Posted on 2025-10-14 09:25 lzhdim 阅读(0) 评论(0) 收藏 举报进入10月份,关注操作系统的朋友可能知道,微软发布了最新的Windows 11 25H2,不过由于目前并没有全…

创意技术专家指南:如何融合编程与创造力

本文深入探讨创意技术专家的角色定位,涵盖技术架构、原型设计、文化思考等核心技能,解析如何将编程与创意完美融合,构建创新的数字体验。创意技术专家是做什么的? 从表面上看,我学习的是计算机科学。然而,我的大…

2025 年桥梁护栏厂家最新推荐排行榜:聚焦防撞、景观、不锈钢、铝合金、灯光护栏,精选优质企业助力项目高效选型

当前基础设施建设持续推进,桥梁护栏作为保障通行安全、提升桥梁美观度的关键部分,市场需求日益增长。但行业内品牌繁杂,产品质量参差不齐,部分企业用劣质材料生产导致护栏安全性能不达标,且服务体系不完善,设计、…

2025 年最新推荐!覆盖上海广州杭州等多地的居民同城长途异地跨城日式国际搬家公司优质服务排行榜

随着城市化进程加快,个人、家庭及企业的搬家需求日益多元化,从同城短迁到跨国搬迁,从普通居民搬家到专业日式服务,市场对搬家公司的要求不断提升。但当前行业仍存在服务水平参差不齐、收费乱象频发、特殊需求难以满…

完整教程:第 5 篇:WebGL 从 2D 到 3D - 坐标系、透视与相机

完整教程:第 5 篇:WebGL 从 2D 到 3D - 坐标系、透视与相机pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Cons…

CUDA+torch+flash-attn安装

微调全家桶: CUDA+torch+flash-attn安装之前安装环境一般只针对安装torch、pandas这种常用包,没有自己从头到尾来过。近期因为有微调需求,服务器需要安装flash-attn,对环境要求比较苛刻。折腾了好半天,将经验总结…