[发明专利]数据处理方法及装置有效
申请号: | 201310751401.6 | 申请日: | 2013-12-31 |
公开(公告)号: | CN104750749B | 公开(公告)日: | 2018-04-03 |
发明(设计)人: | 刘健男 | 申请(专利权)人: | 阿里巴巴集团控股有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京国昊天诚知识产权代理有限公司11315 | 代理人: | 许志勇 |
地址: | 英属开曼群岛大开*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 数据处理 方法 装置 | ||
技术领域
本申请涉及数据处理领域,尤其涉及一种分布式流计算系统中的数据处理方法及装置。
背景技术
分布式流计算设备在运行过程中,通常内存中要保存大量的中间过程计算数据,这部分数据对于计算最终结果数据是必不可少的,因此,一般会在运行期间将中间过程计算数据持久化到磁盘中,以备由各种原因导致设备中断之后重新启动。对于分布式流计算的中间过程计算数据的存储,传统关系型数据库是一种选择,但是,传统关系型数据库并不适合存储海量数据,当存储的数据量达到一亿条以上之后,大部分传统关系型数据库的查询性能都会明显变差,无法满足应用的要求。近几年大数据技术领域新兴起了NoSQL(非关系型数据库)技术,其最重要的一个特点就是能够实现海量数据的快速查询,因此,当数据量非常庞大时,使用NoSQL数据库存储分布式流计算产品的计算结果是非常合适的选择,目前主流的NoSQL数据库有HBase、Cassandra等。
通过NoSQL数据库查询数据通常有三种方式:(1)Key-Value的方式,即通过一个全局唯一的key查询到一条记录。这种查询方式的效率是最高的,约几十毫秒。(2)范围扫描,即通过key索引,指定一个开始位置和一个结束位置,查询多条记录。这种查询方式效率同样很高,在毫秒级。(3)全表扫描,必须通过扫描表的所有记录才能得到想要的记录。这种查询方式效率较低,对于过亿的数据量效率在小时级。
目前,一般将分布式流计算设备与NoSQL数据库相结合组成用于实时计算的系统,当该系统在运行过程中由于某种原因需要停止并重新启动时,分布式流计算设备有时需要从NoSQL数据库中加载大量的中间过程计算数据。
图1为现有的分布式流计算系统的结构图,如图1所示,分布式流计算系统是由分布在网络中的N个计算节点110-1、…、110-i、…、110-N,以及NoSQL数据库120组成的,每一个计算节点110的中间过程计算数据都是相互独立的,各节点之间数据没有交集。当该系统重新启动时,每一个计算节点110只需要加载与自己相关的那部分中间过程计算数据。
然而,实时数据使用者主要通过Key-Value的方式访问NoSQL数据库120中存储的数据,因此,数据库120中的数据一般是以实时数据使用者能够识别的并且与业务数据相关的数据作为键(key)保存的,而计算节点110无法识别与业务数据相关的键,因此,也就无法通过Key-Value的方式或范围扫描的方式加载与自己相关的中间过程计算数据,只能通过全表扫描的方式,也就是说,每个计算节点110都要扫描一遍所有数据才能判断哪些数据是属于自己的并加载,当表的数据量过亿后,全表扫描将变得非常缓慢,影响实时计算系统的启动速度,严重时可能导致系统无法启动。
对此,现有的一种解决方案是采用延迟加载中间过程计算数据的方案,即,当一条消息流进入分布式流计算系统后,判断在内存中是否能找到该消息流对应的中间过程计算数据,如果能找到,则利用中间过程计算数据进行后续计算。如果找不到,则判断在NoSQL数据库中是否能找到该消息流对应的中间过程计算数据,如果能找到,则将该查找到的中间过程计算数据加载到内存中,并利用该中间过程计算数据进行后续计算。如果找不到,则确定该消息流在业务上是一条新流,在内存中添加该消息流对应的中间过程计算数据,并利用该中间过程计算数据进行后续计算。
采用上述的延迟加载的方式,启动时不需要立即从NoSQL数据库中加载中间过程计算数据,而是可以立即进行实时计算工作。然而,这种方式对于某些应用场景很难适用,例如,在大部分数据流在业务上属于新流的情况下,当一条消息流在内存中找不到对应的中间过程计算数据时,必须再到NoSQL数据库中查找一次才能确定该消息流是不是新流,当某个消息源的消息流大部分为新流时,流计算程序将频繁地访问NoSQL数据库进行数据查询,产生大量的磁盘I/O,导致性能严重下降。
综上所述,需要提出一种适用性更广且能够提高分布式流计算系统启动时数据加载速度的方案。
发明内容
本申请的主要目的在于提供一种数据处理方法及装置,以解决现有技术存在的分布式流计算系统由于启动时数据加载慢导致的启动缓慢的问题,其中:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴集团控股有限公司,未经阿里巴巴集团控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310751401.6/2.html,转载请声明来源钻瓜专利网。