[说明] Doris使用培训

奋斗吧
奋斗吧
擅长邻域:未填写

标签: [说明] Doris使用培训 Java博客 51CTO博客

2023-05-11 18:24:16 197浏览

[说明] Doris使用培训,Uniq模型拳打KUDU、HUDI,Aggregate模型脚踢Kylin、ClickHouse,Duplicate模型跟Hive势数据仓库的重要基石。


一、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使用培训_离线

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

doris的架构

doris架构简介

Doris (HOLAP),实时数据仓库的王者

Doris是基于MPP架构的OLAP引擎,主要整合了Google Mesa(数据模型)、Apache Impala(MPP Query Engine)和Apache ORCFile (存储格式,编码和压缩)的技术。

FE:Doris的前端节点,以java语言为主,主要负责接受和返回客户端请求,元数据以及集群管理,查询计划生成等工作

BE:Doris的后端节点,以C++语言为主,主要负责数据存储与管理、查询计划执行等工作

[说明] Doris使用培训_离线_03

新架构优点

•数据导入方式简单,我们针对不同业务场景使用了三种导入方式

1.Routin load : 异构实时异步数据导入(这种主要使用在一些临时的数据接入)

2.Stream Load :业务数据实时异步数据接入(我们封装了业务数据零代码入仓,后面我会介绍)

3.Insert into :定时通过 DWD 层数仓表生成 DWS/ADS 层数仓表

•数据链路缩短,数据实时性更高

•数仓使用成本降低

  1. Doris 支持 MySQL 协议,数据分析师可以直接进行自助取数。
  2. Doris 不依赖 Hadoop 生态圈组件,降低了架构的复杂度,大大降低运维成本
  3. Doris 同时支持离线批量和实时数据,一个框架搞定一切

二、doris原理和使用

doris的数据模型

数据模型、ROLLUP 及前缀索引 - Apache Doris

[说明] Doris使用培训_Apache_04

[说明] Doris使用培训_离线_05

doris的底层数据组织方式

[说明] Doris使用培训_大数据_06

分区与分桶

Doris 支持两层的数据划分。第一层是 Partition,支持 Range 和 List 的划分方式。第二层是 Bucket(Tablet),仅支持 Hash 的划分方式。

[说明] Doris使用培训_大数据_07

动态分区

创建doris表的时候支持动态分区,比如按照时间的HOUR、DAY、WEEK、    

MONTH    的时间方式创建动态分区

动态分区 - Apache Doris

数据导入

导入总览 - Apache Doris

好博客就要一起分享哦!分享海报

此处可发布评论

评论(0展开评论

暂无评论,快来写一下吧

展开评论

您可能感兴趣的博客

客服QQ 1913284695