您的位置:首页 >字节跳动Doris湖仓分析实践分享
发布于2025-06-27 阅读(0)
扫一扫,手机访问
分享嘉宾:杜军令 字节跳动 大数据工程师
出品平台:DataFunTalk
导读:Doris是一种基于MPP架构的分析型数据库,主要用于多维分析、数据报表和用户画像分析等场景。它自带分析引擎和存储引擎,支持向量化执行引擎,无需依赖其他组件,并兼容MySQL协议。
01
Doris概述
Apache Doris具有以下特点:
优化的架构设计,支持高并发和低延迟的查询服务,适合高吞吐量的交互式分析。多FE节点均可对外提供服务,随着并发需求增加,通过线性扩展FE和BE节点即可满足高并发查询需求。支持批量和流式数据加载,支持数据更新。支持Update/Delete语法,unique/aggregate数据模型,支持动态更新数据,实时更新聚合指标。提供高可用性、容错处理和高扩展性的企业级功能。FE Leader出现异常时,FE Follower可在几秒内切换为新Leader,继续对外提供服务。支持聚合表和物化视图。多种数据模型,支持aggregate, replace等多种数据模型,支持创建rollup表和物化视图。rollup表和物化视图支持动态更新,无需用户手动处理。兼容MySQL协议,支持直接使用MySQL客户端连接,数据应用对接非常便捷。Doris由Frontend(简称FE)和Backend(简称BE)组成,FE负责接受用户请求、编译、优化、分发执行计划、元数据管理以及BE节点的管理等功能,BE则负责执行FE下发的执行计划,存储和管理用户数据。
02
数据湖格式Hudi简介
Hudi是下一代流式数据湖平台,为数据湖提供了表格式管理能力,支持事务、ACID、MVCC、数据更新删除和增量数据读取等功能。支持Spark, Flink, Presto, Trino等多种计算引擎。
Hudi根据数据更新行为分为两种表类型:
针对Hudi的两种表格式,有三种不同的查询类型:
03
Doris分析Hudi数据的技术背景
随着业务对数据实时性要求的提高,数仓业务从T+1逐渐演变为小时级、分钟级,甚至秒级。实时数仓的应用范围也在扩大,并经历了多个发展阶段。目前有多种解决方案。
1. Lambda架构
Lambda架构将数据处理流分为在线分析和离线分析两条路径,两条路径相互独立,互不影响。
离线分析处理T+1数据,使用Hive/Spark处理大数据量,不可变数据,数据通常存储在HDFS等系统上。如果需要更新数据,必须overwrite整张表或整个分区,成本较高。
在线分析处理实时数据,使用Flink/Spark Streaming处理流式数据,分析处理秒级或分钟级流式数据,数据保存在Kafka或定期(分钟级)保存到HDFS中。
该方案存在以下缺点:
同一套指标可能需要开发两套代码分别进行在线和离线分析,维护复杂。数据应用查询指标时可能需要同时查询离线和在线数据,开发复杂。需要同时部署批处理和流式计算两套引擎,运维复杂。数据更新需要overwrite整张表或分区,成本高。2. Kappa架构
随着在线分析业务的增加,Lambda架构的缺点愈发明显,增加一个指标需要分别开发在线和离线版本,维护困难,离线指标可能与在线指标不一致,部署复杂,组件繁多。因此,Kappa架构应运而生。
Kappa架构使用一套架构处理在线和离线数据,使用同一套引擎同时处理在线和离线数据,数据存储在消息队列上。
Kappa架构也存在一些限制:
流式计算引擎的批处理能力较弱,处理大数据量性能较差。数据存储使用消息队列,消息队列对数据存储有有效性限制,无法回溯历史数据。数据时序可能乱序,可能对时序要求严格的应用造成数据错误。数据应用需要从消息队列中取数,开发复杂,需要开发适配接口。3. 基于数据湖的实时数仓
针对Lambda架构和Kappa架构的缺陷,业界基于数据湖开发了Iceberg, Hudi, DeltaLake等数据湖技术,使得数仓支持ACID, Update/Delete,数据Time Travel, Schema Evolution等特性,数仓的时效性从小时级提升到分钟级,数据更新也支持部分更新,大大提高了数据更新的性能。兼具流式计算的实时性和批计算的吞吐量,支持近实时场景。
上一篇:Kimi制作PPT教程及技巧分享
下一篇:御龙在天装备签名怎么签
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
4
5
6
7
8
9