做看电视电影的网站赚钱,seo口碑优化,凤楼网站怎么做的,百度咨询电话 人工Doris#xff1a;基于 MPP 架构的高性能实时分析型数据库 1.Doris 介绍
Apache Doris 是一个基于 MPP#xff08;Massively Parallel Processing#xff0c;大规模并行处理#xff09;架构的高性能、实时的分析型数据库#xff0c;以极速易用的特点被人们所熟知#xff… Doris基于 MPP 架构的高性能实时分析型数据库
1.Doris 介绍
Apache Doris 是一个基于 MPPMassively Parallel Processing大规模并行处理架构的高性能、实时的分析型数据库以极速易用的特点被人们所熟知仅需亚秒级响应时间即可返回海量数据下的查询结果不仅可以支持高并发的点查询场景也能支持高吞吐的复杂分析场景。基于此Apache Doris 能够较好的满足 报表分析、即席查询、统一数仓构建、数据湖联邦查询加速 等使用场景用户可以在此之上构建 用户行为分析、AB 实验平台、日志检索分析、用户画像分析、订单分析 等应用。
Apache Doris 最早是诞生于百度广告报表业务的 Palo 项目 2017 2017 2017 年正式对外开源 2018 2018 2018 年 7 7 7 月由百度捐赠给 Apache 基金会进行孵化之后在 Apache 导师的指导下由孵化器项目管理委员会成员进行孵化和运营。目前 Apache Doris 社区已经聚集了来自不同行业数百家企业的 400 400 400 余位贡献者并且每月活跃贡献者人数也超过 100 100 100 位。 2022 2022 2022 年 6 6 6 月Apache Doris 成功从 Apache 孵化器毕业正式成为 Apache 顶级项目Top-Level ProjectTLP
Apache Doris 如今在中国乃至全球范围内都拥有着广泛的用户群体截止目前 Apache Doris 已经在全球超过 2000 2000 2000 家企业的生产环境中得到应用在中国市值或估值排行前 50 50 50 的互联网公司中有超过 80 % 80\% 80% 长期使用 Apache Doris包括百度、美团、小米、京东、字节跳动、腾讯、网易、快手、微博、贝壳等。同时在一些传统行业如金融、能源、制造、电信等领域也有着丰富的应用。 2.使用场景
如下图所示数据源经过各种数据集成和加工处理后通常会入库到 实时数仓 Doris 和 离线湖仓Hive、Iceberg、Hudi 中Apache Doris 被广泛应用在以下场景中。 报表分析 实时看板 Dashboards面向企业内部分析师和管理者的报表面向用户或者客户的高并发报表分析Customer Facing Analytics。比如面向网站主的站点分析、面向广告主的广告报表并发通常要求成千上万的 QPS 查询延时要求毫秒级响应。著名的电商公司京东在广告报表中使用 Apache Doris 每天写入 100 100 100 亿行数据查询并发 QPS 上万 99 99 99 分位的查询延时 150 150 150 m s ms ms。 即席查询Ad-hoc Query面向分析师的自助分析查询模式不固定要求较高的吞吐。小米公司基于 Doris 构建了增长分析平台Growing AnalyticsGA利用用户行为数据对业务进行增长分析平均查询延时 10 10 10 s s s 95 95 95 分位的查询延时 30 30 30 s s s 以内每天的 SQL 查询量为数万条。 统一数仓构建一个平台满足统一的数据仓库建设需求简化繁琐的大数据软件栈。海底捞基于 Doris 构建的统一数仓替换了原来由 Spark、Hive、Kudu、Hbase、Phoenix 组成的旧架构架构大大简化。 数据湖联邦查询通过外表的方式联邦分析位于 Hive、Iceberg、Hudi 中的数据在避免数据拷贝的前提下查询性能大幅提升。
3.技术概述
Doris 整体架构如下图所示Doris 架构非常简单只有两类进程
FrontendFE主要负责用户请求的接入、查询解析规划、元数据的管理、节点管理相关工作。BackendBE主要负责数据存储、查询计划的执行。
这两类进程都是可以横向扩展的单集群可以支持到数百台机器数十 PB 的存储容量。并且这两类进程通过一致性协议来保证服务的高可用和数据的高可靠。这种高度集成的架构设计极大的降低了一款分布式系统的运维成本。 在 使用接口 方面Doris 采用 MySQL 协议高度兼容 MySQL 语法支持标准 SQL用户可以通过各类客户端工具来访问 Doris并支持与 BI 工具的无缝对接。Doris 当前支持多种主流的 BI 产品包括不限于 SmartBI、DataEase、FineBI、Tableau、Power BI、SuperSet 等只要支持 MySQL 协议的 BI 工具Doris 就可以作为数据源提供查询支持。
在 存储引擎 方面Doris 采用列式存储按列进行数据的编码压缩和读取能够实现极高的压缩比同时减少大量非相关数据的扫描从而更加有效利用 IO 和 CPU 资源。
Doris 也支持比较丰富的索引结构来减少数据的扫描
Sorted Compound Key Index可以最多指定三个列组成复合排序键通过该索引能够有效进行数据裁剪从而能够更好支持高并发的报表场景。Z-order Index使用 Z-order 索引可以高效对数据模型中的任意字段组合进行范围查询。Min/Max有效过滤数值类型的等值和范围查询。Bloom Filter对高基数列的等值过滤裁剪非常有效。Invert Index能够对任意字段实现快速检索。
在存储模型方面Doris 支持多种存储模型针对不同的场景做了针对性的优化
Aggregate Key 模型相同 Key 的 Value 列合并通过提前聚合大幅提升性能。Unique Key 模型Key 唯一相同 Key 的数据覆盖实现行级别数据更新。Duplicate Key 模型明细数据模型满足事实表的明细存储。
Doris 也支持强一致的物化视图物化视图的更新和选择都在系统内自动进行不需要用户手动选择从而大幅减少了物化视图维护的代价。
在 查询引擎 方面Doris 采用 MPP 的模型节点间和节点内都并行执行也支持多个大表的分布式 Shuffle Join从而能够更好应对复杂查询。 Doris 查询引擎是向量化的查询引擎所有的内存结构能够按照列式布局能够达到大幅减少虚函数调用、提升 Cache 命中率高效利用 SIMDSingle Instruction Multiple Data单指令多数据流指令的效果。在宽表聚合场景下性能是非向量化引擎的 5 5 5 ~ 10 10 10 倍。 Doris 采用了 Adaptive Query Execution自适应查询执行 技术 可以根据 Runtime Statistics 来动态调整执行计划比如通过 Runtime Filter 技术能够在运行时生成 Filter 推到 Probe 侧并且能够将 Filter 自动穿透到 Probe 侧最底层的 Scan 节点从而大幅减少 Probe 的数据量加速 Join 性能。Doris 的 Runtime Filter 支持 In / Min / Max / Bloom Filter。
在 优化器 方面 Doris 使用 CBORule-Based Optimizer和 RBOCost-Based Optimizer结合的优化策略RBO 支持常量折叠、子查询改写、谓词下推等CBO 支持 Join Reorder。目前 CBO 还在持续优化中主要集中在更加精准的统计信息收集和推导更加精准的代价模型预估等方面。