大数据处理:百分点实时计算架构和算法

大数据处理:百分点实时计算架构和算法

a)实时计算架构

工欲善其事,必先利其器。一个稳定可靠且高效的底层架构是实时计算的必要基础。图1给出了百分点数据大平台的总体框架,如图所示,大数据平台包含数据存储和数据处理两个层次。

数据处理层由四个部分组成。其中Web应用云包含了所有直接面对用户的Web服务,每个Web应用都会产生Web日志以及其他实时数据,这些数据一方面会及时交由实时计算框架进行处理,另一方面也会定期同步至离线计算框架;实时计算框架会处理接收到的实时数据,并将处理结果输出到数据查询框架或者离线计算框架;离线计算框架则定期对数据进行处理,并将处理结果输出至数据查询框架;数据查询框架提供了一系列应用接口供程序调取需要的各项数据,同时提供了一些Web工具帮助业务人员对海量数据进行统计、汇总和分析。

百分点公司的主要服务都是运行在这套架构上的,它拥有良好的稳定性和扩展性,一般来说只需要增加水平扩展结点即可提高数据处理能力,这为百分点业务的稳定发展奠定了技术基础。

b)实时计算算法

c)简单方案

看到这个问题时,大部分读者会很快想到如图3所示的算法方案。图中红色、蓝色和绿色的方块分别表示不同的单品。在这个方案中,我们为每个单品保存一份浏览信息,它包含两个数据结构:

e)累计浏览量(简称累计量),一个整数,代表截止到最后一次访问时的浏览量。

如图所示,假设蓝色单品对应的数据是[(t1,a1),(t2,a2),…,(tn,an)]和A。这表示t1时刻的该单品浏览量是a1,t2时刻是a2,tn是最后一次记录到浏览该单品的时刻,浏览量是an。截止到tn,该单品的总浏览量是A。

当单品浏览源源不断进入到消息队列时,处理进程(或线程)P1,P2…会实时读取到这些信息,并修改对应单品的数据信息。例如,P1读取到t时刻对蓝色单品的浏览记录时,会进行下面的操作:

f)得到当前时刻ct;

g)对数据库中蓝色单品数据加锁,加锁成功后读取出数据,假设历史是[(t1,a1),(t2,a2),…,(tn,an)],累计量是A;

h)累计量递增,即从A修改为A+1

j)将新的历史和累计量输出至数据库,释放锁。

不难验证这个方案是可以正确得出每个单品24小时内的浏览量的,并且只要在资源(计算、存储和网络)充足的情况下,数据库中单品的浏览量是实时更新的。这个方案也是分布式实时计算中最简单最常见的一种模式。

k)避免锁

要想提高实时处理效率,避免锁是非常重要的。一种常见的做法是将并行操作串行化,就像MapReduce中的Reduce阶段一样,将key相同的数据交由同一个reducer处理。基于这个原理,我们可以将方案改造为如图4所示,我们新增一个数据分发处理过程,它的作用是保证同一个单品的所有数据都会发送给同一个处理程序。例如将蓝色单品交由P1处理,红色交由P2处理,绿色交由P3处理。这样P1在处理过程中不需要对数据库加锁,因为不存在资源竞争。这样可以极大的提高计算效率,于是整个计算过程变为:

l)得到当前时刻ct;

m)读取数据库中蓝色单品信息,假设历史是[(t1,a1),(t2,a2),…,(tn,an)],累计量是A;

n)累计递增,即从A修改为A+1

p)将新的历史和累计量输出至数据库。

步骤b)和e)省去了锁操作,整个系统的并发性和吞吐量会得到大大提高。当然,没有免费的午餐,这种方案的缺点在于存在单点隐患,例如一旦P1由于某些原因挂掉了,那么蓝色单品的数据将得不到及时处理,计数结果将无法保证实时。这种计算过程对系统监控和故障转移会有很高的要求。

q)数据分层

方案二已经可以大大提高计算效率,但这还不够,我们可以看到在计算步骤b)和e)中总是要把历史和累计量同时从数据库中读出或写入,实际上这是没有必要的,因为只有累计量才是外部必须使用的数据,而历史只是算法的中间数据。这样,我们可以区别对待历史和累计量,我们将历史和累计量都缓存在计算进程中,定期更新历史至数据库,而累计量则实时更新。新的方案如图5所示,计算过程变为:

r)得到当前时刻ct;

s)如果本地没有蓝色单品的信息,则从数据库中读取蓝色单品信息;否则直接使用本地缓存的信息。假设历史是[(t1,a1),(t2,a2),…,(tn,an)],累计量是A;

t)累计量递增,即从A修改为A+1

这种方案可以大大降低数据库压力、数据IO和序列化反序列化次数,从而提高整个系统的处理效率。数据分层实际上是计算机中一种常用的路数,例如硬件中的高速缓存/内存/磁盘,系统IO中的缓冲区/磁盘文件,数据库的内存索引、系统DNS缓存等等。我们使用的开源搜索引擎Solr就使用了同样的思路达到近实时索引。Solr包含磁盘全量索引和实时增加的内存增量索引,并引入了“soft提交”的方式更新新索引。新数据到达后,Solr会使用“soft”提交的方式更新内存增量索引,在检索的时候通过同时请求全量索引和增量索引并合并的方式获得到最新的数据。之后会在服务器空闲的时候,Solr会把内存增量索引合并到磁盘全量索引中保证数据完整。

w)模糊化

x)得到当前时刻精确到小时的部分ct;

y)如果本地没有蓝色单品的信息,则从数据库中读取蓝色单品信息;否则直接使用本地缓存的信息。假设历史是[(t1,a1),(t2,a2),…,(tn,an)],累计量是A;

z)累计量递增,即从A修改为A+1

aa)如果ct=tn,则更新历史为[(t1,a1),(t2,a2),…,(tn,an+1)],否则更新为[(t1,a1),(t2,a2),…,(tn,an),(ct,1)];最后删除小时数小于ct-24的列表元素,删除的同时从累计量中减去对应时刻的浏览量;

ab)将新的浏览量输出至数据库;如果满足一定的条件,则将历史输出至数据库。

在这种方案下,数据库中存储的并不是过去24小时内的浏览量,而是过去23小时多一点内的。例如在1月2日12:15时数据库中的浏览量实际上是1月1日13:00到1月2日12:15的浏览量!

这种降低数据精度的方法我们可以称之为模糊化,它是用资源换效率的一种方法。在对数据精确性不是特别敏感的领域,这种方法可以大大降低系统资源使用量、提高系统的处理效率。利用模糊化的实时算法快速得到近似结果,而后用离线算法慢慢修正结果的精确度,是百分点在大数据处理中经常使用的招数。

ac)局部精化

这种方案会增加系统的设计和开发难度,而且必须有灵活的配置才能满足多变的业务需求。

[a0+(a1-a0)×(60-15)/60]+a1+…+a24

其中a0代表1月1日12:00到13:00之间的浏览量,依次类推,a24代表1月2日12:00到12:15之间的浏览量。公式中的a0+(a1-a0)×(60-15)/60估计了1月1日12:15-13:00之间的浏览量,这样就得出了从1月1日12:15到1月2日12:15之间24小时内的浏览量。

当然,模型也不是万能的,模型本身的建立和更新也是有代价的,如果建模方法不恰当或者模型更新不及时,很有可能得出的结果会很差。

THE END
1.数据挖掘算法(AnalysisServices–数据挖掘)MicrosoftLearn为特定的业务任务选择最佳算法很有挑战性。您可以使用不同的算法来执行同样的业务任务,每个算法会生成不同的结果,而某些算法还会生成多种类型的结果。例如,您不仅可以将 Microsoft 决策数算法用于预测,而且还可以将它用作一种减少数据集的列数的方法,因为决策树能够识别出不影响最终挖掘模型的列。 https://technet.microsoft.com/zh-cn/library/ms175595(v=sql.100).aspx
2.大数据之数据分类指南拟定实施流程宜结合大数据的生命周期,拟定具体的分类实施流程,包括但不限于明确实施步骤、启动实施工作、开展实施工作、总结实施过程等。4.2 开发工具脚本 开发工具/脚本宜根据实施流程、分类维度和分类方法编写分类算法,遵循软件开发者或者脚本编制的规范开发分类工具/脚本。4.3 记录实施过程 记录实施过程宜记录分类https://baijiahao.baidu.com/s?id=1785591161706545792&wfr=spider&for=pc
3.大数据——十大基本算法介绍大数据算法空间复杂度:是指算法在计算机内执行时所需存储空间的度量,它也是数据规模 n 的函数。 4.算法的选择: 若n较小( 如n≤50), 可采用直接插入或直接选择排序; 若文件初始状态基本有序(指正序),则应选用直接插入、冒泡或随机的快速排序为宜; 若n较大,则应采用时间复杂度为O(n log n) 的排序方法:快速排序、https://blog.csdn.net/dsjia2970727/article/details/107344795
4.经典!10大数据挖掘算法!10大数据挖掘算法! 国际权威的学术组织 the IEEE International Conference on Data Mining (ICDM) 早前评选出了数据挖掘领域的十大经典算法:C4.5, k-Means, SVM, Apriori, EM, PageRank, AdaBoost, kNN, Naive Bayes, and CART。 在此,花哥我深入介绍下这些算法的原理及实践经验,并补充介绍下当下热门的集成https://zhuanlan.zhihu.com/p/688376648
5.大数据中的八大算法详解在大数据行业,懂算法的大数据工程师是非常有核心竞争力的,之前科多大数据的一位培训学员面试之后,回来和我们分享,懂得算法在面试过程中是非常加分的,即便算法的底层逻辑不是很了解,但一定要懂得具体应用,本文详解了数据分析中经典的几大算法,辅助大家更好的学习。 https://www.iyong.com/displaynews.html?id=2927751481869248
6.大数据算法十大经典算法沈强1201大数据算法 十大经典算法 一、C4.5 C4.5,是机器学习算法中的一个分类决策树算法, 它是决策树(决策树也就是做决策的节点间的组织方式像一棵树,其实是一个倒树)核心算法 ID3的改进算法,所以基本上了解了一半决策树构造方法就能构造它。 决策树构造方法其实就是每次选择一个好的特征以及分裂点作为当前节点的分类https://www.cnblogs.com/shen-qiang/p/5773880.html
7.大数据处理中常见的算法有哪些?大数据处理中常见的算法有哪些? 收藏 在大数据处理中,有许多常见的算法被广泛应用。这些算法帮助我们从海量的数据中提取有用信息、进行模式识别和预测分析。以下是一些常见的大数据处理算法: MapReduce:MapReduce 是 Google 提出的一种分布式计算模型,可以并行处理大规模数据集。它将输入数据集分割成多个小块,并在分布式https://www.cda.cn/view/203009.html
8.大数据分析建模有哪些算法帆软数字化转型知识库大数据分析建模有哪些算法 大数据分析建模有多种算法,包括决策树算法、支持向量机(SVM)算法、随机森林算法、K-means聚类算法、线性回归算法、逻辑回归算法、神经网络算法和贝叶斯分类算法。其中,决策树算法是一种使用树状模型对数据进行分类和回归的方法。决策树算法通过递归地将数据集分成更小的子集,同时相应地构建树结构https://www.fanruan.com/blog/article/71906/
9.大数据去重使用的算法有哪些问答大数据去重可以使用以下算法:1. 哈希算法:将数据映射到哈希表中,相同的数据会得到相同的哈希值,通过比较哈希值进行去重。2. 布隆过滤器:布隆过滤器是一种概率型数据结构,可以高效地判断一个元素是否存在https://www.yisu.com/ask/57547373.html
10.极光大数据有哪些主要的数据分析技术和算法数据格式和结构的转换:极光大数据具备强大的数据转换和格式化功能。在将不同类型和结构的数据整合到一起时,开发者可以利用极光大数据提供的工具和算法,对数据进行标准化、格式化和结构化的处理。这样可以使得不同源头的数据具有一致的格式和结构,方便后续的数据分析和挖掘。 https://www.jiguang.cn/tips/796
11.电子商务行业大数据分析采用的算法及模型有哪些?电子商务行业大数据分析采用的算法及模型有哪些? 第一、RFM模型 通过了解在网站有过购买行为的客户,通过分析客户的购买行为来描述客户的价值,就是时间、频率、金额等几个方面继续进行客户区分,通过这个模型进行的数据分析,网站可以区别自己各个级别的会员、铁牌会员、铜牌会员还是金牌会员就是这样区分出来的。同时对于一些https://m.hqqt.com/wenda/16267676914903.html
12.学习笔记DB4:大数据近似算法腾讯云开发者社区缺点:需要针对特定问题设计特定算法 2、什么是大数据近似算法? 大数据近似算法:利用采样(sampling)、略图(sketch)、摘要(summary)等技术,引入可控误差,解决由数据规模扩大带来的时间/空间/通讯量效率问题。 大数据的特点: 大数据通常有冗余,有价值的数据量可能很小 https://cloud.tencent.com/developer/news/325028
13.大数据业务开发翼MapReduce常见问题操作类Kudu支持的压缩算法有哪些? Kudu目前支持的压缩算法有 snappy、lz4和zlib ,默认是 lz4。 如何查看Kudu日志? 1.登录集群的Master节点。 2.执行su - omm命令,切换到omm用户。 3.执行 cd /var/log/Bigdata/kudu/ 命令,进入到“/var/log/Bigdata/kudu/”目录,即可查看Kudu日志信息。 新建集群Kudu服务异常如何处https://www.ctyun.cn/document/10000070/10357870
14.Contents/premium.mdatmaster·Newslab2020/Contents·GitHub如果取消牌照费,有哪些替代方案? 与流媒体的竞争,以及 BBC的未来. 618 伊朗:女青年之死、抗议、断网 2022/9/25 “头巾法”与宗教警察; 第三次切断互联网; 女性革命的到来? 617 《柳叶刀》新冠报告 2022/9/20 委员会的构成与运行; 报告的主要观点; https://github.com/Newslab2020/Contents/blob/master/premium.md
15.大数据工程师岗位职责算法工程师的大数据工程师是做什么的BOSS直聘大数据工程师职位百科,介绍大数据工程师岗位信息:包括岗位职责(大数据工程师是做什么的?)以及不同工作经验大数据工程师的任职要求和岗位工作内容描述,帮您快速定位,并能通过大数据工程师的薪资情况全面认知该岗位!https://www.zhipin.com/baike/b100120/ebc44f3c1f78e00a1XZ_3Nu6E1o~.html
16.大数据基础术语精粹来袭大数据,或称巨量资料,指的是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。 二、大数据的4V: Volume(大量)、Velocity(高速)、Variety(多样)、Value(价值) 三、当前用于分析大数据的工具主要有开源与商用两个生态圈 http://www.mudan.gov.cn/2c908084831c4eb30183205259ac001f/2c908084831c4eb3018320df837d0020/1669185201282129920.html
17.算法工程师软件工程师大数据工程师,傻傻分不清楚有时候算法工程师好像又和大数据工程师是一样的工作? 这到底是怎么回事呢? 大约整理出以下几个疑问: 1、软件工程师、算法工程师、大数据工程师区别 2、一个算法工程师的日常 3、算法工程师有哪些类别、涉及的技术、作用领域 4、算法工程师的段位怎么分 https://maimai.cn/article/detail?fid=845613115&efid=fwunO1cSXu6ZrJpdACNWjA
18.干货一文读懂工业大数据的算法与模型基本知识与应用算法和模型是大数据分析系统中的两个问题,很多时候人们无法将这两个概念准确的区分开来,或者在某些场景下经常把算法和模型当做是同一个概念。实际上,算法和模型是有紧密联系的。 数据分析的算法是一般规则,所采用的方法是具有通用性和一般性的,如果需要用算法来解决实际的问题,达到商业的价值,就需要将算法和实际的应https://www.evget.com/doclib/s/14/10645
19.携程大数据杀熟事件:算法权力下被控制的人新兴的算法权利打破了社会的结构性平衡,携程利用大数据技术杀熟的行为使得人们的权益遭到极大的损害。而一直以来,虽然有很多起因为大数据杀熟而引起的纠纷,但大数据杀熟的事实有一定的认证难度。本案的胜诉也彰显了我们国家对于算法伦理规范的决心,说到底,终究是“人与人之间的博弈”。 http://media-ethic.ccnu.edu.cn/info/1187/2843.htm
20.共达地李苏南:0代码自动化,让AI算法赋能千行百业商业模式鲸解从已有的合作案例来看,共达地将AI的应用效率、规模、边界拓展到了什么程度?有哪些好的案例可以分享? 李苏南:一方面,我们在和大型客户,比如说像平安智慧城市,软通智慧还有千世通这样的公司做城市级或者金融级的AI项目落地。 例如在智慧城市的合作中,涉及几百种算法,按照行业过去的sop和落地的标准可能需要几个月的时间https://www.cls.cn/detail/1154839
21.大数据和算法的区别爱问知识人大数据和算法的区别V*** 回答 好评回答大数据(big data),指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。 引自 大数据 算法(Algorithm)是基于特定的计算模型, 旨在解决某一信息处理问题而https://iask.sina.com.cn/b/newrdlpU4r1UUf.html
22.大数据分析的常用算法大数据处理算法研究与实现.pdf大数据分析的常用算法大数据处理算法研究与 实现 大数据处理算法研究与实现 摘要:在适应了不同的环境的企业的发展的条下,提供有包括 企业或具有确定相对运动的构的组合等在互联网上注册的名称, 是互联网比较重要的部分、成套的设备、系统控制在内的完整的 网络平台服务。构建有自己的电子商务寄放平台,大数据是我国 重要https://m.book118.com/html/2021/0812/8007117002003133.shtm
23.大数据分析各种算法大数据分析常用算法大数据分析各种算法 大数据分析常用算法 相对于复杂度分析,还有一个对立的分析方法,叫做事后统计法,但它有两个缺点: 测试结果非常依赖测试环境 测试结果受数据规模的影响很大 我们需要一个不用具体的测试数据来测试,就可以粗略地估计算法的执行效率的方法。这就是我们今天要讲的时间、空间复杂度分析方法。https://blog.51cto.com/u_13633/9262829
24.大数据分析是什么通过大数据分析算法,应该对于数据进行一定的推断,这样的数据才更有指导性。 在大数据时代,大数据分析价值不可估量。在防伪行业中,大数据分析可为企业实现更优质的服务;在企业中,大数据分析为企业决策者以及监管部门提供决策参考,也可帮助企业更准确找到自身定位和发展方向。https://www.linkflowtech.com/news/2090