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

数据分析处理技术架构演进

原创 大数据模型 2023-09-10
280

前言

数据分析处理技术是一项巨大的软件系统工程,架构演变经历了单体、主备、分布式等阶段的迭代后,现在数据处理分析架构来来回回这几种。数据分析的基本构成由数据采集传输、数据清洗转换、数据存储、数据处理等环节组成,分析完最好能够马上推到应用端。下面我们我们探索一下各种数据分析架构的优点和缺点。

单体数据库架构

clipboard.png

介绍

单位数据库架构是指只有一个数据服务器,事务数据和分析数据都在上面,成本低、维护轻、减少运维工作。

优点

数据真实性100%,分析的数据和数据源100%吻合,不考虑数据之间不一致性

不需要额外维护

数据分析的成本低廉

适用于小数据业务场景

缺点

随着业务越来越复杂,数据的增加可 读性、可维护性和可扩展性得不到保证

随着用户访问量增加和数据分析访问,都会影响业务系统。

随着系统代码量的剧增,测试、联调、都有可能影响现有的业务系统,难度成指数级增长

技术选型单一。

无法与其它系统的数据集成,也无法轻易对外开放分析数据。

主备数据库架构

clipboard.png

介绍

主备数据库架构是指只有两个数据服务器以上,两个数据库之间一主一备,两个数据库近实时同步,主的负责写数据,备的负责读数据。

优点

负载均衡减轻压力,主数据库用来作事务处理,备机除了提供分析业务功能也提供给人查询。

充分利用资源

数据分析的成本低廉

缺点

数据开放能力弱,不适合集成其它数据源的数据。

意外性故障,主机备机数据不一致性。

备机较大的数据写入会影响备机的吞吐性能。

如果数据大,单机计算能力可能要耗费长时间才能出结果。

适用于小数据业务场景。

分布式数据库架构

clipboard.png

介绍

分布式数据库架构是一个集群,通过把分析数据传输到集群,通过把集群的计算能力对数据分析,例如产品Greeplum。

优点

数据计算能力强。

通过数据导入或者ETL可以轻松集成 其它数据源。

支持线性水平扩展硬件资源。

适用于大数据业务场景。

缺点

分布式复杂,需要聘请专业工程师

商业版的东西投入价格实在昂贵。

ETL占大量的数据传输时间。

商业技术昂贵,技术社区的帮助有限

大数据处理架构

clipboard.png

介绍

大数据处理架构,经典产品即hadoop,通过提供特殊的文件系统HDFS和分布式处理能力,带来数据处理分析的新思路。后来,陆续出现了多种数据处理引擎,例如Impala、Spark、Flink等等。

优点

数据计算能力强。

可以轻松集成相关的数据源。

支持线性水平扩展存储能力和计算能力。

技术社区活跃成熟。

适用于大数据业务场景。

免费、开源

缺点

分布式复杂,维护和操作都需要聘请专业工程师

ETL占大量的数据传输时间。

更大的数据,需要专业的ETL工程师。

在BI和数据管理角度来看,hadoop是一个重量级的解决方案。

lambda处理架构

clipboard.png

介绍

lambda是Lambda 架构由Storm的作者Nathan Marz提出,其设计目的在于提供一个能满足大数据系统关键特性的架构,包括高容错、低延迟、可扩展等。其整合离线计算与实时计算,融合不可变性、读写分离和复杂性隔离等原则,可集成Hadoop, Kafka, Spark,Storm等各类大数据组件。

简言之Lambda架构融合hadoop多种技术组件的优点可以开发高性能的数据仓库系统、企业级数据中台、低延迟的实时数据分析平台等。

优点

支持批处理,支持数据量大,可以适应数据量爆炸的业务场景。

支持流式数据摄入和实时数据分析。

查询灵活且响应速度快

缺点

需要维护两套系统,一套跑在批处理,一套跑在实时计算

两套系统并行,同一个数据可能会被两套系统都处理过,导致执行结果不一样。

kappa处理架构

clipboard.png

介绍

Kappa 架构是由 LinkedIn 的前首席工程师杰伊·克雷普斯(Jay Kreps)提出的一种架构思想。目标是改进 Lambda 架构中速度层的系统性能,使得它也可以处理好数据的完整性和准确性问题。通过改进 Lambda 架构中的速度层,使它既能够进行实时数据处理,同时也有能力在业务逻辑更新的情况下重新处理以前处理过的历史数据。

Kappa和Lambda 都是在大数据处理架构基础衍生出来框架架构,广泛应用于建设各种分析就有和,包括数据中台、数字化转型应用、企业大屏、高性能数据服务平台、实时知识库共享平台、生产制造数据展示平台等等。

优点

支持流式数据摄入和实时数据分析。

查询灵活且响应速度快

相对LAMBDA,减省有数据执行结果错误的可能性

缺点

上游分布式队列需要维护大量的数据

两套系统并行,同一个数据可能会被两套系统都处理过,导致执行结果不一样。

数据虚拟化处理架构

clipboard.png

介绍

数据虚拟化是指隐藏底层数据源(关系型数据库、NOSQL、NEWSQL、数据仓库)等技术访问细节,将数据源的抽象和聚合要求将物理资源抽象出来,对外为用户提供一个统一的数据接口。

我们可以将数据虚拟化理解拥有强大实力的二手房子代理商,通过它我们可以买卖碧桂园、恒大、万科的房子,由头到尾我们不需要与地产商打交道,只需要与代理商打交道,遇到麻烦的事,也是代理商和地产商互动。

优点

ETL依赖程度度低,无需全量复制,硬件成本低

对源系统无影响或影响较小,可实现亚秒级的查询响应

缺点

查询的执行过程中会对数据源系统有侵入,需要和源系统改动联动,并且响应的延迟高,无法对查询响应的延迟承诺

需要额外的存储成本和维护成本


「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

文章被以下合辑收录

评论