大数据常见应用场景及架构改进
大数据常见应用场景及架构改进
- 大数据典型的离线处理场景
- 1.大数据数据仓库及它的架构改进
- 2.海量数据规模下的搜索与检索
- 3.新兴的图计算领域
- 4.海量数据挖掘潜在价值
- 大数据实时处理场景
大数据典型的离线处理场景
1.大数据数据仓库及它的架构改进
对于离线场景,最典型的就是数据仓库。它和传统的数仓不太一样。因为传统数仓它只能解决中小规模的数据存储与分析问题。大数据这一块要能承接海量的数据。
我们来看一下它们的基本架构。首先对于传统数仓的数据分析,业务数据产生之后会存在单机数据库里面。比如说mysql、oracle、DB2等等。ETL任务会定期把它们集中抽取到数据仓库中,进行一个汇总和管理。
数仓比较早的时候它是单节点的,单节点怎么能够存储较多的数据呢?大家可能都听过大型机这个概念,配置非常豪华的服务器,它的容量包括性能是足够ok的。
如果说单节点存不下,会使用mpp数据库架构,它是多节点架构。可以容纳中等规模的数据集。
但是它的节点数是存在上限的,不管是单节点还是mpp,它最大的问题在于扩展性能上限,导致数据容量是有上限的。
数据存到数仓里,基于数仓的数据在做一些分析时候,需要编写应用代码。代码在运行的时候,需要从数据仓库中进行数据的一个查询。将查询出来的数据做一个抽取,把数据抽取到计算程序所在的节点后再进行运算。运算得到结果最后做一个输出。
中间这个过程,因为要在网络上进行数据抽取,所以数据量一旦达到比较大的规模。比如说这个数据有100tb,对于网络的影响就比较高。而且它的抽取效率也是很慢的。当然中小规模数据集是没有问题的。
所以传统数据分析一旦数据量达到某一个规模之后,它分析起来其实性能就比较差了,会比较吃力一些。
对于大数据分析这一块,它是怎么去解决这个问题的?
首先数据源这里就比较丰富,体现了大数据场景的多样性。它有非结构化、半结构化、结构化数据。
这些数据抽取过来,在进行存储的时候就是以完全分布式的方式进行存储。大数据的架构基本都是天然分布式的,这样的话它的扩展性能是非常好的。
现在我们有5台节点进行存储,如果容量达到了上限,我们可以新增一些节点,这样它的容量就会线性增加。
那如果我们单个文件比较大,比如说我们有一个文件,有1tb大小。这样的一个大文件在存的时候,大数据这里使用了分而治之的一个思想。它把大的文件拆分成非常多的小块,每一个数据块是128M。拆成这些小块以后,再均匀的打散到各个服务器节点中进行存储。
这样的话即使你这个文件再大,我都能够保存起来。这样的话就解决了数据存储这一块的问题。
接下来在计算的时候,因为单个文件就1tb,数据量比较大。那如果把这个数据经过网络进行移动,在进行分析运算的时候,性能会比较差。
这个时候我们换一种思路,去解决这个问题。怎么解决?
你数据移动开销比较高,那你数据就不要动。数据不要动,我的计算任务分发到数据节点进行一个运算。
计算任务它本身就是一个代码程序,它分发到各个节点效率或者速度是比较快的。计算任务在数据节点
直接进行运算,这样的话每个节点得到的结果一定是部分结果。为什么?
因为数据打散到各个节点,每个节点存储的是部分数据,部分数据计算的结果肯定是部分结果。部分结果得到以后,我们只需要再新增一个阶段,把这个部分结果汇总成最终结果再做一个输出就ok。
那部分结果的汇总,大家可想而知,它的开销或者代价一定是比较低的。
所以这是大数据的第二个思想,叫移动计算而非移动数据。这样的话它就解决了我们海量数据,在计算这一块的一个性能瓶颈。
但是这种架构,它对于这种中小规模的数据,其实是不太友好的。如果你这个数据1G它先要拆分,拆分后需要发送到各个节点存储,并且要存储多个副本保证容错。并且在计算的时候,计算任务要分发到这个节点再运算,运算完以后要汇总最终结果,最后再进行输出。整个调度流程就比较长。
而1G的文件放在传统数据处理架构里面,它就可以直接完成计算,效率还高得多。
所以大数据要发挥它的实力,一定是数据规模达到一定量级以后,当它的调度时间要远远小于它的计算时间。这个时候大数据的力量、威力或者价值,才可以发挥出来。这一点大家要留意。
2.海量数据规模下的搜索与检索
除了数仓之外,离线场景还有做搜索与检索。这也是一个常见的场景。
搜索与检索的话,其实就是把数据先存起来,然后对这个数据做一些检索。检索的话一般来说做模糊匹配、正则匹配或者语义匹配,服务端能够很快给我返回结果。
大数据这一块搜索检索,它首先在存储上,数据已经达到了海量规模。再一个在做计算的时候,在海量数据规模下要求在非常短的时间里,要给到反馈结果。
查询的时候,要进行语义、模糊、正则匹配,或者是多功能的一些复杂匹配,大数据这一块的压力是更重的。所以要求它的性能是更高的。
比如,公安场景,将多维度的人口信息储存起来,需要调用的时候,能够快速匹配并返回结果。以便辅助案件的侦破与办理。
3.新兴的图计算领域
对于图计算,它主要是展现数据之间的关系。比方说它可以展现公司之间的关系情况,在图中我们可以看到,a公司与b公司、c公司之间是没有联系的,而b公司和c公司之间是有一些联系的。
在金融领域,图计算可以挖掘一些比如担保链的异常,比如a公司给b公司担保,b公司给c公司担保,c公司又给a公司担保,形成这样的一个链条肯定是非常有风险的。
包括反洗钱,它也是洗完以后又洗回来了。包括企业之间互相投资,a投资b,b投资c,c再投资a,形成这样的一个链条。
这种情况在金融中,如果使用关系型数据库,它是很难发现的。及时能够实现,运算量也非常庞大。
但是用图计算的话,可以很直观的直接做一个展现,避免了这些风险。
4.海量数据挖掘潜在价值
当然基于数据,我们也可以做数据挖掘。海量的数据它里面潜在的价值是非常高的。比如说我们基于上海市的街头监控数据,进行数据挖掘分析,最后做一个图展现。
这个图展现出来的,就是目前上海市当前这个时间,各个地点的人流密集情况。目前看到7这个地方人流是最密集的,是人民广场,10和6这两个紧随其后。
通过分析展现以后,可以辅助我们的治安工作的展开。比如说我们提前去派人力,去做人流的疏导。
当然如果它配上人工智能更是如虎添翼,人工智能厉害的是它可以做预测,它提前预测到某个地方,比如说10这个地方。也就是陆家嘴,在一个小时之后即将出现人流高峰。我们提前派警力,这样的话就可以杜绝一些风险的发生。
大数据实时处理场景
前面讲的都是我们的离线场景,对于实时场景的话,其实准确来说要实时处理数据,并产生结果。它有一个通用的架构与模式。
数据从数据源产生,数据源可以是ATM机的、POS机的、智能风机的,或者一些传感器。它们会实时产生数据,这些数据要先进入到一个分布式的消息队列里面做缓冲,而不是直接扔到大数据的分布式流处理集群里面进行运算。
为什么要先进入到分布式消息队列里面?它的目的主要是为了抗压,因为前面这些数据源,它在实时的产生数据。
那就有可能存在没办法预测的并发峰值,很典型的可以预测的峰值比如说618购物节、双11购物节、12306逢年过节抢票的时候。
这个时间的并发我们可以预测的,基本就是那个时间。
但是你比如说某个明星闹个绯闻,突然大量的流量涌上微博,这个是没办法预测的。
保不准哪个点流量涌上来以后,服务器直接就down掉了。这种没办法预测的峰值,如果直接扔到大数据平台,对大数据平台是会产生足够大的冲击的。大数据平台挂掉以后,大数据平台上面所有的业务都挂了,这个是风险很高的。
对于企业来说,一定要有抗压的这样的一个消息队列,这个消息队列它的抗压性能非常好,能够撑住足够的压力。如果说压力过大,我们可以通过扩展与新增节点来增加它的抗压性。
它扛住压力以后,分布式的大数据流处理集群,再从我们的分布式队列里面去取数据,取到数据后进行正常的处理,最后把结果做一个输出。
有这样的架构以后,大量消息涌上来以后,无非是在分布式消息队列里面多积压一会儿。但是只要是大数据的流处理集群没有挂,在规定时间里都是可以处理完的,而且避免了一个风险。
这是大数据常见的应用场景,这一节就和大家聊到这里,我们下期再会!视频内容可以在B站进行观看,传送门:数舟
相关文章:

大数据常见应用场景及架构改进
大数据常见应用场景及架构改进大数据典型的离线处理场景1.大数据数据仓库及它的架构改进2.海量数据规模下的搜索与检索3.新兴的图计算领域4.海量数据挖掘潜在价值大数据实时处理场景大数据典型的离线处理场景 1.大数据数据仓库及它的架构改进 对于离线场景,最典型…...

【华为OD机试模拟题】用 C++ 实现 - 挑选字符串(2023.Q1)
最近更新的博客 【华为OD机试模拟题】用 C++ 实现 - 货币单位换算(2023.Q1) 【华为OD机试模拟题】用 C++ 实现 - 选座位(2023.Q1) 【华为OD机试模拟题】用 C++ 实现 - 停车场最大距离(2023.Q1) 【华为OD机试模拟题】用 C++ 实现 - 重组字符串(2023.Q1) 【华为OD机试模…...

程序员是世界上最理性、最睿智的群体,耶稣也反驳不了我,我说的!
有人说,程序员是吃青春饭的,35 岁就提前退休了。 猛一看,这句话是对的;仔细一看,这句话是不对的。 说它对,是因为现实中确实有很多程序员 35 岁就被毕业了;说它不对,是因为 35 岁以…...

人工智能到底是什么?
人工智能(Artificial Intelligence,AI)是一种利用计算机科学和统计学理论和技术来实现人类智能的一门交叉学科,旨在使计算机系统能够模拟、扩展和增强人类的智能能力,使计算机能够像人类一样思考、学习、决策和执行任务…...

在动态规划的海洋中遨游(三)
前言:\textcolor{Green}{前言:}前言: 💞 好久没写题,有点生疏了。这也是给大家提一个醒,一定要一直坚持下去,哪怕每天只做一点点。💞 算法类别一、算法介绍原理适用的情况做题步骤二…...

enable_if模板编程实现字节序转换模板
enable_if和SFINAESFINAE是模板的一个特性,也就是替换失败不报错。正常来说,函数匹配的时候按照优先级依次匹配定义的重载函数,最终选择最佳匹配的函数运行。模板也是一样的,但是在替换模板时,即使出现异常错误也不认为…...

【人工智能与深度学习】基于能量的模型
【人工智能与深度学习】基于能量的模型 概述能量基础模型(EBM)方法定义解决方案:基于梯度的推理有潜在变量的能量基础模型推理例子能量基础模型和机率模型的对比自由能(Free Energy)概述 我们现在介绍一个新框架来定义模型。它提供了一个统一和系列性的方式来定义「监督模型」…...

功能测试三年,是应该改变了
前言 测试行业3年多经验,学历大专自考本科,主要测试方向web,PC端,wap站,小程序公众号都测试过,app也测过一些,C端B端都有,除功能外,接口性能也有涉猎,但是不…...

基于STM32的ubuntu交叉编译环境的搭建(arm-gcc 8.2)
常用的STM32的软件开发方法都是基于MDK keil或IAR集成开发环境,但以上两个集成开发环境软件都是需要收费的,且价格较为昂贵。本节介绍一种在ubuntu上安装arm gcc(arm-eabi)的方式,用于编译STM32的程序。 1.在arm官网下…...

数据结构:二叉树概念篇(算法基础)
目录 一.有向树的图论基础 1.有向树的相关基本概念 有向树的基本定义: 有向树的结点的度: 有向树的度: 有向树的根结点,分枝结点,叶结点: 树的子树: 树结点的层次: 树的高度: 2.一个基本的数学结论 3.有序有向树 二.数据结构中树的顺序存储结构与链式存…...

华为OD机试真题Java实现【字符串变换最小字符串】真题+解题思路+代码(20222
字符串变换最小字符串 给定一个字符串s,最多只能进行一次变换,返回变换后能得到的最小字符串(按照字典序进行比较)。 变换规则:交换字符串中任意两个不同位置的字符。 🔥🔥🔥🔥🔥👉👉👉👉👉👉 华为OD机试(Java)真题目录汇总 ## 输入输出描述: …...

数字化转型的企业会用低代码平台深化重塑什么形态
随着数字化转型的浪潮不断推进,越来越多的企业开始关注如何更好地利用数字技术提高业务效率和创新能力。而低代码平台作为一种能够快速构建和部署应用程序的新型工具,正越来越受到企业的青睐。那么,数字化转型的企业会用低代码平台深化重塑什…...

【华为OD机试模拟题】用 C++ 实现 - 拼接 URL(2023.Q1)
最近更新的博客 华为OD机试 - 入栈出栈(C++) | 附带编码思路 【2023】 华为OD机试 - 箱子之形摆放(C++) | 附带编码思路 【2023】 华为OD机试 - 简易内存池 2(C++) | 附带编码思路 【2023】 华为OD机试 - 第 N 个排列(C++) | 附带编码思路 【2023】 华为OD机试 - 考古…...

六千字让你明白什么是数字孪生?
文章目录1. 背景2. 数字孪生基础2.1 概念2.2 价值3. 技术生态3.1 技术体系3.2 核心技术3.2.1 多领域、多尺度融合建模3.2.2 数据驱动与物理模型融合的状态评估3.2.3 数据采集和传输3.2.4 全生命周期数据管理3.2.5 虚拟现实呈现3.2.6 高性能计算3.3 建设3.3.1 重点3.3.1.1 数字孪…...

判断字符串是否是纯数字不包括符号(含符号显示False)isnumeric()和isdigit()
【小白从小学Python、C、Java】 【计算机等级考试500强双证书】 【Python-数据分析】 判断字符串是否是纯数字 不包括符号(含符号显示False) isnumeric()和isdigit() [太阳]选择题 对于代码中当s为‘二十六’时isdigit()和isnumeric()输出的结果是? s …...

计算机408考研先导课---C语言难点2
目录 一、字符型数据与字符串型数据的比较 1、字符型数据特点 2、字符串型数据特点 二、字符数组 1、定义 2、输入输出 ①输入 ②输出 3、字符处理函数 ①put函数 ②gets函数 ③strcat函数 ④strcpy函数 ⑤strcmp函数 ⑥strlen函数 ⑦strlwr函数 ⑧strup…...

682. 棒球比赛
题目:你现在是一场采用特殊赛制棒球比赛的记录员。这场比赛由若干回合组成,过去几回合的得分可能会影响以后几回合的得分。 比赛开始时,记录是空白的。你会得到一个记录操作的字符串列表 ops,其中 ops[i] 是你需要记录的第 i 项操…...

【《C Primer Plus》读书笔记】第13章:文件输入/输出
【《C Primer Plus》读书笔记】第13章:文件输入/输出13.1 与文件进行通信13.1.1 文件是什么13.1.2 文本模式和二进制模式13.1.3 I/O的级别13.1.4 标准文件13.2 标准I/O13.3 一个简单的文件压缩程序13.4 文件I/O:fprintf()、fscanf()、fgets()和fputs()13…...

Datacom-HCIE考试经验分享
我是誉天Datacom秦同学。作为誉天众多通过Datacom-HCIE考试的学员之一,我感到很荣幸。 首先说说自学的感受吧: 我是从2020年开始接触网络行业的,听单位的前辈说华为的HCIE认证是行业含金量最高的证书,从那时起心里就种下了一个“I…...

第十二章 系统错误消息 - 一般系统错误消息 P - S
文章目录第十二章 系统错误消息 - 一般系统错误消息 P - S第十二章 系统错误消息 - 一般系统错误消息 P - S 错误代码描述<PARAMETER>由用户编写的函数引用或 Do 命令传递给标记行的参数数量超过了为标记行声明的形式参数的数量。<PRIVATE METHOD>已尝试调用一个私…...

【git】Idea中git的使用
配置git 创建git仓库 不同颜色代表的含义 红色——未加入版本控制;绿色——已经加入控制暂未提交;蓝色——加入,已提交,有改动;白色——加入,已提交,无改动;灰色——版本控制已忽略文…...

Centos安装Python、PyCharm
安装Python 1、打开终端(Terminal) 2、输入以下命令更新系统: sudo yum update 3、安装Python: sudo yum install python3 4、安装完成后,可以使用以下命令检查Python版本: python3 --version 安装PyCharm 1、下载PyCharm的安…...

搞百亿补贴,京东不能只“砸钱”
出品 | 何玺 排版 | 叶媛 京东“百亿补贴”真的要来了。 据多家媒体报道,京东“百亿补贴”已于2月23日启动内测。根据此前消息,京东“百亿补贴”频道将于3日晚8点正式上线。 在京东“百亿补贴”频道正式上线之前,我们来聊一聊“刘强东为什…...

automl介绍以及代码实例
使用AutoML来自动构建机器学习模型,可以使用多种不同的Python包,包括AutoGluon、TPOT、Auto-Keras等。AutoGluon可以自动搜索最佳模型,以便满足开发人员的需求;TPOT可以自动调整模型的参数,以获得更好的性能࿱…...

kill 与killall
【查询命令所属软件包】 rpm -qf /usr/bin/killall psmisc-22.20-15.el7.x86_64 rpm -qf /usr/bin/kill util-linux-2.23.2-65.el7_9.1.x86_64 【命令参数】 killallkill -e,--exact require exact match for very long names -I,--ignore-case case insensi…...

【加密】开发常见加密类型
相关加密方法具体使用,查阅工具官方; 对称加密(单密钥加密):常用于传输数据加密 信息的加密和解密使用相同密钥; 常见对称算法: DES(Data Encryption Standard)&#x…...

数据结构之基:从根儿上了解数据结构的特性
学好数据结构,就等于成功了一半。 程序是对现实的模拟,现实是由时间和空间组成的,高效的人都是用最少的时间、最少的空间来做最伟大的事,程序亦是如此。我们要选择最合理的算法和最合理的数据结构,来写最好的代码&…...

C++ 枚举详解
C 枚举详解 C 枚举类型详解 枚举类型的定义格式为: enum <类型名> {<枚举常量表>};关键字enum——指明其后的标识符是一个枚举类型的名字枚举常量表——由枚举常量构成。“枚举常量"或称"枚举成员”,是以标识符形式表示的整型量&…...

【vue3】ref , reactive ,toRef ,toRefs 使用和理解
这篇文章是基于理解写的,仅助于理解,如有任何错误之处,感谢指正! 文章目录一.ref的使用1. ref的功能主要有两个:2.使用ref注意事项二.reactive的使用三.使用ref 和 reactive 实现双向数据绑定四.toRef 和 toRefs 的使用…...

fastadmin:如何点击按钮弹出存在的指定页面的弹窗
样式:方法一:直接使用超链接进行操作{:url(popup/purchase/itemno)}:表示地址信息btn-dialog:表示弹窗<a href"{:url(popup/purchase/itemno)}" title"跳转第三方" class"btn btn-success btn-dialog…...