CN102663097A - 一种基于Hadoop+Hbase的农业时序数据组织方法 - Google Patents
一种基于Hadoop+Hbase的农业时序数据组织方法 Download PDFInfo
- Publication number
- CN102663097A CN102663097A CN2012101079153A CN201210107915A CN102663097A CN 102663097 A CN102663097 A CN 102663097A CN 2012101079153 A CN2012101079153 A CN 2012101079153A CN 201210107915 A CN201210107915 A CN 201210107915A CN 102663097 A CN102663097 A CN 102663097A
- Authority
- CN
- China
- Prior art keywords
- data
- value
- time
- reverse
- real time
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
一种基于Hadoop+Hbase的农业时序数据组织方法,属于农业经济技术信息的分析领域。主要解决了具有时间属性的农业经济技术海量数据在Hadoop+Hbase云计算基础平台上的科学组织问题,用于海量数据的存储。技术方案的要点是在数据组织存储阶段,利用多数农业经济技术数据具有时间属性、较晚的数据被查询的概率较高的的实际情况下,在原始数据中增加与实际时间数据辅助的反向时序数据,反向时序值与实际时间值在数值上是负相关的,因此实际时间越晚反向时序值越小,升序排列越靠前,在顺序查找时越能较快查到。在数据查询阶段,将用户在查询条件中提供的实际时间值转换为反向时序值,组成主键键值,实现快速查询。
Description
一、技术领域
农业经济技术信息的分析领域。
二、背景技术
目前农业信息化发展迅速,农业网站建设、农业电子商务、农业市场信息、农业经济信息通过国际互联网迅速富集,在移动互联网迅速发展的未来,农业经济技术信息还有爆发式增长的趋势。这一方面是农业信息化发展、农业产业化、农业现代化发展的必然结果,另一方面也为我们采集、存储、利用这些海量信息为农业生产服务提出了新的需求。
当今,以Hadoop为代表的Key-Value NoSQL云计算技术,以其廉价、稳定、通用,已经逐渐成为各个行业进行海量数据采集、存储和分析的主要平台。其技术在应用中不断得到改进和发展。但是,在农业海量信息处理领域,还是刚刚起步。结合农业生产和经营的特点形成的海量数据,以及围绕这些数据形成的数据处理利用的需求,都还缺乏很多公知的技术手段进行高效的处理。
本发明解决的问题是:在云计算基础平台Hadoop之上部署的大型数据库Hbase,然后存储。在利用中发现查询结果发挥很慢,用户体验很差。经过研究发现与数据的组织方式有很大关系,因为Hadoop是基于主键顺序查找数据的,主键顺序设计不合理,就会直接影响查询结果返回的速度。很多数据都是具有时间顺序属性的,例如农产品的农贸市场价格信息是按照年月日的顺序采集、存储的,再如农产品期货市场价格信息是按照年月日和时分秒的顺序采集、存储的,还有农业气象的数据也是按照年月日和时分秒的时间顺序采集、存储的。越早的数据时间值越小,主键的字母序越是排在前面,查询就快,越新的数据时间值越大,主键的字母序越是排在后面,查询就慢。因为多数情况下,用户是使用最新的数据,所以就会频繁出现查询速度慢的情况。
三、发明内容
本发明的目的是研究一种对于具有时间属性的农业经济技术数据的组织方法,以便解决存储在Hadoop+Hbase云计算基础平台上的农业经济技术数据查询速度慢的问题。
为实现本发明的目的提供一种对于具有时间顺序的农业经济技术数据的组织方法,包括下列步骤:
步骤100.在数据组织阶段,为农业经济技术数据增加反向时序数据。
步骤200.在数据查询阶段,将用户在查询条件中提供的实际时间值转换为反向时序值,组成主键,进行查询。
所述步骤100,具体包括如下步骤:
步骤110.选定实际时间的时间粒度:时间按粒度大小可依次分为年度、年度+月份、年+月+日、年+月+日+小时、年+月+日+小时+分钟、年+月+日+小时+分钟+秒钟、年+月+日+小时+分钟+秒钟+毫秒等多种类型。要根据需要选定其中一种。
步骤120.设定历史参照时序值:设定一个历史的时刻为历史参照时间点,它是与实际时间的时间粒度一致的时间值,该时间值应当比需要存储数据的时间值都要小,通常是在实际时间中不可能出现的久远的历史时刻。进一步将这个时间值转化为一个长整型正数,即历史参照时序值,其数值等于1;
步骤130.设定未来参照时序值:设定一个未来很遥远的本***存储的数据不能抵达的未来时间点,它是与实际时间的时间粒度一致的时间值,该时间值应当比需要存储数据的时间值都要大。进一步根据历史参照时序值将这个时间值转化为一个长整型正数,即未来参照时序值。该未来参照时序值的字符个数定义为时间内容在主键中占据的标准字符个数。
步骤140.设置一个时间字段和一个反向时序字段:时间字段用于存放该数据集的实际时间值。反向时序字段用于存放该数据集的反向时序值,反向时序值与实际时间值一一对应存放;
步骤150.计算反向时序值:为每一个实际时间值计算对应的反向时序值。反向时序值=未来参照时序值-实际时序值。其中:实际时序值等于实际时间值以历史参照时间值为参照转换的一个长整型正数,是实际时间值距离历史参照时间值的时间单位个数。实际时序值越大,反向时序值越小。
步骤160.用反向时序值组建主键。将反向时序值作为主键的重要一部分,组建数据的主键与其它数据一起存入数据库。注意,如果反向时序值的字符个数没有达到标准字符宽度,要在左侧用0补齐后在组合主键键值。
所述步骤200中,包括如下步骤:.
步骤210.将用户选择的实际时间值,转化为实际时序值。实际时序值等于用户选择的实际时间值距离以历史参照时间值的时间单位个数,为一个长整型正数。
步骤220.计算对应的反向时序值:反向时序值=未来参照时序值-实际时序值。
步骤230.利用反向时序值组合成数据主键的键值。如果反向时序值的字符个数没有达到标准字符宽度,要在左侧用0补齐后在组合主键键值。
步骤240.按主键键值查询Hbase数据库,从查询结果中可以获得与反向时序值对应的实际时间的数据。
本发明的优点或积极效果是:
本发明不需改变直接适应基础平台Hadoop+Hbase,方法简单,易于实施,适用多数的有时间顺序属性的数据,又能显著提高查询速度,改善客户体验。
四、附图说明
图1是本发明提出的基于Hadoop+Hbase的海量农业经济技术数据组织存储和查询方法的步骤流程图;
图2是本发明提出的计算反向时序字段数据的具体步骤流程图;
图3是本发明提出的根据用户查询的实际时间值换算主键键值的具体步骤流程图。
五、具体实施方式
下面结合流程图和实例进一步说明本发明实施方式。应当理解,此处描述的具体实施例仅仅用以解释本发明,并不用于限制本发明。
如图1所示,本发明可分为数据组织阶段和数据查询阶段,包括下列步骤:
步骤100.在数据组织阶段,为农业经济技术数据增加反向时序数据。对于具有时间属性的农业经济和技术数据,存储量是随着时间延续不断增长的,因此原始数据中的实际时间通常是越来越晚的,其数值是越来越大的。所以,如果按照原始数据中实际时间值建立主键,则实际时间早实际时间值小的数据就会先被查询到,而实际时间晚实际时间值大的数据就会后被查询到,因此查询结果返回就慢。而我们为原始数据增加的辅助性数据反向时序字段,其反向时序值与实际时间值呈反相关,实际时间值越大,反向时序值越小,用来组建主键就容易查询到了。所以,本步骤是计算与实际时间值对应的反向时序值,并增加到原始数据中去。结合图2说明以下详细步骤:
步骤110.设定时间类型:做主键的时间类型按时间按粒度大小可依次分为年度、年度+月份、年+月+日、年+月+日+小时、年+月+日+小时+分钟、年+月+日+小时+分钟+秒钟、年+月+日+小时+分钟+秒钟+毫秒等多种类型。要根据需要选定其中一种,以下以年+月+日为例说明。
步骤120.设定历史时间点及历史参照时序值:先设定一个历史时间点,它与实际时间的时间粒度一致,应比需要存储数据的时间值都小。设定对应该历史时间值的历史参照时序值为1。针对所选择的时间类型,设定历史参照时序值。先设定历史时间点,本实施例时间类型为年+月+日,所以历史时间点设定为公元1900年1月1日,对应的历史参照时序值为1。
步骤130.设定未来参照时序值:先设定未来参照时间值,针对农业经济技术数据可设定为公元5000年12月31日。因为该未来参照时间值距历史参照时间值的时间单位个数即天数为1132618,所以,可得到对应的未来参照时序值为1132618。该未来参照时序值共有7个字符,所以本实施例的标准字符个数为7。
步骤140.设定时间字段和反向时序字段:先设定一个类型为年+月+日的时间字段,存放该数据集的实际时间值;再设定一个具有标准字符个数7的反向时序字段,存放该数据集的反向时序值。反向时序值与实际时间值在同一个数据行内一一对应;
步骤150.计算反向时序值:为每个实际时间值计算对应的反向时序值。反向时序值=未来参照时序值-实际时序值。其中:实际时序值等于实际时间值距历史参照时间值的时间单位个数,为一长整型正数,本实施例为。先逐一计算该数据集实际时间值的实际时序值,例如实际时间值“1950年3月15日”距离“1900年1月1日”的天数为18337天,所以实际时序值为18337。再计算出对应的反向时序值为1114281,因为:未来参照时序值1132618-实际时序值18337=反向时序值为1114281。再如,实际时间值“3011年1月1日”距离“1900年1月1日”的天数为405786天,所以实际时序值为405786。再计算出对应的反向时序值为0726832,因为:未来参照时序值1132618-实际时序值405786=反向时序值为726832,因不足标准字符数在左侧用0补齐后为0726832。仿此,可逐一计算出各个反向时序值,填入对应的反向时序字段之中,形成辅助数据。
步骤160.组建主键:将反向时序值作为主键的一部分,组建数据的主键键值,与其它数据一起存入数据库。至此,数据的组织工作完成。
步骤200.在数据查询阶段,将用户在查询条件中提供的实际时间值转换为反向时序值,组成主键键值,进行查询。指定实际时间的一个值或者一个范围作为条件查询存储的数据的模式更符合用户的习惯,为了反向时序值的利用变得透明,需要把实际时间值转换为反向时序值,再找到对应的主键键值,才能达到快速查询的目的。所以本步骤是利用实际时间值与反向时间值的换算公式将实际时间的查询转化为对应主键键值查询。从而实现快速查询到实际时间较晚的数据。结合图3说明以下详细步骤:
步骤210.将用户选择的实际时间值,转化为实际时序值:实际时序值等于用户选择的实际时间值距离历史参照时间值的时间单位个数,本实施例为天数。例如用户输入的实际时间值为“2010年3月15日”,距离“1900年1月1日”的天数为40252天,所以实际时序值为40252。
步骤220.计算对应的反向时序值:反向时序值=未来参照时序值-实际时序值。例如用户输入的实际时间值为“2010年3月15日”,实际时序值为40252。对应的反向时序值=未来参照时序值1132618-实际时序值40252=1092366。
步骤230.利用反向时序值组合成数据主键的键值:例如用户输入的实际时间值为“2010年3月15日”,则主键键值的反向时序值部分为“1092366”。
步骤240.按主键键值查询Hbase数据库,从查询结果中可以获得与反向时序值对应的实际时间的数据。由于用户输入的实际时间在多数情况下是较晚的,对应的实际时序值也较大,按反向时序值能比按实际时序值能被优先搜索,所以能较快地查到。
以上仅以时间类型年+月+日为例进行了说明,应当理解,此处描述的具体实施例仅仅用以解释本发明,并不用于限制本发明。
Claims (1)
1.一种基于Hadoop+Hbase的农业时序数据组织方法,其特征在于:
在原始数据中增加反向时序数据用做组建主键键值的重要内容,反向时序数据由与原始数据中的实际时间值一一对应的反向时序值组成,反向时序值为实际时间值距离未来时间点的最小时间单位的个数,在数值上与实际时间值是负相关的。在数据查询阶段,要将用户在查询条件中提供的实际时间值转换为反向时序值,组成主键键值用于检索查询。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012101079153A CN102663097A (zh) | 2012-04-10 | 2012-04-10 | 一种基于Hadoop+Hbase的农业时序数据组织方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012101079153A CN102663097A (zh) | 2012-04-10 | 2012-04-10 | 一种基于Hadoop+Hbase的农业时序数据组织方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102663097A true CN102663097A (zh) | 2012-09-12 |
Family
ID=46772588
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2012101079153A Pending CN102663097A (zh) | 2012-04-10 | 2012-04-10 | 一种基于Hadoop+Hbase的农业时序数据组织方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102663097A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103605805A (zh) * | 2013-12-09 | 2014-02-26 | 冶金自动化研究设计院 | 一种海量时序数据的存储方法 |
CN104750809A (zh) * | 2015-03-26 | 2015-07-01 | 中国科学院软件研究所 | 一种支持关系模型和键-值结构的混合数据存储方法 |
CN106682077A (zh) * | 2016-11-18 | 2017-05-17 | 山东鲁能软件技术有限公司 | 一种基于Hadoop技术的海量时序数据存储实现方法 |
CN107180072A (zh) * | 2017-03-31 | 2017-09-19 | 北京奇艺世纪科技有限公司 | 一种时序数据的处理方法及装置 |
CN107239517A (zh) * | 2017-05-23 | 2017-10-10 | 中国联合网络通信集团有限公司 | 基于Hbase数据库的多条件搜索方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101158976A (zh) * | 2007-11-21 | 2008-04-09 | 金蝶软件(中国)有限公司 | 一种数据库记录查询预处理的方法和*** |
CN101256561A (zh) * | 2007-03-02 | 2008-09-03 | 阿里巴巴集团控股有限公司 | 一种存储、访问数据库数据的方法、装置及*** |
CN101477532A (zh) * | 2008-12-23 | 2009-07-08 | 北京畅游天下网络技术有限公司 | 实现数据存储、读取的方法、装置及*** |
US20110258199A1 (en) * | 2010-04-16 | 2011-10-20 | Salesforce.Com, Inc. | Methods and systems for performing high volume searches in a multi-tenant store |
-
2012
- 2012-04-10 CN CN2012101079153A patent/CN102663097A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101256561A (zh) * | 2007-03-02 | 2008-09-03 | 阿里巴巴集团控股有限公司 | 一种存储、访问数据库数据的方法、装置及*** |
CN101158976A (zh) * | 2007-11-21 | 2008-04-09 | 金蝶软件(中国)有限公司 | 一种数据库记录查询预处理的方法和*** |
CN101477532A (zh) * | 2008-12-23 | 2009-07-08 | 北京畅游天下网络技术有限公司 | 实现数据存储、读取的方法、装置及*** |
US20110258199A1 (en) * | 2010-04-16 | 2011-10-20 | Salesforce.Com, Inc. | Methods and systems for performing high volume searches in a multi-tenant store |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103605805A (zh) * | 2013-12-09 | 2014-02-26 | 冶金自动化研究设计院 | 一种海量时序数据的存储方法 |
CN103605805B (zh) * | 2013-12-09 | 2016-10-26 | 冶金自动化研究设计院 | 一种海量时序数据的存储方法 |
CN104750809A (zh) * | 2015-03-26 | 2015-07-01 | 中国科学院软件研究所 | 一种支持关系模型和键-值结构的混合数据存储方法 |
CN104750809B (zh) * | 2015-03-26 | 2018-05-18 | 中国科学院软件研究所 | 一种支持关系模型和键-值结构的混合数据存储方法 |
CN106682077A (zh) * | 2016-11-18 | 2017-05-17 | 山东鲁能软件技术有限公司 | 一种基于Hadoop技术的海量时序数据存储实现方法 |
CN106682077B (zh) * | 2016-11-18 | 2020-06-09 | 山东鲁能软件技术有限公司 | 一种基于Hadoop技术的海量时序数据存储实现方法 |
CN107180072A (zh) * | 2017-03-31 | 2017-09-19 | 北京奇艺世纪科技有限公司 | 一种时序数据的处理方法及装置 |
CN107239517A (zh) * | 2017-05-23 | 2017-10-10 | 中国联合网络通信集团有限公司 | 基于Hbase数据库的多条件搜索方法及装置 |
CN107239517B (zh) * | 2017-05-23 | 2020-09-29 | 中国联合网络通信集团有限公司 | 基于Hbase数据库的多条件搜索方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105589951B (zh) | 一种海量遥感影像元数据分布式存储方法及并行查询方法 | |
CN102456058B (zh) | 类目信息提供方法及装置 | |
EP3035211B1 (en) | Visualizing large data volumes utilizing initial sampling and multi-stage calculations | |
CN106528787B (zh) | 一种基于海量数据多维分析的查询方法及装置 | |
CN102663097A (zh) | 一种基于Hadoop+Hbase的农业时序数据组织方法 | |
CN111475509A (zh) | 一种基于大数据的用户画像和多维分析*** | |
CN102890722A (zh) | 应用于时序历史数据库的索引方法 | |
CN102760138A (zh) | 用户网络行为的分类方法和装置及对应的搜索方法和装置 | |
CN106599052B (zh) | 一种基于Apache Kylin的数据查询***及其方法 | |
CN103425772A (zh) | 一种具有多维信息的海量数据查询方法 | |
US20150356137A1 (en) | Systems and Methods for Optimizing Data Analysis | |
CN102254043A (zh) | 一种基于语义映射的服装图像检索方法 | |
CN102254024A (zh) | 海量数据处理***及方法 | |
CN103123653A (zh) | 基于贝叶斯分类学习的搜索引擎检索排序方法 | |
CN103064903A (zh) | 图片检索方法和装置 | |
CN102521364B (zh) | 一种图上两点间最短路径查询方法 | |
CN104050235A (zh) | 基于集合选择的分布式信息检索方法 | |
CN104915449A (zh) | 一种基于水利对象分类标签的分面检索***及方法 | |
CN105843842A (zh) | 一种大数据环境下多维聚集查询与展示***及方法 | |
CN102968464A (zh) | 一种基于索引的本地资源快速检索***及其检索方法 | |
CN105740264A (zh) | 一种分布式xml数据库的排序方法及装置 | |
CN103902549A (zh) | 搜索数据排序的方法和装置,数据搜索的方法和装置 | |
CN103235822A (zh) | 数据库的生成及查询方法 | |
CN109614507A (zh) | 一种基于频繁项挖掘的遥感图像推荐装置 | |
CN103198136A (zh) | 一种基于时序关联的个人电脑文件查询方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20120912 |