CN104090949A - 面向水利数据整合与共享的索引方法 - Google Patents

面向水利数据整合与共享的索引方法 Download PDF

Info

Publication number
CN104090949A
CN104090949A CN201410313144.2A CN201410313144A CN104090949A CN 104090949 A CN104090949 A CN 104090949A CN 201410313144 A CN201410313144 A CN 201410313144A CN 104090949 A CN104090949 A CN 104090949A
Authority
CN
China
Prior art keywords
data
index
time
tree
region table
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.)
Granted
Application number
CN201410313144.2A
Other languages
English (en)
Other versions
CN104090949B (zh
Inventor
冯钧
盛震宇
唐志贤
许潇
王超
査显月
杜丙帅
朱跃龙
万定生
李士进
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hohai University HHU
Original Assignee
Hohai University HHU
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hohai University HHU filed Critical Hohai University HHU
Priority to CN201410313144.2A priority Critical patent/CN104090949B/zh
Publication of CN104090949A publication Critical patent/CN104090949A/zh
Application granted granted Critical
Publication of CN104090949B publication Critical patent/CN104090949B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2246Trees, e.g. B+trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2264Multidimensional index structures

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明提供一种面向水利数据整合与共享的索引方法,包括:S1:根据时间粒度对保存的数据进行划分,定义不同粒度层次,并对时间粒度映射时间量化值,并且为数据进行对象分类,定义对象分类编码,其中:所述保存的数据包括按时间采集的水利数据和按地区采集的水利数据;S2:对分类后的数据按照索引机制建立实时索引和历史索引;S3:对建立索引机制后的数据进行查询,当按坐标查询时,转向步骤S4,当按对象分类查询时,转向步骤S5;S4:根据坐标与索引中的外包矩形关系进行查询;S5:根据分类编码序列与索引中的序列编码进行按位“与或”运算来查询;S6:若要继续查询新的数据,则转向步骤S4,否则结束。本发明提供方法能够提高水利数据的检索效率。

Description

面向水利数据整合与共享的索引方法
技术领域
本发明涉及水利信息化监测技术领域,特别涉及一种面向水利数据整合与共享的索引方法。
背景技术
随着水利信息化的发展,水利领域长期的业务实践和天地一体的观测体系形成了日益丰富的水利大数据。数据的整合与共享可以使水利行业各部门充分发挥水利大数据的综合效益,减少不必要的数据采集等重复劳动及相应费用,实现水利业务协同,提高工作效率,改善工作水平。目前,鉴于水利行业应用参差不齐、地区间发展不平衡、标准规范不足以及数据中心初见端倪等现状,各个相关水利部门迫切需要实现水利数据的整合与共享。
目前,水利领域中的数据采取多点获取、分布存储、分散采集的方式,在实施数据共享的过程中,高效查询是提高数据共享效率的关键。水利数据是典型的时空数据,并具有海量性、分布性、自治性等特点,要实现面向水利数据整合与共享的索引方法,需要结合传统空间索引及分布式技术,另外还必须解决以下几个问题:
1)数据的周期性、区域性查询问题。在水利行业应用中,对时空数据的查询除了基本的点查询、随机范围查询等,还需要考虑按照周期、区域等水利行业常用时空范围对数据进行查询。例如,在时间上按月、旬、日去查询数据,在空间上按省、市或者流域、子流域等范围去查询。这类查询往往由于范围边界无法用简单的坐标描述,使得传统空间索引方法对其处理效率不高。
2)对象数据查询问题。水利部门为了数据整合,计划将各流域数据按照水利领域要素分类,并将数据以面向对象的模型组织,数据被划分为对象数据与属性数据,采用对象编码来唯一标识,即数据不只按时空属性划分,还融入了水利要素分类。对于水利多维主题应用,涉及从多个类别的对象查询数据,如何快速定位到对象数据,是这种数据组织方式带来的新问题。
3)索引结构与更新代价问题。水利数据在空间上呈非均匀分布,并且由于各地水利信息化程度不一,数据密度存在较大差异,所建立的索引结构必须能够适应数据的非均匀分布特性。随着数据不断录入系统,索引需要更新,水利数据呈海量态势,对系统的吞吐率有较高要求,索引的更新代价将成为一个值得重视的问题。
针对水利数据分布不均匀,若采用传统空间索引R树索引空间维度,当数据在流域边界聚集时,易发生MBR横跨多个流域的情况。如果希望按流域查询数据,当访问到R树下层节点时,需要花费较大代价去判定数据的流域归属问题。另一方面,水利数据按面向对象方式组织后,通过对象编码来唯一标识。对于水利多维主题应用,涉及从多个类别的对象查询数据,如何利用对象编码快速定位对象成为新的问题。
Hadoop具有扩容能力强、开发效率高、可靠性高、免费开源及良好的可移植性等优点,已经成为当前分布式环境下的常用的计算框架和大规模存储解决方案。其对应的分布式数据库HBase也成为分布式环境下的常用数据库之一。在HBase中,数据按Region存储,Region是数据库中最小的跨服务器存储单元。我们为了对海量水利数据建立索引,需要借助Hadoop平台及其相关技术。因此,我们希望提出一种适用于面向水利数据整合与共享的索引方法,借助Hadoop开源框架实现负载均衡、冗余备份等功能,利用R树对非均匀数据建立索引,支持按坐标进行点查询、随机范围查询,还需将对象分类编码与R树结合形成ER树,从而支持对象分类查询。同时,针对海量数据,通过两阶段索引机制对实时数据和历史数据分开建立索引,从而降低索引更新代价,提高系统吞吐率。
因此,针对现有水利数据存储与查询技术的缺陷,有必要提出一种更加高效的面向水利数据整合与共享的索引方法,以解决前述的应用弊端。
发明内容
本发明的目的旨在提供本发明提供一种面向水利数据整合与共享的索引方法,采用时间粒度划分与时间维度索引、对象分类编码与适用于对象分类查询的空间索引、两阶段索引机制等技术,提高数据存储、整合和检索的效率,适于实用,从而提高系统吞吐率。
为了实现上述目的,本发明提供一种面向水利数据整合与共享的索引方法,包括如下步骤:S1:根据时间粒度对保存的数据进行划分,定义不同的粒度层次,并对时间粒度映射时间量化值,并且为数据进行对象分类,定义对象分类编码,其中:所述保存的数据包括按时间采集的水利数据和按地区采集的水利数据;S2:对分类后的数据按照索引机制建立实时索引和历史索引;S3:对建立索引机制后的数据进行查询,当按坐标查询时,转向步骤S4,当按对象分类查询时,转向步骤S5;S4:根据坐标与索引中的外包矩形关系进行查询;S5:根据分类编码序列与索引中的序列编码进行按位“与或”运算来查询;S6:若要继续查询新的数据,则转向步骤S4,否则结束。
进一步地,所述索引机制包括:索引结构,其分为三层:第一层是按粗粒度时间间隔建立的时间维度索引,采用线性表组织索引结构;第二层是按细粒度时间间隔建立的时间维度索引,采用B+树的结构;第三层是按空间划分建立的Region表或本发明提出的ER树,其中:所述Region表记录了存储实时数据的Region表编号,所述ER树的叶节点指向HBase中存储的实际数据;在整个索引结构中,第一层索引为全局索引,第二层和第三层为本地索引,并且第一层和第二层为时间维度索引,第三层为空间维度索引。
进一步地,所述历史索引包括:对历史数据建立时间维度索引与ER树索引,其中:对时间索引的B+树可以提前建立好,对空间索引的ER树可在一个时间间隔结束后,数据不再改变的情况下,对这些数据建立ER树索引,并将ER树挂在相应的B+树的叶子节点上;当前时间段结束后,其对应的线性表项、B+树、ER树等索引结构都不会再更新,实现了更新代价的降低。
进一步地,所述实时索引包括:采用了时间维度索引与Region表相结合的方式索引实时数据,其中:所述Region表为线性表结构,表项中记录了存放实时数据的Region表编号;当新数据录入时,系统检查其所在Region表,若编号已经存在Region表中,则跳过,否则,在Region表中追加一项记录,存储新的Region表编号;当前时段对应的B+树的叶子节点指向了这张Region表,当查询实时数据时,根据B+树和Region表确定其可能存放于哪些Region,然后再到Region中查询;进入新的时间间隔后,原有的Region表可以删除,采用新表记录当前数据存放的Region表编号。
本发明提供的面向水利数据整合与共享的索引方法,具有以下有益效果:对时间进行粒度划分,更适用于特定周期的查询,且以此将数据划分为实时数据与历史数据,便于两阶段索引机制的实现;对象分类编码可以利用了计算机按位“与”、“或”运算处理效率极高的特性,提高了对象分类查询效率;同时,通过“或”运算可以使序列涵盖信息更丰富,降低存储代价;ER树保持了R树的平衡特性,对非均匀分布数据有着较高的查询效率;两阶段索引机制对实时数据与历史数据分开建立索引,时间维度索引可以提前建立好,历史索引可以放在后台建立,实时索引更新效率高,故提高了系统的插入吞吐率。
本发明附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
图1示出了根据本发明一实施方式的面向水利数据整合与共享的索引方法的流程示意图;
图2示出了根据本发明一实施方式的时间粒度层次划分的示意图;
图3示出了根据本发明一实施方式的索引框架的示意图;
图4示出了根据本发明一实施方式的时间维度索引的示意图;
图5示出了根据本发明一实施方式的ER树结构与编码运算的示意图。
具体实施方式
下面详细描述本发明的实施方式,所述实施方式的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施方式是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的任一单元和全部组合。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语)具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样定义,不会用理想化或过于正式的含义来解释。
图1示出了根据本发明一实施方式的面向触控屏的即时通讯程序中的组群消息浏览方法的流程示意图。如图1所示,本发明提供一种面向水利数据整合与共享的索引方法,可以包括如下步骤:S1:根据时间粒度对保存的数据进行划分,定义不同的粒度层次,并对时间粒度映射时间量化值,并且为数据进行对象分类,定义对象分类编码,其中:所述保存的数据包括按时间采集的水利数据和按地区采集的水利数据;S2:对分类后的数据按照索引机制建立实时索引和历史索引;S3:对建立索引机制后的数据进行查询,当按坐标查询时,转向步骤S4,当按对象分类查询时,转向步骤S5;S4:根据坐标与索引中的外包矩形关系进行查询;S5:根据分类编码序列与索引中的序列编码进行按位“与或”运算来查询;S6:若要继续查询新的数据,则转向步骤S4,否则结束。
进一步地,所述索引机制包括:索引结构,其分为三层:第一层是按粗粒度时间间隔建立的时间维度索引,采用线性表组织索引结构;第二层是按细粒度时间间隔建立的时间维度索引,采用B+树的结构;第三层是按空间划分建立的Region表或本发明提出的ER树,其中:所述Region表记录了存储实时数据的Region表编号,所述ER树的叶节点指向HBase中存储的实际数据;在整个索引结构中,第一层索引为全局索引,第二层和第三层为本地索引,并且第一层和第二层为时间维度索引,第三层为空间维度索引。
进一步地,所述历史索引包括:对历史数据建立时间维度索引与ER树索引,其中:对时间索引的B+树可以提前建立好,对空间索引的ER树可在一个时间间隔结束后,数据不再改变的情况下,对这些数据建立ER树索引,并将ER树挂在相应的B+树的叶子节点上;当前时间段结束后,其对应的线性表项、B+树、ER树等索引结构都不会再更新,实现了更新代价的降低。
进一步地,所述实时索引包括:采用了时间维度索引与Region表相结合的方式索引实时数据,其中:所述Region表为线性表结构,表项中记录了存放实时数据的Region表编号;当新数据录入时,系统检查其所在Region表,若编号已经存在Region表中,则跳过,否则,在Region表中追加一项记录,存储新的Region表编号;当前时段对应的B+树的叶子节点指向了这张Region表,当查询实时数据时,根据B+树和Region表确定其可能存放于哪些Region,然后再到Region中查询;进入新的时间间隔后,原有的Region表可以删除,采用新表记录当前数据存放的Region表编号。
本发明提供的面向水利数据整合与共享的索引方法,具有以下有益效果:对时间进行粒度划分,更适用于特定周期的查询,且以此将数据划分为实时数据与历史数据,便于两阶段索引机制的实现;对象分类编码可以利用了计算机按位“与”、“或”运算处理效率极高的特性,提高了对象分类查询效率;同时,通过“或”运算可以使序列涵盖信息更丰富,降低存储代价;ER树保持了R树的平衡特性,对非均匀分布数据有着较高的查询效率;两阶段索引机制对实时数据与历史数据分开建立索引,时间维度索引可以提前建立好,历史索引可以放在后台建立,实时索引更新效率高,故提高了系统的插入吞吐率。
下面将结合本发明提出的面向水利数据整合与共享的索引方法具体说明五个步骤的实现内容。
图2示出了根据本发明一实施方式的时间粒度层次划分的示意图。如图2所示,步骤S1用于时间粒度划分与对象分类编码定义。为实现面向水利数据整合与共享的索引,按照前面所述模型对时间进行多粒度层次划分,如图2所示。以水利数据为例,为便于说明,假设只以两种粒度(“周”和“日”)来划分时间轴。先将时间轴按天分割为一些片段:T1、T2…Tn+1(n≥0,Tn+1未必是一个完整的周期)等,每个片段表示一周的时间间隔。将T进一步分为m段(一周包含七天,故这里m取7):t7n+1、t7n+2、…、t7n+7(n≥0,某些应用中每个t未必等长),每个片段表示一天的时间间隔。此时,可以看出,T表示一种粗粒度时间划分,t表示一种相对于T粒度较细的划分。并且如果一个T表示一个周期,则每个t都是相应T的一个子周期。只有当一个T的七个t都进行完毕,一个T才算结束。以时间轴最右端且粒度最小的时间间隔(在图2中即为t7n+7)作为当前时间段,其左边的所有时间段(即图2中t1到t7n+6)共同构成了历史时间段,则当前时间段对应的数据为实时数据,历史时间段对应的数据为历史数据。
水利数据的分类编码是唯一的,为了便于后续空间查询及对象分类查询,本发明采用二进制编码来定义对象分类编码(若水利数据自有的分类编码是十进制,也可以映射到这种二进制编码),具体方式如下:以五位二进制编码为例,对于单一类别,“10000”表示“A”类,“01000”表示“B”类,“00100”表示“C”类,以此类推可以表示出“D”、“E”类等;对于组合类,“11000”表示“AB”类,“10100”表示“AC”类,“11100”表示“ABC”类,以此类推可以表示任意类别组合,即根据一个序列中“1”的分布情况,可以判断出有哪些类别被这个序列所涵盖。这种二进制的类别编码方式可以唯一标识某一类别或多种类别的组合,因为水利数据可能同时属于多个类别,若采用顺序二进制编码则无法实现一个编码表示多个类别的情况;
图3示出了根据本发明一实施方式的索引框架的示意图。如图3所示,步骤S2用于索引建立。如图3所示,面向水利数据整合与共享的索引框架分为三层:第一层是按粗粒度时间间隔建立的时间维度索引,采用线性表组织索引结构;第二层是按细粒度时间间隔建立的时间维度索引,采用B+树的结构;第三层是按空间划分建立的Region表或本发明提出的ER树,Region表记录了存储实时数据的Region表编号,ER树的叶节点指向HBase中存储的实际数据。在整个索引结构中,第一层索引为全局索引,后两层为本地索引。具体描述如下:首先,将时间轴按预定周期间隔进行划分,以图2为例,用线性表索引顶层粒度时间间隔(图2中为T),并作为整个系统的主索引,线性表中的每一项对应了一棵索引细时间粒度(图2中为t)的B+树。由于这些时间间隔中的数据在一个粒度周期完成后不再改变,故顶层粒度时间间隔结束后,所建立的B+树结构不再改变。此外,时间是单调递增的,因此线性表按时间顺序增长,可以采用二分查找算法快速定位到索引细时间粒度的B+树。对数据的空间属性,采用R树索引,B+树的叶子节点指向R树的根节点。为提高索引的对象分类查询效率,在R树节点中加入对象分类编码信息形成ER树,ER树的叶节点记录了索引数据的ID。特别的,为了提高系统的吞吐率、减少索引的更新代价,采用两种方法分别在不同阶段对数据进行索引(对实时数据用Region表索引,对历史数据用ER树索引)。
图4示出了根据本发明一实施方式的时间维度索引的示意图。为了建立时间维度索引,首先要将间隔进行量化。如图4所示,对于一个粒度的时间段(如T2),以其区间的左边界或右边界值来代表它,只要保证所有时间段的边界不重合即可(如“左闭右开区间”或“左开右闭区间”)。这样任意时间段被量化成一个值(如用20140215表示某一天,真正的一天应该是从2014年02月15日00时00分00秒到2014年02月15日23时59分59秒;则20140214表示前一天,20140216表示后一天;当粒度更细时,可用更多位编码表示,如20140215000000可表示到时、分、秒级别),随着时间的推移,每个新增的时间段对应的量化值往上递增。本发明建立线性表来索引顶层粒度时间段对应的B+树,表中的关键字为顶层粒度时间量化值。索引细粒度时间间隔的B+树根据粒度层次分为多层(如T2下面分为t8、t9、…、t14,t8也可向下继续分为更细的间隔等),然后从上到下依次索引,即粗时间粒度的B+树索引细时间粒度的B+树,直至索引到底层时间粒度B+树为止。底层B+树的每个叶子节点指向索引空间维度的Region表或ER树的根节点。
图5示出了根据本发明一实施方式的ER树结构与编码运算的示意图。如图5所示,对于水利数据空间维度,采用R树索引可以解决数据分布不均、子树深度不平衡等问题。为提高对象分类查询(特定区域查询也属于该类查询)效率,本发明对传统R树进行改进,在树中每个节点增加二进制的对象分类编码序列,形成适合对象分类查询的ER树(Encoding R-Tree)。如图5所示,ER树的结构与R树类似,对空间目标建立传统R树索引,树中每一个节点的对象分类编码序列都是由其下子节点或索引目标的编码序列按位“或”运算得到。
两阶段索引机制的实现具体如下:水利数据为增量式增长,本发明对数据划分成实时数据和历史数据,对实时数据注重考虑索引更新代价,对历史数据偏向考虑其查询效率。由前面对时间维度索引的描述可知,时间间隔(粒度)是事先定义好的,对时间索引的B+树可以提前建立好,对空间索引的ER树可在一个时间间隔结束后,数据不再改变的情况下,对这些数据建立ER树索引,并将ER树挂在相应的B+树叶子节点上。当一个顶层粒度的时间间隔结束后,其对应的线性表项、B+树、ER树等索引结构都不会再更新,实现了更新代价的降低。对于实时数据,由于其数据量较小,我们采用了B+树与Region表相结合的方式进行索引。B+树与前面介绍的结构相同,Region表结构与前面介绍的线性表类似,表项中记录了存放实时数据的Region表编号,即新数据录入时,系统检查其所在Region,若编号已经存在Region表中,则跳过;否则,在Region表中追加一项记录,存储新的Region表编号。当前时段对应的B+树的叶子节点指向了这张Region表,当查询实时数据时,根据B+树和Region表确定其可能存放于哪些Region,然后再到Region中查询。进入新的时间间隔后,原有的Region表可以删除,采用新表记录当前数据存放的Region表编号;
步骤S3,对数据进行查询,若按坐标查询,则转向步骤S4;若按对象分类查询,则转向步骤S5;
步骤S4,根据坐标与索引中的外包矩形关系进行查询。首先按照待查询的时间范围根据时间线性表及B+树定位到索引空间的ER树。然后按照传统R树的查询算法查询具体数据;
步骤S5,根据分类编码序列与索引中的序列进行按位“与或”运算来查询。首先按照待查询的时间范围根据时间线性表及B+树定位到索引空间的ER树。按对象类别查询某个数据的信息时,只要先得出其相应的对象分类编码序列,然后和ER树中节点的编码序列按位“与”操作,若所得结果不变,说明要查找的数据就在该节点索引的子节点中。例如在图5中,要查询P3这个目标,其对象分类编码是0000001,先将这个序列与A节点(假设此时A节点为ER树的根节点)的序列做“与”运算,发现所得序列不变,故P3必定被节点A的子树索引;然后将P3的编码序列与A节点的子节点的序列做“与”运算,发现和节点B的序列运算后所得序列不变,故P3必定位于节点B的子节点中;再将目标序列与C、D、E节点中的序列分别做“与”运算,发现只有与C节点的序列运算后所得序列不变,而C节点是叶子节点,故目标就在其对应的MBR中,遍历该节点数据项即可找到目标。这种方法利用了计算机按位“与”、“或”运算处理效率极高的特性,提高了对象分类查询效率;同时,通过“或”运算可以使序列涵盖信息更丰富,降低存储代价。
步骤S6,若要继续查询新的数据,则转向步骤S3;否则结束。
面向水利数据整合与共享的索引方法,其特征在于,包括索引结构设计和两阶段索引机制两部分,其中:所述索引结构设计包括时间粒度划分、对象分类编码设计、索引框架、时间维度索引结构设计与空间索引结构设计,所述两阶段索引机制包括对实时数据建立实时索引、对历史数据建立历史索引两部分;
所述时间粒度划分为:对时间轴按序切割成若干线段,每个线段又可以继续细分为子线段,切割的长度对应于时间的粒度(即“年”、“月”、“日”等时间粒度)。假设T为顶层粒度划分,t表示一种相对于T粒度较细的划分。并且如果一个T表示一个周期,则每个t都是相应T的一个子周期。只有当一个T的所有t都进行完毕,一个T才算结束。以时间轴最右端且粒度最小的时间间隔其左边的所有时间段共同构成了历史时间段,则当前时间段对应的数据为实时数据,历史时间段对应的数据为历史数据;
所述面向水利数据整合与共享的索引框架分为三层:第一层是按粗粒度时间间隔建立的时间维度索引,采用线性表组织索引结构;第二层是按细粒度时间间隔建立的时间维度索引,采用B+树的结构;第三层是按空间划分建立的Region表或本发明提出的ER树,Region表记录了存储实时数据的Region表编号,ER树的叶节点指向HBase中存储的实际数据。在整个索引结构中,第一层索引为全局索引,后两层为本地索引。前两层为时间维度索引,底层为空间维度索引;
所述时间量化值为:对于一个粒度的时间段,即在时间轴上截取的一条时间线段,以其区间的左边界或右边界值来代表它,只要保证所有时间段的边界不重合即可(如“左闭右开区间”或“左开右闭区间”)。这样任意时间段被量化成一个值。随着时间的推移,每个新增的时间段对应的量化值往上递增;
所述时间维度索引为:建立线性表来索引顶层粒度时间段对应的B+树,表中的关键字为顶层粒度时间量化值。索引细粒度时间间隔的B+树根据粒度层次分为多层,然后从上到下依次索引,即粗时间粒度的B+树索引细时间粒度的B+树,直至索引到底层时间粒度B+树为止。底层B+树的每个叶子节点指向索引空间维度的Region表或ER树的根节点;
所述对象分类编码采用二进制编码来表示分类,具体方式如下:以五位二进制编码为例,对于单一类别,“10000”表示“A”类,“01000”表示“B”类,“00100”表示“C”类,以此类推可以表示出“D”、“E”类等;对于组合类,“11000”表示“AB”类,“10100”表示“AC”类,“11100”表示“ABC”类,以此类推可以表示任意类别组合,即根据一个序列中“1”的分布情况,可以判断出有哪些类别被这个序列所涵盖;
所述空间维度索引为:在树中每个节点增加二进制的对象分类编码序列,形成适合对象分类查询的ER树(Encoding R-Tree)。ER树的结构与R树类似,对空间目标建立传统R树索引,树中每一个节点的对象分类编码序列都是由其下子节点或索引目标的编码序列按位“或”运算得到。若要按对象类别查询某个数据的信息,只要先得出其相应的对象分类编码序列,然后和ER树中节点的编码序列按位“与”操作,若所得结果不变,说明要查找的数据就在该节点索引的子节点中;
所述历史索引为:对历史数据建立时间维度索引与ER树索引。对时间索引的B+树可以提前建立好,对空间索引的ER树可在一个时间间隔结束后,数据不再改变的情况下,对这些数据建立ER树索引,并将ER树挂在相应的B+树叶子节点上。当前时间段结束后,其对应的线性表项、B+树、ER树等索引结构都不会再更新,实现了更新代价的降低;
所述实时索引为:采用了时间维度索引与Region表相结合的方式索引实时数据。Region表为线性表结构,表项中记录了存放实时数据的Region表编号,即新数据录入时,系统检查其所在Region,若编号已经存在Region表中,则跳过;否则,在Region表中追加一项记录,存储新的Region表编号。当前时段对应的B+树的叶子节点指向了这张Region表,当查询实时数据时,根据B+树和Region表确定其可能存放于哪些Region,然后再到Region中查询。进入新的时间间隔后,原有的Region表可以删除,采用新表记录当前数据存放的Region表编号;
所述两阶段索引机制为:对于实时数据,采用B+树与Region表组合的实时索引;当前时间段结束后,对这个时间段中的数据重新建立ER树,并使相应B+的叶子节点指向该ER树的根节点,形成历史索引。B+树可以提前建立好,重建ER树可以放在后台进行,不影响实时数据进入系统。
提出了面向水利数据整合与共享的索引方法。方法中先对时间粒度进行划分,区分实时数据与历史数据,设计了对象分类编码;采用线性表与B+相结合对时间维度进行索引;将对象分类编码引入R树形成适用于对象分类查询的ER树;通过两阶段索引机制对实时数据和历史数据分开建立索引,从而降低索引更新代价,提高系统吞吐率。本发明解决了在海量水利数据存储与查询中的索引更新代价高及对象分类查询低效等问题。
本发明为实现上述发明目的采用如下技术方案:
面向水利数据整合与共享的索引方法,其特征在于,包括索引结构设计和两阶段索引机制两部分,其中:所述索引结构设计包括时间粒度划分、对象分类编码设计、索引框架、时间维度索引结构设计与空间索引结构设计,所述两阶段索引机制包括对实时数据建立实时索引、对历史数据建立历史索引两部分;
所述时间粒度划分为:对时间轴按序切割成若干线段,每个线段又可以继续细分为子线段,切割的长度对应于时间的粒度(即“年”、“月”、“日”等时间粒度)。假设T为顶层粒度划分,t表示一种相对于T粒度较细的划分。并且如果一个T表示一个周期,则每个t都是相应T的一个子周期。只有当一个T的所有t都进行完毕,一个T才算结束。以时间轴最右端且粒度最小的时间间隔其左边的所有时间段共同构成了历史时间段,则当前时间段对应的数据为实时数据,历史时间段对应的数据为历史数据;
所述面向水利数据整合与共享的索引框架分为三层:第一层是按粗粒度时间间隔建立的时间维度索引,采用线性表组织索引结构;第二层是按细粒度时间间隔建立的时间维度索引,采用B+树的结构;第三层是按空间划分建立的Region表或本发明提出的ER树,Region表记录了存储实时数据的Region表编号,ER树的叶节点指向HBase中存储的实际数据。在整个索引结构中,第一层索引为全局索引,后两层为本地索引。前两层为时间维度索引,底层为空间维度索引;
所述时间量化值为:对于一个粒度的时间段,即在时间轴上截取的一条时间线段,以其区间的左边界或右边界值来代表它,只要保证所有时间段的边界不重合即可(如“左闭右开区间”或“左开右闭区间”)。这样任意时间段被量化成一个值。随着时间的推移,每个新增的时间段对应的量化值往上递增;
所述时间维度索引为:建立线性表来索引顶层粒度时间段对应的B+树,表中的关键字为顶层粒度时间量化值。索引细粒度时间间隔的B+树根据粒度层次分为多层,然后从上到下依次索引,即粗时间粒度的B+树索引细时间粒度的B+树,直至索引到底层时间粒度B+树为止。底层B+树的每个叶子节点指向索引空间维度的Region表或ER树的根节点;
所述对象分类编码采用二进制编码来表示分类,具体方式如下:以五位二进制编码为例,对于单一类别,“10000”表示“A”类,“01000”表示“B”类,“00100”表示“C”类,以此类推可以表示出“D”、“E”类等;对于组合类,“11000”表示“AB”类,“10100”表示“AC”类,“11100”表示“ABC”类,以此类推可以表示任意类别组合,即根据一个序列中“1”的分布情况,可以判断出有哪些类别被这个序列所涵盖;
所述空间维度索引为:在树中每个节点增加二进制的对象分类编码序列,形成适合对象分类查询的ER树(Encoding R-Tree)。ER树的结构与R树类似,对空间目标建立传统R树索引,树中每一个节点的对象分类编码序列都是由其下子节点或索引目标的编码序列按位“或”运算得到。若要按对象类别查询某个数据的信息,只要先得出其相应的对象分类编码序列,然后和ER树中节点的编码序列按位“与”操作,若所得结果不变,说明要查找的数据就在该节点索引的子节点中;
所述历史索引为:对历史数据建立时间维度索引与ER树索引。对时间索引的B+树可以提前建立好,对空间索引的ER树可在一个时间间隔结束后,数据不再改变的情况下,对这些数据建立ER树索引,并将ER树挂在相应的B+树叶子节点上。当前时间段结束后,其对应的线性表项、B+树、ER树等索引结构都不会再更新,实现了更新代价的降低;
所述实时索引为:采用了时间维度索引与Region表相结合的方式索引实时数据。Region表为线性表结构,表项中记录了存放实时数据的Region表编号,即新数据录入时,系统检查其所在Region,若编号已经存在Region表中,则跳过;否则,在Region表中追加一项记录,存储新的Region表编号。当前时段对应的B+树的叶子节点指向了这张Region表,当查询实时数据时,根据B+树和Region表确定其可能存放于哪些Region,然后再到Region中查询。进入新的时间间隔后,原有的Region表可以删除,采用新表记录当前数据存放的Region表编号;
所述两阶段索引机制为:对于实时数据,采用B+树与Region表组合的实时索引;当前时间段结束后,对这个时间段中的数据重新建立ER树,并使相应B+的叶子节点指向该ER树的根节点,形成历史索引。B+树可以提前建立好,重建ER树可以放在后台进行,不影响实时数据进入系统。
面向水利数据整合与共享的索引方法,其特征在于包括如下步骤:
步骤S1,对时间进行粒度划分,定义出不同的粒度层次,并对时间粒度映射时间量化值;为数据进行对象分类,定义对象分类编码;
步骤S2,对数据按照两阶段索引机制建立索引;
步骤S3,对数据进行查询,若按坐标查询,则转向步骤S4;若按对象分类查询,则转向步骤S5;
步骤S4,根据坐标与索引中的外包矩形关系进行查询;
步骤S5,根据分类编码序列与索引中的序列进行按位“与或”运算来查询;
步骤S6,若要继续查询新的数据,则转向步骤S3;否则结束。
本发明采用上述技术方案,具有以下有益效果:对时间进行粒度划分,更适用于特定周期的查询,且以此将数据划分为实时数据与历史数据,便于两阶段索引机制的实现;对象分类编码可以利用了计算机按位“与”、“或”运算处理效率极高的特性,提高了对象分类查询效率;同时,通过“或”运算可以使序列涵盖信息更丰富,降低存储代价;ER树保持了R树的平衡特性,对非均匀分布数据有着较高的查询效率;两阶段索引机制对实时数据与历史数据分开建立索引,时间维度索引可以提前建立好,历史索引可以放在后台建立,实时索引更新效率高,故提高了系统的插入吞吐率。
本技术领域技术人员可以理解,本发明可以涉及用于执行本申请中所述操作中的一项或多项操作的设备。所述设备可以为所需的目的而专门设计和制造,或者也可以包括通用计算机中的已知设备,所述通用计算机有存储在其内的程序选择性地激活或重构。这样的计算机程序可以被存储在设备(例如,计算机)可读介质中或者存储在适于存储电子指令并分别耦联到总线的任何类型的介质中,所述计算机可读介质包括但不限于任何类型的盘(包括软盘、硬盘、光盘、CD-ROM、和磁光盘)、随即存储器(RAM)、只读存储器(ROM)、电可编程ROM、电可擦ROM(EPROM)、电可擦除可编程ROM(EEPROM)、闪存、磁性卡片或光线卡片。可读介质包括用于以由设备(例如,计算机)可读的形式存储或传输信息的任何机构。例如,可读介质包括随即存储器(RAM)、只读存储器(ROM)、磁盘存储介质、光学存储介质、闪存装置、以电的、光的、声的或其他的形式传播的信号(例如载波、红外信号、数字信号)等。
本技术领域技术人员可以理解,可以用计算机程序指令来实现这些结构图和/或框图和/或流图中的每个框以及这些结构图和/或框图和/或流图中的框的组合。可以将这些计算机程序指令提供给通用计算机、专业计算机或其他可编程数据处理方法的处理器来生成机器,从而通过计算机或其他可编程数据处理方法的处理器来执行的指令创建了用于实现结构图和/或框图和/或流图的框或多个框中指定的方法。
本技术领域技术人员可以理解,本发明中已经讨论过的各种操作、方法、流程中的步骤、措施、方案可以被交替、更改、组合或删除。进一步地,具有本发明中已经讨论过的各种操作、方法、流程中的其他步骤、措施、方案也可以被交替、更改、重排、分解、组合或删除。进一步地,现有技术中的具有与本发明中公开的各种操作、方法、流程中的步骤、措施、方案也可以被交替、更改、重排、分解、组合或删除。
以上所述仅是本发明的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (4)

1.一种面向水利数据整合与共享的索引方法,其特征在于,包括如下步骤:
S1:根据时间粒度对保存的数据进行划分,定义不同的粒度层次,对时间粒度映射时间量化值,并且为数据进行对象分类,定义对象分类编码,其中:所述保存的数据包括按时间采集的水利数据和按地区采集的水利数据;
S2:对分类后的数据按照索引机制建立实时索引和历史索引;
S3:对建立索引机制后的数据进行查询,当按坐标查询时,转向步骤S4,当按对象分类查询时,转向步骤S5;
S4:根据坐标与索引中的外包矩形关系进行查询;
S5:根据分类编码序列与索引中的序列编码进行按位的与或运算来查询;
S6:若要继续查询新的数据,则转向步骤S4,否则结束。
2.如权利要求1所述的方法,其特征在于,所述索引机制包括:
索引结构,其分为三层:
第一层是按粗粒度时间间隔建立的时间维度索引,采用线性表组织索引结构;
第二层是按细粒度时间间隔建立的时间维度索引,采用B+树的结构;
第三层是按空间划分建立的Region表或ER树,其中:所述Region表记录了存储实时数据的Region表编号,所述ER树的叶节点指向HBase中存储的实际数据;
在整个索引结构中,第一层索引为全局索引,第二层和第三层为本地索引,并且第一层和第二层为时间维度索引,第三层为空间维度索引。
3.如权利要求2所述的方法,其特征在于,所述历史索引包括:
对历史数据建立时间维度索引与ER树相结合的索引,其中:
将时间维度索引的B+树提前建立好,在一个时间间隔结束后且数据不再改变时,通过空间维度索引的ER树对所述历史数据建立ER树索引,并将ER树挂在相应的B+树的叶子节点上;
当前时间段结束后,其对应的线性表项、B+树、ER树的索引都不再更新。
4.如权利要求2所述的方法,其特征在于,所述实时索引包括:
对实时数据建立时间维度索引与Region表相结合的索引,其中:
所述Region表为线性表结构,表项中记录了存放所述实时数据的Region表编号;
当新数据录入时,系统检查其所在Region表,若编号已经存在于Region表中,则跳过,否则,在Region表中追加一项记录,存储新的Region表编号;
当前时段对应的B+树的叶子节点指向了这张Region表,当查询所述实时数据时,根据B+树和Region表确定其可能存放于哪些Region,然后再到Region中查询;
进入新的时间间隔后,原有的Region表可以删除,采用新表记录当前数据存放的Region表编号。
CN201410313144.2A 2014-07-02 2014-07-02 面向水利数据整合与共享的索引方法 Expired - Fee Related CN104090949B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410313144.2A CN104090949B (zh) 2014-07-02 2014-07-02 面向水利数据整合与共享的索引方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410313144.2A CN104090949B (zh) 2014-07-02 2014-07-02 面向水利数据整合与共享的索引方法

Publications (2)

Publication Number Publication Date
CN104090949A true CN104090949A (zh) 2014-10-08
CN104090949B CN104090949B (zh) 2017-03-01

Family

ID=51638665

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410313144.2A Expired - Fee Related CN104090949B (zh) 2014-07-02 2014-07-02 面向水利数据整合与共享的索引方法

Country Status (1)

Country Link
CN (1) CN104090949B (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105260446A (zh) * 2015-10-09 2016-01-20 上海瀚之友信息技术服务有限公司 一种数据查询系统及方法
CN106126486A (zh) * 2016-06-30 2016-11-16 童晓冲 时间信息编码方法、编码值检索方法、解码方法与装置
CN107832464A (zh) * 2017-11-28 2018-03-23 中国银行股份有限公司 一种数据漂白方法及装置
CN108614836A (zh) * 2016-12-13 2018-10-02 上海仪电(集团)有限公司中央研究院 一种基于Hbase的时空数据管理方法
CN110019200A (zh) * 2017-09-30 2019-07-16 阿里巴巴集团控股有限公司 一种索引的建立、使用方法及装置
CN111507071A (zh) * 2020-04-17 2020-08-07 上海电气风电集团股份有限公司 风电场的编码方法、编码装置及计算机可读存储介质
CN112579714A (zh) * 2019-09-30 2021-03-30 阿里巴巴集团控股有限公司 数据查询方法、装置、设备及机器可读存储介质
WO2022143239A1 (zh) * 2020-12-31 2022-07-07 欧普照明股份有限公司 一种控制系统的设备信息查询方法及查询设备
TWI809320B (zh) * 2020-10-14 2023-07-21 國立中央大學 適應性多屬性索引結構

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103324642A (zh) * 2012-03-23 2013-09-25 日电(中国)有限公司 为数据建立索引的系统和方法以及数据查询方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103324642A (zh) * 2012-03-23 2013-09-25 日电(中国)有限公司 为数据建立索引的系统和方法以及数据查询方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
任翔: "面向智能交通系统的时空索引方法研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *
吕俊龙: "时空数据库中的移动对象索引技术研究", 《万方数据知识服务平台》 *
杨宇曦: "空间数据索引技术的研究及在GIS中的应用", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105260446A (zh) * 2015-10-09 2016-01-20 上海瀚之友信息技术服务有限公司 一种数据查询系统及方法
CN105260446B (zh) * 2015-10-09 2019-07-05 上海瀚之友信息技术服务有限公司 一种数据查询系统及方法
CN106126486A (zh) * 2016-06-30 2016-11-16 童晓冲 时间信息编码方法、编码值检索方法、解码方法与装置
US11544443B2 (en) 2016-06-30 2023-01-03 Xiaochong TONG Time information coding method, coded value searching method, decoding method and device
CN106126486B (zh) * 2016-06-30 2019-03-08 童晓冲 时间信息编码方法、编码值检索方法、解码方法与装置
CN108614836A (zh) * 2016-12-13 2018-10-02 上海仪电(集团)有限公司中央研究院 一种基于Hbase的时空数据管理方法
CN110019200A (zh) * 2017-09-30 2019-07-16 阿里巴巴集团控股有限公司 一种索引的建立、使用方法及装置
CN110019200B (zh) * 2017-09-30 2023-05-09 阿里巴巴集团控股有限公司 一种索引的建立、使用方法及装置
CN107832464B (zh) * 2017-11-28 2021-11-23 中国银行股份有限公司 一种数据漂白方法及装置
CN107832464A (zh) * 2017-11-28 2018-03-23 中国银行股份有限公司 一种数据漂白方法及装置
CN112579714A (zh) * 2019-09-30 2021-03-30 阿里巴巴集团控股有限公司 数据查询方法、装置、设备及机器可读存储介质
CN111507071A (zh) * 2020-04-17 2020-08-07 上海电气风电集团股份有限公司 风电场的编码方法、编码装置及计算机可读存储介质
CN111507071B (zh) * 2020-04-17 2024-02-27 上海电气风电集团股份有限公司 风电场的编码方法、编码装置及计算机可读存储介质
TWI809320B (zh) * 2020-10-14 2023-07-21 國立中央大學 適應性多屬性索引結構
WO2022143239A1 (zh) * 2020-12-31 2022-07-07 欧普照明股份有限公司 一种控制系统的设备信息查询方法及查询设备

Also Published As

Publication number Publication date
CN104090949B (zh) 2017-03-01

Similar Documents

Publication Publication Date Title
CN104090949A (zh) 面向水利数据整合与共享的索引方法
CN109992636B (zh) 时空编码方法、时空索引及查询方法及装置
CN110674228A (zh) 数据仓库模型构建和数据查询方法、装置及设备
CN105139281A (zh) 一种电力营销大数据的处理方法及系统
CN106528787B (zh) 一种基于海量数据多维分析的查询方法及装置
CN102646070B (zh) 一种基于区域的时空轨迹数据存储方法
CN105183735A (zh) 数据的查询方法及查询装置
CN110275920A (zh) 数据查询方法、装置、电子设备及计算机可读存储介质
CN101452487B (zh) 一种数据加载的方法、系统及数据加载装置
Ruan et al. Cloudtp: A cloud-based flexible trajectory preprocessing framework
CN109241159B (zh) 一种数据立方体的分区查询方法、系统及终端设备
CN103577440A (zh) 一种非关系型数据库中的数据处理方法和装置
CN107491515B (zh) 基于大数据平台的智能配用电数据转换方法
CN102982103A (zh) 一种olap海量多维数据维存储方法
JP2014002519A (ja) 時空間データ管理システム、時空間データ管理方法、及びそのプログラム
CN108804602A (zh) 一种基于spark的分布式空间数据存储计算方法
US10558665B2 (en) Network common data form data management
CN106055621A (zh) 一种日志检索方法及装置
CN111159180A (zh) 一种基于数据资源目录构建的数据处理方法及系统
CN103678712A (zh) 一种灾害信息时空数据库
CN111104457A (zh) 基于分布式数据库的海量时空数据管理方法
JP2020522814A (ja) オンライン分析処理を行うためのデータ処理方法及び装置
CN104219088A (zh) 一种基于Hive的网络告警信息OLAP方法
Ding et al. Viptra: Visualization and interactive processing on big trajectory data
CN105574188A (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
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20170301