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

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

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.4大数据分析算法,精准数据挖掘,解决你99%的运营需求智能营销计划,目标,预算等 界定客户全生命周期旅程营销活动效果评估网站分析优化 近年来,大数据已成为科技界和企业界关注的热点,越来越多的企业和研究者正在关注大数据的应用。大数据的分析与挖掘技术在科学界正在如火如荼地展开,各种大数据的新算法被开发研究出来。下期我们将详细为您讲述大数据的算法模型有哪些。赛诺http://baijiahao.baidu.com/s?id=1676155021590524010&wfr=spider&for=pc
2.常见的大数据分析算法有哪些帆软数字化转型知识库常见的大数据分析算法有哪些 常见的大数据分析算法包括:线性回归、逻辑回归、决策树、随机森林、支持向量机(SVM)、K均值聚类、主成分分析(PCA)、Apriori算法、朴素贝叶斯、神经网络。其中,线性回归是一种最基本且常用的算法,用于预测因变量与一个或多个自变量之间的关系。通过拟合一条直线来最小化数据点和回归线之间https://www.fanruan.com/blog/article/81753/
3.大数据分析中常用的算法有哪些?大数据分析中常用的算法有哪些? 收藏 大数据分析是指通过处理和分析大规模数据集来提取有价值的信息和洞察力,以支持决策和解决问题。在大数据分析中,有许多常用的算法被广泛应用。以下是一些常见的大数据分析算法: 线性回归:线性回归是一种基本的统计分析方法,用于建立一个线性模型来描述变量之间的关系。在大数据分析中https://www.cda.cn/view/203010.html
4.极光大数据有哪些主要的数据分析技术和算法数据格式和结构的转换:极光大数据具备强大的数据转换和格式化功能。在将不同类型和结构的数据整合到一起时,开发者可以利用极光大数据提供的工具和算法,对数据进行标准化、格式化和结构化的处理。这样可以使得不同源头的数据具有一致的格式和结构,方便后续的数据分析和挖掘。 https://www.jiguang.cn/tips/796
5.大数据分析各种算法大数据分析常用算法大数据分析各种算法 大数据分析常用算法 相对于复杂度分析,还有一个对立的分析方法,叫做事后统计法,但它有两个缺点: 测试结果非常依赖测试环境 测试结果受数据规模的影响很大 我们需要一个不用具体的测试数据来测试,就可以粗略地估计算法的执行效率的方法。这就是我们今天要讲的时间、空间复杂度分析方法。https://blog.51cto.com/u_13633/9262829
6.大数据最常用的算法,主要有哪些?大数据等最核心的关键技术:32个算法 1、A* 搜索算法——图形搜索算法,从给定起点到给定终点计算出路径。其中使用了一种启发式的估算,为每个节点估算通过该节点的最佳路径,并以之为各个地点排定次序。算法以得到的次序访问这些节点。因此,A*搜索算法是最佳优先搜索的范例。 https://zhuanlan.zhihu.com/p/576564679
7.Hadoop(HDFS+MapReduce+Hive+数仓基础概念)学习笔记(自用)5、 海量数据的数据挖掘大数据从事的岗位 1、ETL工程师 2、数据仓库工程师 3、大数据开发工程师 4、Hadoop工程师 5、Spark/Flink工程师 6、大数据分析师 7、大数据算法工程师 8、大数据运维工程师 9、大数据解决方案 学习的技术 大数据项目流程 1、 数据生产 https://developer.aliyun.com/article/1403772
8.大数据分析是什么通过大数据分析算法,应该对于数据进行一定的推断,这样的数据才更有指导性。 在大数据时代,大数据分析价值不可估量。在防伪行业中,大数据分析可为企业实现更优质的服务;在企业中,大数据分析为企业决策者以及监管部门提供决策参考,也可帮助企业更准确找到自身定位和发展方向。https://www.linkflowtech.com/news/2090
9.大数据:分类算法深度解析大数据分类算法深度解析 在大数据时代,处理海量数据并从中提取有用信息变得至关重要。分类算法是机器学习领域的核心,它们在大数据分析、模式识别和决策支持等方面发挥着关键作用。本文将深度解析大数据分类算法,包括其基本原理、常见算法、应用场景以及未来发展方向。 http://www.360doc.com/content/24/0112/20/78411425_1110858832.shtml
10.智能运维大数据的终极宝典(附图表解析)机器之心经典的大数据并行化系统(Map-reduce)要求重新编写分析程序,但通用平台算法库(如MLib/Mahout)对工业分析的分析函数(比如,信号处理、系统辨识)支持有限。而在很多工业分析场景中,记录间存在着时序关系,并行化分组通常是有明确业务语义的字段(比如,风功率曲线计算是按照风机、月份进行并行化),而不是记录条数。因此,工业https://www.jiqizhixin.com/articles/2019-04-12-3
11.当人工智能遇上生命科学,听张勇聊聊大数据时代的创新对于未来,您有哪些期待? 张勇:我认为BIT领域的发展空间非常广阔,有很多机会做出产业或科学上的贡献。 因此,我希望继续在BIT方向上努力,进一步解决生物大数据相关的问题,创造更多更好的算法、工具和系统,实现更高的价值。https://www.genomics.cn/news/info.aspx?itemid=6949
12.不懂这25个名词,好意思说你懂大数据?01 算法(Algorithm) 算法可以理解成一种数学公式或用于进行数据分析的统计学过程。那么,「算法」又是何以与大数据扯上关系的呢?要知道,尽管算法这个词是一个统称,但是在这个流行大数据分析的时代,算法也经常被提及且变得越发流行。 02 分析(Analyticsanalyze) https://gxq.guiyang.gov.cn/zjgxq/zjgxqxyzs/zjgxqxyzsdsjqy/201710/t20171013_17120534.html
13.大数据最常用的算法有哪些奥地利符号计算研究所(Research Institute for Symbolic Computation,简称RISC)的Christoph Koutschan博士在自己的页面上发布了一篇文章,提到他做了一个调查,参与者大多数是计算机科学家,他请这些科学家投票选出最重要的算法,以下是这次调查的结果,按照英文名称字母顺序排序。 https://www.jianshu.com/p/21e181dc1f0f
14.大数据“杀熟”套路太深!多位法学专家建言破解之道南方plus作为一个普通消费者,可能很多次都遇到过这样的情况,互联网平台利用大数据的算法分析,进行“杀熟”。 10月23日,北京理工大学法学院主办的“第五届全国智能科技法治论坛”举办,南开大学法学院教授许光耀在会上指出,“所谓大数据杀熟是指互联网商家利用大数据技术,通过算法分析处理收集到的用户信息并做出数据画像,对每个用户https://static.nfapp.southcn.com/content/202110/27/c5875937.html
15.大数据系统隐私保护关键技术4)差分隐私算法 差分隐私,英文名为differential privacy,顾名思义,保护的是数据源中一点微小的改动导致的隐私泄露问题。图2为差分隐私处理流程框架。 图2 差分隐私处理框架流程 「3. 面向聚类的隐私保护方案」 1) 面向大数据分析的隐私保护聚类方法 一种面向大数据分析的隐私保护聚类方法,其特征在于,包括以下步骤: https://www.clii.com.cn/lhrh/hyxx/202209/t20220915_3954961.html
16.胡焕庸线存在性的大数据分析——中国人口分布特征的生态学及新摘要: 基于大数据分析思路和数据挖掘工具,在县级尺度上,利用2010年第六次人口普查数据,计算各县的平均人口密度,以及合成海拔(地带性因素)、环境脆弱性、人生气候指数、农业生产潜力、适宜水资源偏离度、交通便捷性、区位指数等,克鲁格曼Krugman所谓的区域地理本性特征,对胡焕庸线的存在的地理基础和生态学基础进行了分析。https://www.ecologica.cn/stxb/ch/html/2019/14/stxb201812212776.htm