Doris之旅第一个篇章|基础篇,致力于帮助初识Doris的同学能够结合基础理论和实践教学快速上手,对Doris能够有一个系统的基本认知。
篇章主要是基于"采-存-用",即"数据怎么进来 -> 数据进来后怎么处理 -> 数据怎么导出"的数据链路设计,分为8个小章节循序渐进:
Doris作为现代化实时数据仓库、实际生产业务中的核心数据底座,从全局的"采-存-用"链路而言:
1. 采
支持多样的数据导入方式去兼容不同的数据源。例如实时或批量地采集常见的业务RDBMS、日志Log和消息队列数据到Doris,同时也可以通过简单的元数据映射方式直接联邦读写外部数据源(Hive/RDBMS等)。
2. 存
提供丰富的数据表模型(明细Duplicate/主键Unique/聚合Aggregate)和数据建模方式(同步/异步物化视图),简单高效应对不同场景的数据存储。例如对于网站流量分析的PV计算,只需要建一张聚合Aggregate表,当数据写入即表示PV聚合完成,自动SUM预计算。
-- 网站流量分析/PV计算
CREATE TABLE site_visit
(
siteid INT,
city SMALLINT,
username VARCHAR(32),
pv BIGINT SUM DEFAULT '0' -- PV 浏览量计算
)
AGGREGATE KEY(siteid, city, username) -- 相同的 KEY 行会合并,非 KEY 列会根据指定的聚合函数进行聚合
DISTRIBUTED BY HASH(siteid) BUCKETS 10;
3.用
数据源经过各种数据集成和加工处理后,入库到实时数据仓库Doris,基于极速的分析性能和全场景的功能特性,广泛应用于实时看板、即席查询、湖仓一体、用户行为分析、日志检索分析、企业级BI分析等场景。
如今在中国乃至全球范围内都拥有着广泛的用户群体,截止目前,Apache Doris 已经在全球超过 5000+ 家中大型企业的生产环境中得到应用,在中国市值或估值排行前 50 的互联网公司中,有超过 80% 长期使用 Apache Doris,包括百度、美团、小米、京东、字节跳动、阿里巴巴、腾讯、网易、快手、微博等。
同时在一些传统行业如金融、消费、电信、工业制造、能源、医疗、政务等领域也有着丰富的应用。在中国几乎所有的云商厂比如阿里云、华为云、天翼云、腾讯云、百度云、火山引擎等都在提供托管的 Apache Doris 的云服务。
Doris 的整体架构由两类进程组成:Frontend (FE) 和 Backend (BE)。其中 FE 主要负责用户请求的接入、查询解析规划、元数据的管理、节点管理相关工作;BE 主要负责数据存储、查询计划的执行。
PS:Doris 3.0版本之前只有存算一体架构。
Doris在存算一体架构下,BE 节点上存储与计算紧密耦合,数据主要存储在 BE 节点上,多 BE 节点采用 MPP 分布式计算架构。
存算一体的优点
存算一体的适用场景
PS:Doris 3.0版本之后同时支持存算分离和存算一体架构。
Doris 3.0版本之后的存算一体架构和3.0之前的模式基本一致。
Doris在存算分离架构下,BE 节点不再存储数据,而是将共享存储层作为统一的数据主存储空间。同时,为了应对底层对象存储系统性能不佳和网络传输带来的性能下降,Doris 引入计算节点本地高速缓存。主要角色如下:
存算分离的优点
存算分离的适用场景
下期,我们将一起探讨其它更有趣有用有价值的内容,敬请期待!