Doris

Doris介绍

Apache Doris 是一个基于 MPP 架构的高性能、实时的分析型数据库,以极速易用的特点被人们所熟知,仅需亚秒级响应时间即可返回海量数据下的查询结果,不仅可以支持高并发的点查询场景,也能支持高吞吐的复杂分析场景。基于此,Apache Doris 能够较好的满足报表分析、即席查询、统一数仓构建、湖仓一体等使用场景,用户可以在此之上构建用户行为分析、AB 实验平台、日志检索分析、用户画像分析、订单分析等应用。

技术概述

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

  • Frontend(FE),主要负责用户请求的接入、查询解析规划、元数据的管理、节点管理相关工作。

  • Backend(BE),主要负责数据存储、查询计划的执行。

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

使用接口方面,Doris 采用 MySQL 协议,高度兼容 MySQL 语法,支持标准 SQL,用户可以通过各类客户端工具来访问 Doris,并支持与 BI 工具的无缝对接。

存储引擎方面,Doris 采用列式存储,按列进行数据的编码压缩和读取,能够实现极高的压缩比,同时减少大量非相关数据的扫描,从而更加有效利用 IO 和 CPU 资源。

Doris 也支持比较丰富的索引结构,来减少数据的扫描:

  • Sorted Compound Key Index,可以最多指定三个列组成复合排序键,通过该索引,能够有效进行数据裁剪,从而能够更好支持高并发的报表场景

  • Z-order Index:使用 Z-order 索引,可以高效对数据模型中的任意字段组合进行范围查询

  • Min/Max:有效过滤数值类型的等值和范围查询

  • Bloom Filter:对高基数列的等值过滤裁剪非常有效

  • Invert Index:能够对任意字段实现快速检索

在存储模型方面,Doris 支持多种存储模型,针对不同的场景做了针对性的优化:

  • Aggregate Key 模型:相同 Key 的 Value 列合并,通过提前聚合大幅提升性能

  • Unique Key 模型:Key 唯一,相同 Key 的数据覆盖,实现行级别数据更新

  • Duplicate Key 模型:明细数据模型,满足事实表的明细存储

Doris 也支持强一致的物化视图,物化视图的更新和选择都在系统内自动进行,不需要用户手动选择,从而大幅减少了物化视图维护的代价。

查询引擎方面,Doris 采用 MPP 的模型,节点间和节点内都并行执行,也支持多个大表的分布式 Shuffle Join,从而能够更好应对复杂查询。

 

Doris 查询引擎是向量化的查询引擎,所有的内存结构能够按照列式布局,能够达到大幅减少虚函数调用、提升 Cache 命中率,高效利用 SIMD 指令的效果。在宽表聚合场景下性能是非向量化引擎的 5-10 倍。

Doris 采用了 Adaptive Query Execution 技术, 可以根据 Runtime Statistics 来动态调整执行计划,比如通过 Runtime Filter 技术能够在运行时生成 Filter 推到 Probe 侧,并且能够将 Filter 自动穿透到 Probe 侧最底层的 Scan 节点,从而大幅减少 Probe 的数据量,加速 Join 性能。Doris 的 Runtime Filter 支持 In/Min/Max/Bloom Filter。

优化器方面 Doris 使用 CBO 和 RBO 结合的优化策略,RBO 支持常量折叠、子查询改写、谓词下推等,CBO 支持 Join Reorder。

 https://doris.apache.org/zh-CN/docs/1.2/gettingStarted/what-is-apache-dorisicon-default.png?t=O83Ahttps://doris.apache.org/zh-CN/docs/1.2/gettingStarted/what-is-apache-doris

<think>好的,我现在需要处理用户关于Apache Doris的查询。首先,用户提供了两个引用链接,我需要仔细查看这些资料,确保回答准确。用户希望了解Apache Doris据库介绍和使用场景,所以得从这两个方面入手。 先看引用[1],里面提到Apache Doris的前身是百度Doris团队开发的,后来部分成员离职创业,基于之前的版本做了DorisDB,也就是StarRocks的前身。这可能涉及Doris的起源和发展历程,需要在介绍部分提到。同时,引用中还提到了Doris的使用场景,比如实时据分析、多维度查询等,这些是用户关心的重点,需要详细说明。 引用[2]是关于单机部署流程的,里面提到了下载二进制安装包、传输到Linux系统,以及具体的wget命令。这部分内容可能需要放在使用部分,比如部署步骤,但用户的问题主要是介绍和使用场景,所以可能需要简要提及部署方法,或者作为使用的一部分。 接下来,我需要组织回答结构。根据用户的要求,回答需要结构清晰,分点说明。先介绍Apache Doris的基本情况,包括定义、特点和适用场景。然后说明其使用场景,具体举几个例子,比如实时据分析、日志分析、库等,每个场景可以简要说明Doris的优势所在。最后,可能需要提到如何部署或使用,但根据用户的问题,可能不需要太详细的步骤,而是概括性的描述,比如支持标准SQL、高并发查询等。 需要注意的是,用户要求使用中文回答,并且行内学公式用$...$,独立公式用$$...$$。不过当前问题涉及据库技术,可能学公式较少,但如果有性能指标或算法,可能需要用LaTeX表达。例如,如果提到查询延迟在毫秒级,可以写成$<100ms$。不过目前资料中没有涉及太多学内容,可能需要根据情况处理。 另外,用户要求生成相关问题,需要根据回答内容提出几个相关问题,比如技术架构、性能优化、应用案例等。需要确保问题与Doris相关,并且能够引导用户进一步探索。 检查是否有遗漏的信息。引用[1]中提到Doris适用于实时分析、多维度查询和高并发场景,这些都需要在回答中体现。引用[2]中的部署步骤可能作为使用部分的一个小点,但用户可能更关注应用场景而非具体安装步骤,所以可能简要提及部署简便即可。 最后,确保回答符合格式要求,没有使用markdown,分点清晰,正确引用来源。引用标识要放在相关句子的末尾,例如在介绍使用场景时引用[^1],在部署方法时引用[^2]。 总结回答结构: 1. Apache Doris简介:定义、起源、特点。 2. 核心特点:列式存储、MPP架构、易用性、高性能。 3. 使用场景:实时分析、日志分析、库、即席查询。 4. 使用方式:部署、据导入、查询。 5. 相关问题。 现在需要将这些内容用中文流畅表达,并自然插入引用标识。确保技术术语准确,比如MPP架构、OLAP等。同时,避免使用复杂术语时适当解释,比如说明列式存储的优势,提高查询效率。</think>### Apache Doris 据库介绍 Apache Doris 是一款高性能、实时的分析型据库,适用于在线分析处理(OLAP)场景。其前身是百度 Doris 团队开发的分布式据库系统,后成为 Apache 顶级项目。Doris 采用**列式存储**和**MPP(大规模并行处理)架构**,支持高并发查询、实时据更新和多维分析,具备低延迟(毫秒级响应)和高吞吐量的特点[^1]。 #### 核心特点 1. **列式存储与压缩**:据按列存储,减少 I/O 开销,并通过压缩算法降低存储成本。 2. **分布式 MPP 架构**:支持水平扩展,节点间并行计算,适用于 PB 级据分析。 3. **易用性**:兼容 MySQL 协议,支持标准 SQL,提供与 BI 工具无缝集成。 4. **实时性**:支持据实时写入与查询,适用于流批一体场景。 ### 使用场景 1. **实时据分析** - 例如:电商实时订单分析、广告点击率统计,支持在据写入后 $<1s$ 内查询[^1]。 2. **日志分析** - 快速分析海量日志据,如用户行为日志、系统监控日志。 3. **库加速** - 作为查询加速层,提升传统库(如 Hive)的响应速度。 4. **即席查询(Ad-hoc)** - 支持复杂多维度查询,满足业务灵活分析需求。 ### 如何使用 1. **部署** - 通过二进制安装包快速部署单机或集群环境,支持 Linux 系统(参考命令): ```bash wget https://apache-doris-releases.oss-accelerate.aliyuncs.com/apache-doris-2.1.7-bin-x64.tar.gz ``` [^2] 2. **据导入** - 支持 Kafka、MySQL、HDFS 等多种据源,通过 Broker Load 或 Stream Load 实现实时/批量导入。 3. **查询** - 使用标准 SQL 或 BI 工具(如 Tableau)直接连接 Doris 进行据分析。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值