暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

建议收藏 | 一文全面了解Doris ↗

大数据技能圈 2024-10-21
82
从今天开始我们就正式的进入Apache Doris系列。今天我们通过一篇文章来全面了解Doris的发展历史、特性、及应用场景。

01

项目发展历史

2013-2017

■ 百度研发实时数仓平台Palo,采用列存和MPP查询引擎,最初应用在百度统计、广告报表分析场景

■ 推广到百度所有业务线,正式成为百度统一的实时数仓

2018-2021

■ Palo开源,并成为Apache基金会孵化器项目,更名为ApacheDoris

■ Apache Doris 被数百家企业应用在生产系统,包含美团、京东、小米、字节、华为、腾讯等公司

2022-至今

■ 2022年1月,Doris团队创建飞轮科技(SELECTDB),大力建设开源社区并提供商业化产品和服务支持

■ 2022年6月,孵化毕业,成为Apache顶级项目(TLP)

■ 2000多家中大企业使用,9000+star,550+多开发者,是目前最活跃、最受欢迎的开源大数据项目

这里留个彩蛋,为什么刚开始会叫Palo(最后评论区我会公布答案)

这或许是一个对你有用的开源项目data-warehouse-learning 项目是一套基于 MySQL + Kafka + Hadoop + Hive + Dolphinscheduler + Doris + Seatunnel + Paimon + Hudi + Iceberg + Flink + Dinky + DataRT + SuperSet 实现的实时离线数仓(数据湖)系统,以大家最熟悉的电商业务为切入点,详细讲述并实现了数据产生、同步、数据建模、数仓(数据湖)建设、数据服务、BI报表展示等数据全链路处理流程。

https://gitee.com/wzylzjtn/data-warehouse-learning

https://github.com/Mrkuhuo/data-warehouse-learning

https://bigdatacircle.top/

项目演示:

02

在数据分析中的定位

Doris主要定位在报表分析、即席分析、湖仓联邦分析、日志存储检索分析、高并发数据服务等场景,那Doris如何能够干这么多的事情呢?我们接着看。

03

主要特性

Doris主要特性可分为三部分:高效、简单、统一

■ 高效:极速的分析能力、高效的数据更新、丰富的数据导入、极致弹性及存算分离

■ 简单:高可用与高可靠、多租户管理、易用易管理

■ 统一:半结构化数据查询、湖仓一体

04

极速的分析能力

Doris除了拥有以上功能来完成极速的分析能力外,还实现了倒排索引来加速数据分析查询

05

实时的数据导入

■ 数据导入的核心目标 :实时、高吞吐、便捷、读写隔离

■ 实时小批量数据导入(时效性可以做到1s~5s)

     口StreamLoad:通过 HTTP协议,将本地文件导入到 Doris,吞吐可线性提升,实际场景中有千万记录每秒

    口Flink Doris Connector:使用F1nK-CDC机制从OLTP数据库中抽取数据,调用StreamLoad ,实时小批量导入到 Doris

     口RoutineLoad :订阅Kafka 中数据,实时小批量导入到Doris,支持一流多表

     口 Insert into values :通过JDBC的方式便捷写入:需要写入端攒批,写入吞吐有限:后续版本会做服务端自动攒批

■ 批量数据导入和集成

     口数据湖集成: 通过数据湖联邦分析(insert into 内表 select from 外表)的形式导入,支持数据变换,大数据量高吞吐导入

            √集成存储系统(S3,HDFS,本地文件)

            √集成数据湖(lceberg,Hudi,Hive)

            √集成数据库(MySQL,Oracle,ES等)

     口SparkLoad:使用 Spark 计算资源处理位于HDFS或者对象存储上的原始数据,生成 Doris 存储格式,适合大批量数据灌入

     BrokerLoad:不再需要部署Broker,支持HDFS和S3协议

■ 丰富的数据集成工具和生态:Spark Connector,Airbyte,Dataworks,DataX,数据迁移工具 x2Doris,并行导入ParallelLoad

■ 读写隔离(V2.1)

06

高可用与高可靠

01

高可用架构

■ Frontend 节点管理元数据,多副本,类Paxos致性协议

■ Backend 节点管数据,多副本,自动副本补齐和均衡

■ Client 可以通过负载均衡链接Frontend节点

■ 查询过程中 Backend down,Query 会重试

■ 不停服滚动升级、扩缩容

Doris的发展历史、特性、及应用场景。

02

数据备份恢复

支持全表或者分区级别的数据备份恢复(数据备份到HDFS或者对象存储)

03

跨集群复制

■ 容灾备份 :将企业的数据备份到另一个集群与机房中,当突发事件导致业务中断或丢失时,可以从备份中恢复数据或快速进行主备切换。一般在对 SLA 要求比较高的场景中,都需要进行容灾备份,比如在金融、医疗、电子商务等领域中比较常见。

■ 读写分离:读写分离是将数据的査询操作和写入操作进行分离,目的是降低读写操作的相互影响,保证数据库的性能及稳定性。

■ 隔离升级:当对集群升级时,为了避免不兼容和未知Bug,提前构建备集群进行双跑验证

■ 性能数据:最快可以做到分钟别数据延时,数据同步速度可以触及网卡和磁盘上限

07

多租户管理

01

多租户安全-认证和鉴权

■ 认证:使用MySQL的安全认证过程(非对称加密)

■ 完善的RBAC的访控

■ 数据权限

    口库表级别权限

    口行级别权限

    口列级别权限

■ 支持打通用户的LDAP为Doris提供认证和鉴权服务

 支持SSL/TLS安全传输

02

多租户资源隔离

■ Resource Group:机器分组,副本放置到分组,user绑定分组

■ BlockRule:对特定查询模式、涉及分区/分片数大的查询拦截

■ 单查询内存限制和Memory Tracker

■ 存算分离:多cluster机制和reource group 整合(V2.1)

■ 导入和Compaction后台线程和查询隔离(v2.1)

08

易用易管理

01

兼容 MySQL 协议,学习成本低,和各类BI工具兼容性好

02

完善的管理(Doris Manager)和SQL开发工具

03

灵活轻量的 Schema 变更(Light Schema Change)

■ 轻量级Schema变更(v1.2起)

    口在线毫秒级增减字段

    口在线按需增减索引

    口在线按需更改类型

■ FlinkConnector等工具结合LSC实现上游表变更毫秒级DDL同步

09

半结构化数据分析

■ 丰富的半结构化数据分析场景和特点

    口日志检索分析、可观测性分析、时序数据分析、车联网数据分析、安全

    口Schema Free、低成本、高效文本分析、任意维度分析和全文检索

■ 高效文本分析 (模糊查询 1ike)

    口NGram Bloomfilter,提升like性能2倍

    口Like下推到存储层,加速2-3倍

    口自适应 Like

    口高性能正则匹配库Hyperscan加速,提速2-10倍

    高性能子串匹配Volnitsky算法,加速1.5~3倍

■ 倒排索引

    口多维度快速检索;支持文本分词,实现全文检索

■ 复合数据类型

    口Array,Map,Json;Varint(v2.1),允许一个字段多种数据类型

■ 高效存储与写入

    口列式存储,ZSTD压缩,冷热分层

    口减少正排,时序compaction,单副本导入

10

湖仓一体

■ 主要应用场景

    口湖仓查询加速

    口数据导入和集成

    口统一查询网关

    口ETL/ELT加速,写回开放湖仓存储格式

■ 便捷的元数据和数据打通

    口元数据映射、cache和自动刷新

    口支持几乎所有开放湖仓格式和etastore

    口支持ES和关系型数据库,并且插件扩展

    口支持外表的认证鉴权,如keberos,ranger

■ 分析加速

    口利用Doris 高效的分析引擎加速

    热数据Cache到本地

    口支持弹性计算节点,实现计算弹性加速

    口外表处理结果可写入内表,形成加速视图

11

极致弹性与存储分离

01

存算一体模式


■ 简单易部署,易运维,适合绝大多数用户

■ FE和BE节点都可以灵活扩缩容

■ 存储支持冷热数据分层,将冷存储下沉到对象存储或HDFS

■ 可以支持弹性计算节点,快速实现计算弹性

02

存算分离模式

■ 飞轮科技2022基于ApacheDoris实现了存算分离式的SelectDB Cloud,2023年V2.1贡献给 Apache Doris

■ 存储资源和计算资源分离,各自弹性,更极致性价比

■ 依赖足够稳定、高吞吐的共享存储,通常公有云上才有

■ 可以通过多cluster 机制实现负载隔离,读写分离等机制

12

版本Roadmap

2022.07 V1.1

■ 全面向量化引擎支持,性能提升3-5倍

■ 内存统计和限制机制,稳定性大幅提升

■ 500+优化和修复:ZSTD压缩算法、Latera1View 语法及 Table Function 表函数等

2022.12 V1.2

■ 算子全面优化,宽表性能领先

■ Clickbench全球性能第一,领先Clickhouse

■ 新主键模型(MoWUniqueKey),聚合性能提升5-10倍

■ 嵌套数据类型:Array,JSON

■ 初步完备的LakeHouse,性能比presto快3-5倍

■ 轻量 Schema Change

2023.07 V2.0 (2023.05 alpha,2023.06 beta)

■ 复杂查询盲测性能提升近10倍:全新的查询优化器,pipeline执行引擎

■ 倒排索引,相比ElasticSearch10倍性价比的日志存储分析方案

■ 完善的LakeHouse(hive,iceberg,hudi,jdbc rdbms)和性能提升

■ 高并发数据服务支持,点查性能单机数万,线性可扩展

■ MoW UniqueKey稳定支持大批量导入,支持部分列更新,完善的DML

■ 资源弹性:冷热数据分层+弹性计算节点

■ 众多企业级特性:跨级群复制CCR、负载管理和排队、万表入库、K8S对接

2023.10 V2.1(2023.09 preview)

■SelectDB Cloud 上完善的存算分离能力开源到社区

■ 数据科学场景高速读取数据

■ Varint 数据类型,更灵活的半结构化数据支持

■ 多表物化视图

■ LakeHouse 兼容 trino 语法

■ PL/SQL 存储过程

以上就是Doris介绍全部内容,后续系列我们会逐节展开进行详细说明,请持续关注..

13

加入知识星球

14

进交流群群添加作者

推荐阅读系列文章

文章转载自大数据技能圈,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论