为什么Apache Doris适合做大数据的复杂计算,MySQL不适合?

这篇具有很好参考价值的文章主要介绍了为什么Apache Doris适合做大数据的复杂计算,MySQL不适合?。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、背景说明

doris为什么适合olap,Apache Doris,大数据,apache,大数据,mysql

经常有小伙伴发出这类直击灵魂的疑问:

Q:“为什么Apache Doris适合做大数据的复杂计算,MySQL不适合?”
A:“因为Apache Doris是OLAP,MySQL是OLTP啊!”
Q:“SO?”
A:“因为一个是AP场景的DB,一个是TP场景的DB啊!”
Q:“SO?”

[emm] 要不先来简单概述下OLAP和OLTP

OLAP(Online Analytical Processing,联机分析处理)主要用于大数据场景下复杂的分析查询和决策支持,重点在于数据分析、多维度分析和报表生成。例如,销售数据分析、市场趋势预测、业务报表生成等。

OLTP(Online Transaction Processing,联机事务处理)主要用于处理实时事务和业务操作,重点在于高并发、高可靠性和数据一致性。例如,在线购物、银行交易、航空订票等需要频繁读写小规模数据的场景。

这么一概述,OLAP和OLTP在应用场景和目的上确实有所不同,那么是什么原因导致的呢?

接下来,咱们从OLAP(Apache Doris为例)和OLTP(Mysql为例)的DB架构、数据结构以及存储结构的维度来一探究竟吧!

二、DB架构差异

doris为什么适合olap,Apache Doris,大数据,apache,大数据,mysql

  • 数据分布:数据被分割成多个部分,每个BE节点都独立地存储一部分数据,节点之间不共享存储,每个节点独立处理自己所负责的数据。
  • 数据处理:每个BE节点都独立地处理自己所负责的数据,节点之间可以并行地进行数据处理,从而提高系统的整体性能。
  • 扩展性:更注重水平横向扩展,通过增加更多的节点来分担数据和负载,从而提供更好的可扩展性和负载均衡性能。
  • 一致性:通过一致性协议和分布式事务来维护数据的一致性。

Apache Doris 是典型的 Shared Nothing 分布式计算架构,每个BE都有自己的CPU、内存和硬盘等,不存在共享资源。多BE采用MPP(大规模并行处理)模式,各处理单元之间通过协议通信,并行处理和扩展能力更好,为 Apache Doris 带来了高可用、极简部署、横向可扩展以及强大的实时分析性能等一系列核心特色。

doris为什么适合olap,Apache Doris,大数据,apache,大数据,mysql

  • 数据分布:数据存储在服务端,客户端通过网络与服务端进行通信并发送请求,服务端负责处理请求并返回结果。
  • 数据处理:服务端负责接收并处理客户端的请求,包括查询、更新等操作,承担着数据处理的主要责任。
  • 扩展性:通常需要对服务端进行垂直扩展,即增加服务端的硬件资源(如CPU和内存等),以满足更高的并发需求。
  • 一致性:服务端负责维护数据的一致性,保证多个客户端对数据的并发操作不会导致数据的不一致性。

MySQL是典型的 C/S(Client/Server)架构,主要被分为客户端和服务端两部分。客户端只需发送请求并接收结果,将数据处理和存储的职责集中在服务器端,通过专门的服务器、高效的网络通信和并发控制机制(如锁、事务隔离级别等)支持,更适合处理在线业务的高并发读写场景。

但对于大规模数据的复杂计算场景,可能需要进行大量的计算和存储操作,这会给服务器带来较大的负载压力,如果服务器的计算能力有限或者无法有效扩展,可能无法满足大数据复杂计算的需求。另外,复杂计算往往涉及多个数据节点之间的交互和计算过程,需要进行并发控制和保证数据的一致性。在C/S架构中,这些并发控制和一致性的工作通常由服务器端负责,可能面临较高的竞争和冲突,导致性能下降或者数据不一致的问题。

SO,从DB架构设计上的差异而言,Apache Doris 适合做大数据的复杂计算,MySQL不适合。

三、数据结构差异

通常而言,数据库中索引的作用是做数据的快速检索,而快速检索的实现的本质是数据结构。基于不同数据结构的选择,实现各种数据快速检索。

doris为什么适合olap,Apache Doris,大数据,apache,大数据,mysql

Apache Doris 底层存储引擎提供了丰富的索引类型来提高数据查询效率。分别是 Short Key 前缀索引(快速扫描)、Ordinal 索引(索引加速)、Zone Map索引(快速定位)、BitMap 索引(人群圈选)、 Bloom Filter 索引(高基数等值查询)和倒排索引时(文本检索)等。前缀索引、Ordinal 索引和 Zone Map 索引不需要用户干预,会随着数据写入智能生成;Bitmap 索引、 Bloom Filter 索引和倒排索引需要用户干预,数据写入时默认不会生成,用户可以有选择地为指定的列添加这3种索引。

基于这些索引,Apache Doris 进行不同场景的大规模数据的复杂计算时,可谓事半功倍。

doris为什么适合olap,Apache Doris,大数据,apache,大数据,mysql

MySQL 底层数据引擎以插件形式设计,最常见的是 Innodb 引擎和 Myisam 引擎,用户可以根据个人需求选择不同的引擎作为 Mysql 数据表的底层引擎。这里,我们选择Innodb引擎来分析。

Innodb引擎以B+树作为索引的数据结构,从Hash、二叉树、红黑树、AVL树和B树推演而定。B+树节点存储的是索引,叶子节点是真正数据存储的地方,叶子节点用了链表连接起来,这个链表本身就是有序的,因此具有高效的范围查询,且能够支持快速的插入、删除、高并发访问等优点,但为什么不适合大数据的复杂计算场景?

  1. 磁盘I/O次数增多:随着数据的增加,B+树的高度会逐渐增加,这会导致查询时需要进行更多的磁盘I/O操作,从而影响查询效率。
  2. 索引维护成本增加:对于海量数据集,B+树索引的维护成本也会逐渐增加,例如插入、删除或者更新操作会导致索引的重构,从而影响数据处理的效率。
  3. 节点分裂频繁:在B+树索引中,节点分裂的次数与数据的分布情况有关。如果数据分布不均匀,节点分裂的频率就会增加,从而导致索引的重构和磁盘I/O负载增加。

SO,从数据结构设计上的差异而言,Apache Doris 适合做大数据的复杂计算,MySQL不适合。

四、存储结构差异

doris为什么适合olap,Apache Doris,大数据,apache,大数据,mysql

Apache Doris 默认为例存储(2.0支持行存高并发点查特性),相较于Mysql 主要是行存储模式,在大规模数据的复杂计算中更具优势:

  1. 数据压缩效率:列存储模式可以对每一列的数据进行独立的压缩,这样可以通过更好的压缩算法和跳过无关数据来减小存储空间,并且可以提高读取数据时的I/O效率。在行存储模式下,当使用通用的压缩算法对整行数据进行压缩时,由于不同列之间的数据类型和取值范围差异较大,通常较难获得很高的压缩比。
  2. 查询性能优化:在复杂计算中,通常需要对大量的列进行聚合、过滤和统计操作。列存储模式可以只读取涉及到的列数据,避免了读取不必要的数据,从而提高查询性能。在行存储模式中,进行聚合、过滤或者统计某些特定列的数值时,需要读取整行数据,包括不相关的列,导致读取了不必要的数据,影响了查询性能。
  3. 数据排列连续:列存储模式将同一列的数据放在一起存储,这样相同的数据类型可以连续存储,减少了存储的冗余。同时,列存储模式还可以使用更加紧凑的数据编码方式,进一步减少存储空间的占用。在行存储模式中,每行数据都包含多个列的数值,当表中存在大量的重复数据时,这些数据会被存储多次,从而导致存储冗余,影响查询效率。
  4. 并行处理能力:列存储模式可以更好地支持并行计算,在大规模数据复杂计算时可以充分利用多核和分布式计算资源,加速数据处理的速度。在行存储模式中,需要对大量行进行扫描和过滤的复杂查询场景下,由于每行数据都包含多个列的数值,需要同时访问大量行数据,可能会导致并行查询的效率下降。

SO,从存储结构设计上的差异而言,Apache Doris 适合做大数据的复杂计算,MySQL不适合。

五、总结

SO,Apache Doris 由于是分布式列存架构,且具有丰富的索引支撑,非常适用用于大数据场景下复杂的分析查询和决策支持等;MySQL 基于C/S 行存架构,结合 B+tree 能够高效地支持小规模数据频繁读写、快速响应在线业务,主要用于处理实时事务和业务操作,各有千秋!

【为什么Apache Doris适合做大数据的复杂计算,MySQL不适合?】 分享至此结束,查阅过程中若遇到问题欢迎留言交流。文章来源地址https://www.toymoban.com/news/detail-805368.html

到了这里,关于为什么Apache Doris适合做大数据的复杂计算,MySQL不适合?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 为什么我觉得Rust比C++复杂得多?

    Rust自学确实有一定门槛,很多具体问题解决起来搜索引擎也不太帮的上忙,会出现卡住的情况,卡的时间长了就放弃了。最近很多小伙伴找我,说想要一些c语言资料,然后我根据自己从业十年经验,熬夜搞了几个通宵,精心整理了一份「c语言专业入门到高级教程+工具包」,

    2024年02月08日
    浏览(47)
  • 3. Apache HBase 为什么快?

    Apache HBase 之所以快速,主要归功于其设计和实现的几个关键特性和优化。 下面是一些重要的原因: 分布式架构:HBase是一个分布式数据库,数据存储在多个节点上,可以水平扩展。这使得HBase能够处理大规模数据,并且能够通过添加更多的服务器节点来提高性能。 列式存储

    2024年02月09日
    浏览(31)
  • 站长为什么都说WordPress太复杂不会用要放弃?

    网络上经常看到有站长说要放弃WordPress,理由各有不同,比如有些说WordPress太复杂不会用;有些说WordPress是国外建站系统,在国内用来搭建访问速度太慢;也有些说WordPress是针对谷歌优化的,不适合国内的搜索引擎等等。 boke112百科一直都是使用WordPress建站,也一直都推荐大

    2024年01月21日
    浏览(40)
  • 为什么堆排序的时间复杂度是O(N*logN)?

    目录 前言: 堆排序(以排升序为例) 步骤(用大根堆,倒这排,排升序): 1.先把要排列的数组建立成大根堆 2.堆顶元素(82)和最后一个元素交换(2) 3.无视掉交换后的元素(82),对(2)进行向下调整 翻译成代码 mian方法: heapSortUp方法: siftDown方法: 堆排序时间复杂

    2024年04月25日
    浏览(23)
  • 【二、自动化测试】为什么要做自动化测试?哪种项目适合做自动化?

    自动化测试是一种软件测试方法,通过编写和使用自动化脚本和工具,以自动执行测试用例并生成结果。 自动化旨在替代手动测试过程,提高测试效率和准确性。 自动化测试可以覆盖多种测试类型,包括功能测试、性能测试、安全测试等,以确保软件系统在各个方面的质量

    2024年02月02日
    浏览(42)
  • 【译】 你不是唯一感到AI疲劳的人(或者说:为什么那个新的AI工具不适合你)

    原作:pycoach 引言:越多的AI工具,越多的AI疲劳   使用 Midjourney 制作的图像   ChatGPT 时代有前后之分。 在 OpenAI 推出 ChatGPT 之前,只有少数程序员会涉足创建聊天机器人和用于本地执行的简单模型,也只有机器学习工程师和少数人工智能爱好者会每天使用“人工智能”这个词

    2024年02月19日
    浏览(36)
  • 【哈希表】为什么哈希表的插入/删除/查找时间复杂度为O(1)

    在使用哈希表时,往往会出现哈希冲突,此时就会通过 链表/红黑树 的方法来解决冲突,此时引入 链表/红黑树 那么时间复杂度就不是严格的O(1)。 我们首先要明白N代表什么,N是指问题的规模大小。 在使用哈希表时,所有的数据个数为N,链表的长度肯定不是N,( 因为存在

    2024年03月21日
    浏览(45)
  • A Beginner‘s Guide to Apache Kafka: 什么是Kafka、它为什么如此受欢迎、它在哪些场景下可以应用、以及一些基本概念和术语

    作者:禅与计算机程序设计艺术 Apache Kafka(以下简称Kafka)是一个开源分布式流处理平台,它被设计用来实时传输大量的数据,从而能够实时的对数据进行处理并提取价值。本文通过梳理,引导读者了解什么是Kafka、它为什么如此受欢迎、它在哪些场景下可以应用、以

    2024年02月09日
    浏览(51)
  • 数据治理为什么要清洗数据

    在当今科技发展迅速的时代,数据已经成为企业和组织中不可或缺的重要资源。在数聚看来,随着数据量的不断增加和数据来源的多样性,数据的质量与一致性成为了一个巨大的挑战。为了保证数据的准确性和可靠性,数据治理成为了当务之急。而数据清洗作为数据治理的重

    2024年01月23日
    浏览(36)
  • 为什么需要数据仓库

    为什么不在OLTP环境下分析?  OLTP环境也会存储历史数据,但这些历史数据并不是业务运行所需的,这些历史数据需要经常归档到数据仓库,并且在OLTP数据库中删除。 相比之下,事务环境适用于连续处理事务,通常应用于订单录入以及财务和零售事务。它们并不依赖历史数据

    2024年01月25日
    浏览(53)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包