[说明] Doris使用培训
标签: [说明] Doris使用培训 Java博客 51CTO博客
2023-05-11 18:24:16 197浏览
一、doris的背景介绍
doris的使用场景
实时/离线一体的数仓
借用一句话: Uniq 模型拳打KUDU、HUDI,Aggregate 模型脚踢Kylin、ClickHouse,Duplicate 模型跟Hive 势不两立。Doris+Flink将会是实时数据仓库的重要基石。
doris选型依据
doris是一个rolap, 可以满足以下需求
- 同时支持高并发点查询和高吞吐的Ad-hoc查询
- 同时支持离线批量导入和实时数据导入
- 同时支持明细和聚合查询
- 兼容MySQL协议和标准SQL
- 支持Rollup Table和Rollup Table的智能查询路由
- 支持较好的多表Join策略和灵活的表达式查询
- 支持Schema在线变更
- 支持Range和Hash二级分区
相比较kylin, druid而言, Kylin 主要满足离线固化多维分析的需求,Druid 主要满足实时多维分析的需求。
对比其他的ROLAP系统,
- SQL on Hadoop 系统:无法支持更新,性能也较差。
- TiDB: TiDB 虽然当初号称可以支撑 100%的 TP 和 80%的 AP,但是架构设计主要是面向 TP 场景,缺少针对 AP 场景专门的优化,所以 OLAP 查询性能较差,TiDB 团队目前正在研发专门的 OLAP 产品:TiFlash,TiFlash 具有以下特点:列存,向量化执行,MPP,而这些特点 Doris 也都有。
- SnappyData:SnappyData 是基于 Spark + GemFire 实现的内存数据库,机器成本较高,而我们机器资源很有限,此外 SnappyData 的计算是基于 JVM 的,会有 GC 问题,影响查询稳定性。
- ClickHouse:Clickhouse 是一款单机性能十分彪悍的 OLAP 系统,但是当集群加减节点后,系统不能自动感知集群拓扑变化,也不能自动 balance 数据,导致运维成本很高,此外 Clickhouse 也不支持标准 SQL,我们用户接入的成本也很高。
为什么选择doris
Doris 的优点是功能强大,易用性好。 功能强大指可以满足我们用户的需求,易用性好主要指 兼容 Mysql 协议和语法,以及 Online Schema Change。
对平台侧来说,Doris 的优点是易运维,易扩展和高可用:
- 易运维指 Doris 无外部系统依赖,部署和配置都很简单。
- 易扩展指 Doris 可以一键加减节点,并自动均衡数据。
- 高可用值 Dors 的 FE 和 BE 都可以容忍少数节点挂掉。
谁在用doris
![[说明] Doris使用培训_离线](https://s2.51cto.com/images/blog/202305/11101631_645c4fff0876241887.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=/resize,m_fixed,w_1184)
olap引擎的三大类型:
名称 |
描述 |
细节数据存储位置 |
聚合后的数据存储位置 |
例子 |
ROLAP(Relational OLAP) |
基于关系数据库的OLAP实现 |
关系型数据库 |
关系型数据库 |
ROLAP可选Presto、impala等,ClickHouse则是ROLAP的佼佼者。 |
MOLAP(Multidimensional OLAP) |
基于多维数据组织的OLAP实现 |
数据立方体 |
数据立方体 |
Kylin、Druid |
HOLAP(Hybrid OLAP) |
基于混合数据组织的OLAP实现 |
关系型数据库 |
数据立方体 |
大数据篇:一文读懂@数据仓库
OLAP(总):Impala/Druid/Presto/Kylin/Clickhouse/Greenplum等对比
常见的doris数仓流程
![[说明] Doris使用培训_离线_02](https://s2.51cto.com/images/blog/202305/11101631_645c4fff51ac157684.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=/resize,m_fixed,w_1184)
doris的架构
doris架构简介
Doris (HOLAP),实时数据仓库的王者
Doris是基于MPP架构的OLAP引擎,主要整合了Google Mesa(数据模型)、Apache Impala(MPP Query Engine)和Apache ORCFile (存储格式,编码和压缩)的技术。
FE:Doris的前端节点,以java语言为主,主要负责接受和返回客户端请求,元数据以及集群管理,查询计划生成等工作
BE:Doris的后端节点,以C++语言为主,主要负责数据存储与管理、查询计划执行等工作
![[说明] Doris使用培训_离线_03](https://s2.51cto.com/images/blog/202305/11101631_645c4fff825a527129.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=/resize,m_fixed,w_1184)
新架构优点
•数据导入方式简单,我们针对不同业务场景使用了三种导入方式
1.Routin load : 异构实时异步数据导入(这种主要使用在一些临时的数据接入)
2.Stream Load :业务数据实时异步数据接入(我们封装了业务数据零代码入仓,后面我会介绍)
3.Insert into :定时通过 DWD 层数仓表生成 DWS/ADS 层数仓表
•数据链路缩短,数据实时性更高
•数仓使用成本降低
- Doris 支持 MySQL 协议,数据分析师可以直接进行自助取数。
- Doris 不依赖 Hadoop 生态圈组件,降低了架构的复杂度,大大降低运维成本
- Doris 同时支持离线批量和实时数据,一个框架搞定一切
二、doris原理和使用
doris的数据模型
数据模型、ROLLUP 及前缀索引 - Apache Doris
![[说明] Doris使用培训_Apache_04](https://s2.51cto.com/images/blog/202305/11101631_645c4fffb4bb854405.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=/resize,m_fixed,w_1184)
![[说明] Doris使用培训_离线_05](https://s2.51cto.com/images/blog/202305/11101632_645c5000211f835137.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=/resize,m_fixed,w_1184)
doris的底层数据组织方式
![[说明] Doris使用培训_大数据_06](https://s2.51cto.com/images/blog/202305/11101632_645c50004c8e49207.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=/resize,m_fixed,w_1184)
分区与分桶
Doris 支持两层的数据划分。第一层是 Partition,支持 Range 和 List 的划分方式。第二层是 Bucket(Tablet),仅支持 Hash 的划分方式。
![[说明] Doris使用培训_大数据_07](https://s2.51cto.com/images/blog/202305/11101632_645c50009a44474235.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=/resize,m_fixed,w_1184)
动态分区
创建doris表的时候支持动态分区,比如按照时间的HOUR、DAY、WEEK、
MONTH 的时间方式创建动态分区表
动态分区 - Apache Doris
数据导入
导入总览 - Apache Doris
好博客就要一起分享哦!分享海报
此处可发布评论
评论(0)展开评论
展开评论
您可能感兴趣的博客
