数据存储和读取方法、装置及系统制造方法及图纸

技术编号:14563094 阅读:114 留言:0更新日期:2017-02-05 19:56
本发明专利技术公开了一种数据存储和读取方法、装置及系统。该数据读取方法包括:获取数据库中第一级关键词key对应的数据值value,获取第二级key;根据获取的参数N将第二级key分为N份,其中,每份第二级key对应一个计算单元的输入,N大于等于1且小于等于第二级key的个数;通过计算单元并发读取相应的第二级key所对应的value。借助于本发明专利技术的技术方案,扩展了hadoop MR的数据访问范围,将设置为二级模式的数据库也纳入了大数据处理范围中,使得hadoop MR能够直接大批量从数据库读取数据,提升了hadoopMR的运行效率。

【技术实现步骤摘要】

本专利技术涉及数据库
,特别是涉及一种数据存储和读取方法、装置及系统
技术介绍
Hadoop是目前业界使用最多,最成熟的开源大数据存储和计算平台,它包含了很多组件,其中MapReduce(即MR)是hadoop平台上的编程模型。适用于大数据量下的分布式计算。Redis是一种开源的索引/值(key/value)内存数据库,支持多种数据格式的存储。HadoopMR提供了很多数据源的读取实现,如文件,hbase数据库等,但对直接从redis读取大批量数据并没有很好的支持,具体地,HadoopMR是大数据分布式计算的利器,输入一般是hdfs文件。redis是key/value的内存数据库,一般是根据单个key来读取单个value。因此目前缺少直接大批量从redis读取数据到hadoopMR的方式。
技术实现思路
鉴于上述问题,提出了本专利技术以便提供一种克服上述问题或者至少部分地解决上述问题的数据存储和读取方法、装置及系统。本专利技术提供一种数据存储方法,包括:将数据库中的关键词key按照粒度大小分为两级,其中,粒度较大的第一级key对应的数据值value为粒度较小的第二级key;将需要存储的数据作为第二级key的value保存。本专利技术还提供了一种数据读取方法,用于Hadoop编程模型MR从数据库读取数据,包括:获取数据库中第一级关键词key对应的数据值value,获取第二级key;根据获取的参数N将第二级key分为N份,其中,每份第二级key对应一个计算单元的输入,N大于等于1且小于等于第二级key的个数;通过计算单元并发读取相应的第二级key所对应的value。本专利技术还提供了一种数据存储装置,包括:分级模块,用于将数据库中的关键词key按照粒度大小分为两级,其中,粒度较大的第一级key对应的数据值value为粒度较小的第二级key;存储模块,用于将需要存储的数据作为第二级key的value保存。本专利技术还提供了一种数据读取装置,设置于Hadoop编程模型MR,包括:获取模块,用于获取数据库中第一级关键词key对应的数据值value,获取第二级key;切分模块,用于根据获取的参数N将第二级key分为N份,其中,每份第二级key对应一个计算单元的输入,N大于等于1且小于等于第二级key的个数;读取模块,用于通过计算单元并发读取相应的第二级key所对应的value。本专利技术还提供了一种数据存储读取系统,包括上述的数据存储装置、以及上述的数据读取装置。本专利技术有益效果如下:通过将数据库设置为二级模式,扩展了hadoopMR的数据访问范围,将设置为二级模式的数据库也纳入了大数据处理范围中,使得hadoopMR能够直接大批量从数据库读取数据,提升了hadoopMR的运行效率。上述说明仅是本专利技术技术方案的概述,为了能够更清楚了解本专利技术的技术手段,而可依照说明书的内容予以实施,并且为了让本专利技术的上述和其它目的、特征和优点能够更明显易懂,以下特举本专利技术的具体实施方式。附图说明通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本专利技术的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:图1是本专利技术实施例的数据存储方法的流程图;图2是本专利技术实施例的Redis数据库的示意图;图3是本专利技术实施例的数据读取方法的流程图;图4是本专利技术实施例的hadoopMR从redis数据库读取数据的示意图;图5是本专利技术实施例的数据存储装置的结构示意图;图6是本专利技术实施例的数据读取装置的结构示意图;图7是本专利技术实施例的数据存储读取系统的结构示意图。具体实施方式下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。为了解决现有技术中hadoopMR不能够直接大批量从Redis数据库读取数据的问题,本专利技术提供了一种数据存储和读取方法、装置及系统,以下结合附图以及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不限定本专利技术。方法实施例一根据本专利技术的实施例,提供了一种数据存储方法,图1是本专利技术实施例的数据存储方法的流程图,如图1所示,根据本专利技术实施例的数据存储方法包括如下处理:步骤101,将数据库中的关键词key按照粒度大小分为两级,其中,粒度较大的第一级key对应的数据值value为粒度较小的第二级key;优选地,所述粒度大小包括:时间范围的大小。也就是说,第一级存储的key是小时的时间范围,如某个小时的数据,value是第二级存储key的列表;第二级存储的key是分钟的时间范围,如某1分钟内的数据,value是上报数据。步骤102,将需要存储的数据作为第二级key的value保存。优选地,在本专利技术实施例中,所述数据库为Redis数据库。也就是说,本专利技术实施例的技术方案在Redis中采用两级key/value关联的方式来适应批量读取操作。图2是本专利技术实施例的Redis数据库的示意图,如图2所示,第一级存储的key下的value是第二级存储key的列表,如key1,key2,……,keyn。第二级存储的key的value是上报数据,例如,key1的value为数据组dataset1,key2的value为数据组dataset2。本专利技术实施例的技术方案将Redis中的数据分两级存储,使得hadoopMR能够直接批量读取redis中的存储数据,从而对redis中存储数据进行分布式计算。hadoopMR能够直接批量读取redis中的存储数据在方法实施例二中进行详细说明。方法实施例二根据本专利技术的实施例,提供了一种数据读取方法,用于Hadoop编程模型MR从数据库读取数据,图3是本专利技术实施例的数据读取方法的流程图,如图3所示,根据本专利技术实施例的数据读取方法包括如下处理:步骤301,获取数据库中第一级关键词key对应的数据值value,获取第二级key;步骤302,根据获取的参数N将所述第二级key分为N份,其中,每份第二级key对应一个计算单元的输入,所述N大于等于1本文档来自技高网...

【技术保护点】
一种数据存储方法,其特征在于,包括:将数据库中的关键词key按照粒度大小分为两级,其中,粒度较大的第一级key对应的数据值value为粒度较小的第二级key;将需要存储的数据作为第二级key的value保存。

【技术特征摘要】
1.一种数据存储方法,其特征在于,包括:
将数据库中的关键词key按照粒度大小分为两级,其中,粒度较大的第一
级key对应的数据值value为粒度较小的第二级key;
将需要存储的数据作为第二级key的value保存。
2.如权利要求1所述的方法,其特征在于,所述粒度大小包括:时间范
围的大小。
3.如权利要求1所述的方法,其特征在于,所述数据库为Redis数据库。
4.一种数据读取方法,用于Hadoop编程模型MR从数据库读取数据,其
特征在于,包括:
获取数据库中第一级关键词key对应的数据值value,获取第二级key;
根据获取的参数N将所述第二级key分为N份,其中,每份第二级key
对应一个计算单元的输入,所述N大于等于1且小于等于第二级key的个数;
通过计算单元并发读取相应的第二级key所对应的value。
5.如权利要求4所述的方法,其特征在于,所述获取的参数N具体包括:
根据执行并发计算的计算单元的个数,确定参数N。
6.一种数据存储装置,其特征在于,包括:
分级模块,用于将数据库中的关键词key按照粒度大小分为...

【专利技术属性】
技术研发人员:严峰
申请(专利权)人:青岛海尔智能家电科技有限公司
类型:发明
国别省市:山东;37

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1