前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >Doris之旅基础篇|开篇介绍(一)

Doris之旅基础篇|开篇介绍(一)

作者头像
一臻数据
发布2025-01-06 14:48:55
发布2025-01-06 14:48:55
8500
代码可运行
举报
文章被收录于专栏:一臻数据一臻数据
运行总次数:0
代码可运行

一、基础篇介绍

Doris之旅第一个篇章|基础篇,致力于帮助初识Doris的同学能够结合基础理论和实践教学快速上手,对Doris能够有一个系统的基本认知。

篇章主要是基于"采-存-用",即"数据怎么进来 -> 数据进来后怎么处理 -> 数据怎么导出"的数据链路设计,分为8个小章节循序渐进:

  1. 开篇介绍
  2. Doris快速体验
  3. Doris连接查询
  4. Doris数据建表
  5. Doris数据导入
  6. Doris数据变更
  7. Doris数据导出
  8. Doris函数使用

二、Doris的发展历程

  1. 起源:2008年,Doris最早版本的诞生,用于满足百度广告统计报表业务,在这期间经过多个版本迭代。
  2. 成型:2013年,Doris正式确定OLAP产品形态,系统架构全面升级,引入列存和MPP查询引擎。
  3. 开源:2017年,成为百度内部统一的OLAP分析平台,正式在GitHub上开源。
  4. 孵化:2018年,进入Apache基金会孵化。
  5. 毕业:2022年,发布7个重要版本,2022年6月正式成为顶级项目。
  6. 发展:至今,Doris已成为国内乃至全球数据库和大数据领域最为活跃的开源项目之一,被5千多家中大型企业生产系统使用。

三、Doris的应用场景

Doris作为现代化实时数据仓库、实际生产业务中的核心数据底座,从全局的"采-存-用"链路而言:

1. 采

支持多样的数据导入方式去兼容不同的数据源。例如实时或批量地采集常见的业务RDBMS、日志Log和消息队列数据到Doris,同时也可以通过简单的元数据映射方式直接联邦读写外部数据源(Hive/RDBMS等)。

2. 存

提供丰富的数据表模型(明细Duplicate/主键Unique/聚合Aggregate)和数据建模方式(同步/异步物化视图),简单高效应对不同场景的数据存储。例如对于网站流量分析的PV计算,只需要建一张聚合Aggregate表,当数据写入即表示PV聚合完成,自动SUM预计算。

代码语言:javascript
代码运行次数:0
复制
-- 网站流量分析/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的架构特点

Doris 的整体架构由两类进程组成:Frontend (FE) 和 Backend (BE)。其中 FE 主要负责用户请求的接入、查询解析规划、元数据的管理、节点管理相关工作;BE 主要负责数据存储、查询计划的执行。

4.1 存算一体

PS:Doris 3.0版本之前只有存算一体架构。

Doris在存算一体架构下,BE 节点上存储与计算紧密耦合,数据主要存储在 BE 节点上,多 BE 节点采用 MPP 分布式计算架构。

存算一体的优点

  • 部署简易:Apache Doris 不需要依赖类似外部共享文件系统或者对象存储,仅依赖物理服务器部署 FE 和 BE 两个进程即可完成集群的搭建,可以从一个节点扩展到数百个节点,同时也增强了系统的稳定性。
  • 性能优异:Apache Doris 执行计算时,计算节点可直接访问本地存储数据,充分利用机器的 IO、减少不必要的网络开销、获得更极致的查询性能。

存算一体的适用场景

  • 简单使用/快速试用 Doris,或在开发和测试环境中使用。
  • 不具备可靠的共享存储,如 HDFS、Ceph、对象存储等。
  • 业务线独立维护 Apache Doris,无专职 DBA 来维护 Doris 集群。
  • 不需极致弹性扩缩容,不需 K8s 容器化,不需运行在公有云或者私有云上。

4.2 存算分离

PS:Doris 3.0版本之后同时支持存算分离和存算一体架构。

Doris 3.0版本之后的存算一体架构和3.0之前的模式基本一致。

Doris在存算分离架构下,BE 节点不再存储数据,而是将共享存储层作为统一的数据主存储空间。同时,为了应对底层对象存储系统性能不佳和网络传输带来的性能下降,Doris 引入计算节点本地高速缓存。主要角色如下:

  • FE: Doris FE 节点,存放库表元数据,Job 以及权限等 MySQL 协议依赖的信息。
  • BE: 无状态化的 Doris BE 节点,BE 上会 Cache 一部分 Tablet 元数据和数据以提高查询性能。
  • Cluster: 无状态的计算资源 (BE 节点) 集合,多个 Cluster 共享一份数据,Cluster 可以随时弹性加减节点。
  • Meta-Service: Doris 存算分离元数据服务,主要负责处理导入事务,tablet meta, rowset meta 以及集群资源管理。这是一个可以横向扩展的无状态服务。
  • Foundationdb: 实际存储元数据的分布式事务 kv。

存算分离的优点

  • 弹性的计算资源:不同时间点使用不同规模的计算资源服务业务请求,按需使用计算资源,节约成本。
  • 负载 (完全) 隔离:不同业务之间可在共享数据的基础上隔离计算资源,兼具稳定性和高效率。
  • 低存储成本:可以使用更低成本的对象存储,HDFS 等低成本存储。

存算分离的适用场景

  • 已使用公有云服务。
  • 具备可靠的共享存储系统,比如 HDFS、Ceph、对象存储等。
  • 需要极致的弹性扩缩容,需要 K8S 容器化,需要运行在私有云上。
  • 有专职团队维护整个公司的数据仓库平台。

下期,我们将一起探讨其它更有趣有用有价值的内容,敬请期待!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-01-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 一臻数据 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、基础篇介绍
  • 二、Doris的发展历程
  • 三、Doris的应用场景
  • 四、Doris的架构特点
    • 4.1 存算一体
    • 4.2 存算分离
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档