【大数据】Doris 构建实时数仓落地方案详解(二):Doris 核心功能解读

这篇具有很好参考价值的文章主要介绍了【大数据】Doris 构建实时数仓落地方案详解(二):Doris 核心功能解读。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

本系列包含:

  • Doris 构建实时数仓落地方案详解(一):实时数据仓库概述
  • Doris 构建实时数仓落地方案详解(二):Doris 核心功能解读
  • Doris 构建实时数仓落地方案详解(三):Doris 实时数仓设计

1.Doris 发展历程

Apache Doris 是由 百度 研发并开源的数据库项目。 Doris 2008 年开始在百度内部立项,经历了五个大版本的迭代后于 2017 年开源,2018 年进入 Apache 基金会孵化项目。2022 年 4 月 18 日正式发布 Doris 1.0,2022 年 6 月 16 日正式毕业,成为 Apache 软件基金会的顶级项目。

Doris 数据库软件主要有 BEFE 两个组件构建。BE 是后台数据存取组件,是由 C++ 语言编写;FE 是前端查询入口和查询解析组件,由 Java 语言编写。

2.Doris 三大模型

Doris 最大的特点是提供了三大数据模型:

  • Duplicate Key 模型也叫 可重复模型明细模型,和普通的数据库表用法一样,保留每一条插入的数据,并且支持索引。

  • Aggregate Key 模型也叫 聚合模型汇总模型,将表的所有字段分为维度列和指标列,按照维度汇总指标数据,大大缩小数据量。

  • Unique Key 模型也叫 去重模型唯一模型,是按照主键保留最新记录,用于实现数据的删除和修改。

此外,Doris 还支持各种外部表,包括 ODBC 外部表、Hive 外部表、ES 外部表和 Iceberg 外部表,分别用于直接使用 Doris 查询引擎查询关系型数据库、Hive 数仓、ES 文本检索和 Iceberg 数据湖的数据,极大的拓宽了 Doris 数据库的应用边界。

3.Doris 数据导入

虽然 Doris 对外部表支持很丰富,但是外部表由于网络的瓶颈和无法支持索引,因此大数据的查询性能低于内部表,这里我们就要用到 Doris 的数据导入能力。Doris 的数据导入具有原子性,也就是说一批数据要么全部导入成功,要么全部失败;也支持容错参数,低于一定比例异常的数据都视为成功。

Doris 数据导入和数据搬迁工具包括 Insert IntoStream LoadBroker LoadRoutine LoadBinlog LoadSpark Load 和 DataX 导入。

doris实时数仓,# Doris,大数据,数据仓库,Doris,实时数仓,MPP架构,Hadoop,HDFS
库内数据处理优先 Insert Into,离线数据导入优选 Stream Load 和 DataX 导入,流式数据接入可以选择 Routine LoadBinlog Load,Hive 数据导入选择 Broker LoadSpark Load。可以看出,Doris 支持的数据来源非常丰富,并且对各种大数据生态产品支持都非常友好。

当然,我们还可以通过外部表直接 Insert Into 来搬迁数据量较小的外部数据。

4.Doris 多表关联

然后就是 Doris 的多表关联功能。Doris 支持 Shuffle JoinBucket Shuffle JoinBroadcast JoinColocate Join 四种分布式 join 策略,可以最大程度减少 MPP 架构下的数据重分布,提高数据查询效率。

  • Shuffle Join 要重分布关联的两个表所有数据。
  • Bucket Shuffle Join 只需要重分布两个关联表中一个表的数据。
  • Broadcast Join 则是广播关联表的其中一个数据量较小的表的全量数据。
  • Colocate Join 则是直接在本地完成数据关联,无需进行任何数据重分布,这是大表数据关联的一种理想状态。

doris实时数仓,# Doris,大数据,数据仓库,Doris,实时数仓,MPP架构,Hadoop,HDFS
四种数据分布策略各有不同的应用场景,我们需要根据不同的数据关联需要进行优化,减少重分布的数据量,可以可以降低网络消耗,提高查询速度。

5.Doris 核心设计

Doris 的核心设计参考了 Google MesaApache ImpalaOrcFile 存储格式。

doris实时数仓,# Doris,大数据,数据仓库,Doris,实时数仓,MPP架构,Hadoop,HDFS
这里我想重点介绍一下 Doris 的数据存储。Doris 的存储设计结合传统 MPP 数据库的优点和 Hadoop 分布式数据的优点,引入了一个叫 bucket 的概念。我们都知道 Hadoop 是把一个表的数据按照文件大小切分成多个块,每个块三个副本随机分布到集群的三台服务器上的。而传统的 MPP 数据(例如 Greenplum、Clickhouse),数据要么按照节点平均分布,要么每个节点一份副本的全节点分布,前者对大表友好,后者对小表友好,但是都有缺点,前者并发查询上不去,后者浪费存储,节点数据同步消耗时间多。而 Doris 则是结合二者的优点又舍弃了其缺点,既支持小表多节点分布数据,又支持大表按照指定节点数分布式,并且 Doris 的数据副本可以参与计算,分散并发查询压力。

  • 针对聚合的热点数据表或者需要多次关联的维度表,我们可以设置 3 3 3 个以上的副本数,提高数据并发查询能力;
  • 针对需要关联或者全表扫描的大表,我们设置尽可能多的分桶数,在查询时调用多节点同步进行来提高查询效率;
  • 针对 ODS 层的大表或者实时数据写入的表,我可以只保留一份副本,降低磁盘空间占用。

另外,Doris 的数据文件存储格式,也是结合了行存的优点和列存的优点,选择的是基于行列混合的模式,在读写性能上也有非常大的提升。传统的 OLTP 数据库选择行存储是为了便于数据更新和删除,OLAP 数据库选择列存储是为了减少数据查询读取的列数,行列混合存储则结合了二者的优点,又提高了数据存储的灵活性。Doris 2.0 还提供了对 S3 对象存储的支持,可以将冷数据自动备份到对象存储中,并且支持在线查询,只是查询速度会降低。

6.Doris 查询优化

最后是 Doris 的查询优化功能。Doris 在查询方面做了非常多的优化。主要包括以下几个方面:

  • 索引。其中最重要的是稀疏索引。稀疏索引是首先将入库的数据按照数据块的排序键进行顺序存储,然后每隔 1024 1024 1024 行数维护一条索引,既大幅降低了索引的空间占用,又可以快速扫描数据,是一个极具突破性的设计。前面介绍 Clickhouse 快的原因也提到了这个功能。而 Doris 在前缀稀疏索引之外,还支持了 MinMax 索引、Bloom Filter 索引、Bitmap 索引,还支持通过 rollup 设置多种不同字段组合的索引,功能简直逆天。
  • rollup 和物化视图。Doris 支持通过 rollup 和物化视图提前预聚合数据,减少查询的数据量,提高响应速度。
  • 分区。Doris 支持多级分区,可以通过分区降低数据的扫描范围,提高查询速度。
  • 向量化查询引擎。Doris 通过支持向量化查询引擎,可以大幅提高 CPU 数据处理能力,提高查询效率。
  • 查询优化。Doris 接收到用户的查询语句以后,会先进行 SQL 语句改写,尽可能降低查询复杂度,减少数据扫描范围。例如谓词下推、Join Order 优化、复杂 SQL 改写。

7.Doris 应对实时数仓的痛点

然后我们回顾一下实时数仓的三大难点:多表关联维度数据变更数据失效

  • 在 Doris 中,多表关联 我们可以通过流数据分别写入主键表的方式,在查询的时候才进行多表关联,这样可以完美的解决窗口不一致导致关联丢失的问题。
  • 维度数据变更 也是一样的,我们可以在查询的时候才进行维度关联,舍弃大宽表模型,在不损失查询效率的情况下实现数据的一致性和实时性。
  • 关于 数据失效 问题,Doris 主键模型支持按照主键删除和修改数据,失效的数据我们可以直接在明细数据上置为无效或者删除,在查询时过滤掉失效数据。

doris实时数仓,# Doris,大数据,数据仓库,Doris,实时数仓,MPP架构,Hadoop,HDFS
所以我说 Doris 数据库可以解决实时数仓的三大痛点。文章来源地址https://www.toymoban.com/news/detail-733009.html

到了这里,关于【大数据】Doris 构建实时数仓落地方案详解(二):Doris 核心功能解读的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 如何基于 Apache Doris 与 Apache Flink 快速构建极速易用的实时数仓

    随着大数据应用的不断深入,企业不再满足离线数据加工计算的时效,实时数据需求已成为数据应用新常态。伴随着实时分析需求的不断膨胀,传统的数据架构面临的成本高、实时性无法保证、组件繁冗、运维难度高等问题日益凸显。为了适应业务快速迭代的特点,帮助企业

    2024年02月12日
    浏览(48)
  • Apache Flink X Apache Doris构建极速易用的实时数仓架构

    大家好,我叫王磊。是SelectDB 大数据研发。今天给大家带来的分享是《Apache Flink X Apache Doris构建极速易用的实时数仓架构》。 下面是我们的个人介绍:我是Apache Doris Contributor 和阿里云 MVP。同时著有《 图解 Spark 大数据快速分析实战》等书籍。 接下来咱们进入本次演讲的正题

    2023年04月24日
    浏览(49)
  • Flink+Doris 实时数仓

    Doris基本原理 Doris基本架构非常简单,只有FE(Frontend)、BE(Backend)两种角色,不依赖任何外部组件,对部署和运维非常友好。架构图如下 可以 看到Doris 的数仓架构十分简洁,不依赖 Hadoop 生态组件,构建及运维成本较低。 FE(Frontend)以 Java 语言为主,主要功能职责: 接收用户

    2024年02月07日
    浏览(51)
  • 1.8万字详解实时数仓建设方案及大厂案例

    一、实时数仓建设背景 关注公号: 数元斋 1. 实时需求日趋迫切 目前各大公司的产品需求和内部决策对于数据实时性的要求越来越迫切,需要实时数仓的能力来赋能。传统离线数仓的数据时效性是 T+1,调度频率以天为单位,无法支撑实时场景的数据需求。即使能将调度频率

    2024年02月02日
    浏览(45)
  • Flink实时电商数仓之Doris框架(七)

    大规模并行处理的分析型数据库产品。使用场景:一般先将原始数据经过清洗过滤转换后,再导入doris中使用。主要实现的功能有: 实时看板 面向企业内部分析师和管理者的报表 面向用户或者客户的高并发报表分析 即席查询 统一数仓构建:替换了原来由Spark, Hive,Kudu, Hba

    2024年02月03日
    浏览(47)
  • 深入解析实时数仓Doris:Rollup上卷表与查询

    码到三十五 : 个人主页 心中有诗画,指尖舞代码,目光览世界,步履越千山,人间尽值得 ! ROLLUP 在多维分析中是“上卷”的意思,即将数据按某种指定的粒度进行进一步聚合。 在 Doris 中,我们将用户通过建表语句创建出来的表称为 Base 表(Base Table)。Base 表中保存着按用

    2024年04月10日
    浏览(35)
  • 陈长城:NineData面向Doris实时数仓集成的技术实践

    在刚刚过去的北京Doris Summit Asia 2023,玖章算术技术副总裁陈长城受邀参加并做了《NineData面向Doris实时数仓集成的技术实践》报告。 玖章算术技术副总裁陈长城 从业界的报告中我们知道超过81%的企业使用了多云或混合云架构,超过70%的企业使用了多种数据类型,而对基础架构

    2024年02月05日
    浏览(50)
  • 十万字图文详解mysql、redis、kafka、elasticsearch(ES)多源异构不同种类数据库集成、数据共享、数据同步、不同中间件技术实现与方案,如何构建数据仓库、数据湖、数仓一体化?

    数据库大数据量、高并发、高可用解决方案,十万字图文详解mysql、redis、kafka、elasticsearch(ES)多源异构不同种类数据库集成、数据共享、数据同步、不同中间件技术实现与方案,如何构建数据仓库、数据湖、数仓一体化?Delta Lake、Apache Hudi和Apache Iceberg数仓一体化技术架构

    2024年02月07日
    浏览(53)
  • 代立冬:基于Apache Doris+SeaTunnel 实现多源实时数据仓库解决方案探索实践

    大家好,我是白鲸开源的联合创始人代立冬,同时担任 Apache DolphinScheduler 的 PMC chair 和 SeaTunnel 的 PMC。作为 Apache Foundation 的成员和孵化器导师,我积极参与推动多个开源项目的发展,帮助它们通过孵化器成长为 Apache 的顶级项目。 今天的分享的主题其实还是从开源到商业,

    2024年02月04日
    浏览(65)
  • 实时数仓|基于Flink1.11的SQL构建实时数仓探索实践

    实时数仓主要是为了解决传统数仓数据时效性低的问题,实时数仓通常会用在实时的 OLAP 分析、实时的数据看板、业务指标实时监控等场景。虽然关于实时数仓的架构及技术选型与传统的离线数仓会存在差异,但是关于数仓建设的基本方法论是一致的。本文会分享基于 Flink

    2024年02月16日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包