当前位置: 首页 > news >正文

Doris数据库-常用功能

我们来详细梳理一下 Apache Doris 的常用功能。这些功能可以大致分为三类:​数据导入数据查询与分析数据管理


一、 数据导入功能

这是使用 Doris 的第一步,也是其核心优势之一。Doris 提供了多种灵活、高效的实时和批量数据导入方式。

功能名称

方式

主要用途

特点

Broker Load

批量

从 HDFS、S3 等外部存储系统导入大量数据(如 TB 级)。

异步执行,适合大规模数据迁移和批量 ETL。

Routine Load

实时流式

持续消费 Kafka 中的消息并导入到 Doris。

最常用的实时导入方式,自动管理消费位点,保证 Exactly-Once 语义。

Stream Load

HTTP 协议推送

通过 HTTP 流方式批量导入数据。常用于导入本地文件或程序生成的数据流。

同步返回结果,非常灵活。Flink、Spark 等框架常通过此方式写入 Doris。也常用 curl命令手动测试。

Insert Into

SQL

使用标准的 INSERT INTO tbl SELECT ...语法插入数据。

适合小批量、低频次的导入,或用于在 Doris 内部表之间进行数据转换和搬运。

S3 Load

批量

直接从 Amazon S3 或兼容 S3 协议的对象存储导入数据。

类似于 Broker Load,但专为云原生环境优化。

Spark Load

批量(ETL)

通过外部 Spark 资源对导入前的数据进行预处理(如转换、聚合)。

适合在导入阶段需要复杂 ETL 操作的场景。

Multi-Load

批量

一次性批量导入多个数据文件到一个表。

已逐渐被功能更强的 Broker Load 等替代。

小结:​​ 最常用的是 ​Routine Load​(用于 Kafka 实时流)和 ​Stream Load​(用于通用程序写入和测试)。


二、 数据查询与分析功能

这是 Doris 作为分析型数据库的核心。

功能类别

功能点

说明

标准 SQL 支持

ANSI SQL, MySQL 协议

支持绝大多数标准 SQL 语法(SELECT, JOIN, WHERE, GROUP BY, ORDER BY 等),兼容 MySQL 协议,用户几乎无学习成本。

复杂查询

多表关联(JOIN)

支持各种类型的 JOIN(INNER, LEFT/RIGHT OUTER, SEMI 等),优化器能自动选择最优的 Join 顺序和执行方式。

聚合分析

高性能聚合

GROUP BY查询有极致优化,支持 ROLLUP, CUBE, GROUPING SETS等高级分组聚合操作。

窗口函数

窗口函数

完整支持标准窗口函数(如 RANK(), ROW_NUMBER(), SUM() OVER (PARTITION BY ...)),用于复杂的分组排名、移动平均等分析场景。

物化视图

物化视图(Rollup)​

核心特性!​​ 可以预先定义好不同维度的聚合表。查询时,优化器会自动路由到已预聚合的物化视图,极大提升查询性能。例如,从亿级明细数据中快速求和。

表函数

Table Function

支持将数组、JSON 等复杂结构展开成表进行连接查询,非常实用。

外部表

Elasticsearch外表

可以直接将 ES 索引映射为 Doris 中的一张只读表,无需导入数据即可用 SQL 高效查询和分析 ES 中的数据。

MySQL外表 / Hive外表

类似 ES 外表,可以直接查询并 JOIN 外部数据源(如 MySQL, Hive, Iceberg 等),实现数据湖分析。


三、 数据模型与表管理功能

这部分决定了数据在 Doris 中如何存储和组织,直接影响查询性能。

功能名称

说明

适用场景

数据模型

Duplicate Key 模型

纯粹的明细模型,所有列都是排序键。适合存储无需聚合的原始日志、行为流水数据。

Aggregate Key 模型

定义维度和指标列,导入时相同维度的数据会自动聚合。适合需要预聚合的报表场景。

Unique Key 模型

针对需要实时更新的场景,可以定义主键,新数据会覆盖旧数据。类似 MySQL 的 OLTP 表,实现“读时更新”。

Primary Key 模型

在 Unique 模型上进一步优化,采用 delete+insert 的更新方式,性能更好,是官方推荐的主键模型。

分区与分桶

分区(Partitioning)​

按时间(如天)对数据分区,便于数据生命周期管理(滚动删除),并能利用分区剪枝提升查询速度。

分桶(Bucketing)​

在分区内,将数据划分为更小的桶(Tablet),是数据并行处理的最小单元。合理的分桶能极大优化查询和 Join 性能。

数据生命周期

动态分区

可以自动管理分区,例如自动创建新分区(如明天的分区)和删除旧分区,无需人工干预。

数据过期删除

可以方便地通过 ALTER TABLE DROP PARTITION删除整个历史分区,或者通过 DELETE FROM进行行级删除。


四、 其他重要功能

功能名称

说明

Bitmap 索引

对于低基数的列(如性别、状态),可以创建 Bitmap 索引,极大加速等值查询和计数。

Colocation

将相关表的分桶数据存储在相同的 BE 节点上,使 Join 计算本地化,减少网络传输,显著提升 Join 性能。

Backup & Restore

提供将数据和元数据快照备份到对象存储(如 S3/HDFS)以及恢复的能力,保证数据安全。

资源隔离

支持设置资源组,对不同查询进行资源(CPU、内存)隔离,避免慢查询影响高优先级任务。

审计与权限

支持基于角色的权限管理(RBAC),可以记录查询审计日志,满足企业级安全需求。

总结

Doris 的常用功能覆盖了现代数据栈的完整链路:

  1. 数据接入:​​ 通过丰富的导入方式,轻松实现实时批量数据入仓。

  2. 数据存储与管理:​​ 通过灵活的数据模型和分区分桶策略,高效组织数据。

  3. 数据分析与查询:​​ 凭借强大的 MPP 引擎和优化器,以及对标准 SQL 的完善支持,提供极速的查询体验。

  4. 性能加速:​​ 通过物化视图索引Colocation​ 等高级功能,应对各种复杂和高并发的分析场景。

这些功能的组合使得 Doris 成为一个功能全面、性能强大且易于使用的实时分析数据库。

http://www.dtcms.com/a/410176.html

相关文章:

  • MySQL中的空间碎片率计算分析
  • Python爬虫实战:获取东方财富网游戏板块数据与市场趋势分析
  • 【深度学习计算机视觉】07:单发多框检测(SSD)
  • 提取网站子页面邮箱文化馆建设网站
  • 大数据安全解决方案(PPT)
  • AI大模型学习(14)AI 小白入门!用 OpenCV+Python 打造人体姿态识别系统,超详细教程来了
  • 使用 Azure AD 实现认证与权限管理:原理解析与操作指南
  • 莆田网站建设收费标准广州金山大厦 网站建设
  • Lombok注解使用无效的情况(未能获得后端数据)
  • 网络原理-网络层
  • Flink 容错从状态后端到 Exactly-Once
  • 怎样做门窗网站网站首页被k还有救吗
  • 一体化DevOps平台选型新思维:如何打破研发与运维的壁垒?
  • 2025年14款DevOps理念的项目管理软件促进高效协同
  • 【音视频】pjsua2库:Account 用户注册详解
  • (Arxiv-2025)Lynx:迈向高保真个性化视频生成
  • 学习项目movie-web:构建本地电影、电视视频中心
  • QT音视频
  • Docker 安装 canal 详细步骤
  • 电子信息工程专业课《电路原理》:电子信息世界的基石与语言
  • 中学生做网站的软件狮山公司网站建设
  • 了解Django模型,从基础到实战
  • 【FPGA+DSP系列】——(1)CCS创建工程+LED点亮
  • Windows 作为 Ansible 节点的完整部署流程(含 Docker 部署 Ansible)
  • 今日面试之快问快答:Redis篇
  • 微论-神经网络的亲情密码,权重矩阵的家庭关系论
  • 建个个人网站一年多少钱凡科网网页版登录入口
  • html论坛网站模板小企业网站建设公司
  • 邮件服务器软件哪个好?2025邮件服务器软件推荐
  • langchain-基于agent架构的开发