Doris 基础知识

时间:2023-01-13 11:03:29

Apache Doris 是一个高性能、简单易用、支持实时的 MPP 架构分析型数据库。

一、MPP 架构

Doris 基础知识

介绍

全称 Massively Parallel Processor,翻译过来就是大规模并行处理

在数据库非共享集群中,每个节点都有独立的磁盘存储系统和内存系统,业务数据根据数据库模型和应用特点划分到各个节点上

每台数据节点通过专用网络或者商业网络互相连接,彼此协同计算,作为整体提供数据库服务

非共享数据库集群有完全的可伸缩性、高可用、高性能、优秀的性价比、资源共享等优势

MPP 是将任务并行的分散到多个服务器和节点上,在每个几点计算完成后,将各自部分的结果汇总在一起得到最终的结果

简单来说

MPP 是将任务并行的分散到多个服务器和节点上,在每个节点上计算完成后,将各自部分的结果汇总在一起得到最终的结果(和 Hadoop 相似),仅需亚秒级响应时间即可获得查询结果,有效地支持实时数据分析

二、OLTP、OLAP

联机事务处理 OLTP On-Line Transaction Processing

操作型处理,主要目标是做数据处理,针对具体业务在数据库联机的日常操作,通常对少数记录进行查询和修改

传统的关系型数据库系统(RDBMS)作为数据管理的主要手段,主要用于操行型处理

联机分析处理 OLAP On-Line Analytical Processing

分析型处理,主要目标是做数据分析,针对某些主题的历史数据进行复杂的多维分析,支持管理决策

数据仓库是 OLAP 系统的一个典型示例,主要用于数据分析

引擎分类

M OLAP,基于多维数组的存储模型,特点是对数据进行预计算,空间换效率,明细和聚合数据都保存在 cube 中

R OLAP,完全基于关系模型进行存储数据,不需要预计算,按需即时查询,明细和汇总数据都保存在关系型数据库事实表中

H OLAP,混合模型,细节数据以 R OLAP 存放,聚合数据以 M OLAP 存放,这种方式相对灵活,且更加高效

三、Doris 概述

Apache Doris 是一个现代化的基于 MPP 大规模并行处理 技术的分析型数据库产品,可以满足多种数据分析需求

例如:固定历史报表、实时数据分析、交互式数据分析和探索式数据分析等

核心特性

列式存储

基于 MPP 架构的分析型数据库

性能卓越,PB 级别数据毫秒/秒级响应

支持标准 SQL 语言,兼容 MySQL 协议

高效的聚合表技术

新型预聚合技术 Rollup

高性能、高可靠、高可用

极简运维,弹性伸缩

四、整体架构

Doris = Google Mesa + Apache Impala + ORC 列式存储

Doris 整合了 Google Mesa 数据模型,Apache Impala MPP Query Engine 和 Apache ORCFile 存储格式、编码和压缩技术

极简架构

MySQL Tools(MySQL Networking) -> FE (Follower,Java) + FE (Leader,Java) -> BE (C++) + BE(C++)

FE Frontend 即 Doris 的前端节点,以 Java 语言为主,主要负责用户请求的接入、查询解析规划、元数据的管理、节点管理相关工作。

BE Backend 即 Doris 的后端节点,以 C++ 语言为主,主要负责数据存储、查询计划的执行

五、总结

Doris 使用 MPP 引擎驱动的 ROLAP 模式,可以简化模型设计,减少预计算的代价,并通过强大的实时计算能力,可以支撑良好的实时交互体验

Doris 是一个 ROLAP 引擎,可以满足 灵活多维分析、明细 + 聚合、主键更新

使用场景

一般用于数据处理后半段,存储处理完的数据,给前端提供实时查询