CN110347680A - 一种面向云际环境的时空数据索引方法 - Google Patents
一种面向云际环境的时空数据索引方法 Download PDFInfo
- Publication number
- CN110347680A CN110347680A CN201910540829.3A CN201910540829A CN110347680A CN 110347680 A CN110347680 A CN 110347680A CN 201910540829 A CN201910540829 A CN 201910540829A CN 110347680 A CN110347680 A CN 110347680A
- Authority
- CN
- China
- Prior art keywords
- index
- space
- time
- tree
- abstract
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2246—Trees, e.g. B+trees
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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提出一种面向云际环境的时空数据索引方法,使用双层索引的方式支持跨云时空范围查询。所述双层索引的方式为对云内节点存储的时空数据,采用先时间划分后空间划分的方式建立局部索引,再把局部索引的索引摘要发布到全局索引当中。在进行时空范围查询时,先经过全局索引过滤出参与查询的节点,再向这些节点的局部索引获取数据。
Description
技术领域
本发明涉及一种索引方法,尤其涉及一种面向云际环境的时空数据索引方法。
背景技术
在车联网应用中,通过车辆配备的GPS、OBD设备来持续收集以位置为核心的各类数据,并由此积累了海量的历史时空数据,轨迹数据是其中重要的一类。考虑到海量存储和高插入速率的要求,一般选择使用HBase来存储轨迹数据,主键是车辆标识+时间戳。使用这种模式存储轨迹数据,可以方便地获取车俩在某一个时间段内的轨迹数据,然而当应用需要查询某个时间段内某一空间区域内所有的车辆轨迹点时(时空范围查询),则需要以过滤方式扫描全表来获取最后的结果。虽然可以通过MapReduce并行化过滤操作,但这仍然是一个批处理耗时操作。为了及时获得查询结果,需要构建行之有效的时空数据索引来支持时空范围查询。
上述问题拓展到云际环境时则进一步复杂化了。云际计算(JointCloudComputing)是以云服务提供者之间开放协作为基础,通过多方云资源深度融合,方便开发者通过“软件定义”的方式定制云服务、创造云价值,实现“服务无边界、云间有协作、资源易共享、价值可转换”的新一代云计算模式,推动互联网从信息传递网络进一步向价值传递网络演进。在云际环境下,海量历史时空数据分布在不同的云中,每个云中只存储了整体时空数据的一个子集,其只能反映部分环境特征,因此针对任何一个云的时空范围查询获得的结果都不能完整反映现实环境特征,因此应用有必要获取对整体时空数据的时空范围查询结果。同时考虑到目前云端并没有成熟的时空数据存储解决方案,这些数据通常是存储在云端的NoSQL数据库中,其没有原生支持这类时空查询操作。学术界目前没有跨云时空范围查询的直接研究成果出现。云际环境主要带来了两个限制:1.云之间存在安全性问题,意味着不同云各自掌管自身的数据,在云间难以迁移数据;2.时空数据的规模则不仅限制了在云间迁移数据的可能性,同样也限制了在云内重新分布数据的可能性,即在云内把时空数据以利于时空查询的方式重新分布的代价略大。
目前并没有一种技术可以解决云际环境下时空数据的跨云时空范围查询问题。在单云环境下,MD-HBase是一种海量空间数据管理系统,其可以用来存储海量空间数据并进行空间范围查询。Md-HBase是一种适用于多维数据的存储系统。在存储层,MD-HBase使用Z-ordering技术把多维数据映射为一维数据,并以该一维数据作为主键把多维数据存储在HBase中。使用Z-ordering技术使得在多维空间上接近的数据在一维空间也接近,表现为在HBase存储时这些数据位置也相近。在索引层,MD-HBase使用Quad-tree和Kd-tree实现了两种多维索引,支持多维数据的范围查询和最近邻查询。索引层的作用在于保证查询时减少False Positive查找。MD-HBase的缺点在于索引层和存储层维护一致性复杂,并且考虑到时空数据是一种特殊的多维数据,时间维度没有界限并不能应用Z-ordering技术降维,只能把时间维度单独处理,此时时间维度没有索引而导致查询效率低下。
以上可以考虑为现有技术中单云环境下的一种解决方法,而当时空数据分布在云际环境时,Md-HBase则不能有效解决跨云的时空范围查询问题,其不足主要有两点:1.其是面向多维数据的存储和查询的系统,时空数据是特殊的多维数据因此不能直接使用该系统;2.Md-HBase在存储数据时要求按照设计的主键规则重新分布数据,而在云际环境中存在安全性和数据规模的限制,难以在云间迁移数据,同时也不允许在云内重新分布数据。
发明内容
本发明提出一种面向云际环境的时空数据索引。减少存储成本、支持跨云时空范围查询、优化查询效率是本发明的目标。
本方法相对于目前单云下的解决技术具有如下的特点和优势:
(1)云内节点存储的时空数据,采用先时间划分后空间划分的方式对时空数据建立局部索引,在进行时空查询时可以先对时间剪枝再对空间剪枝,有效提高了时空范围查询的效率。
(2)以二级索引的方式支持跨云时空范围查询,避免了海量数据的重复存储,减少了存储成本。
(3)在云际间的节点上建立一个全局索引,存储云内各节点局部索引的索引摘要,在查询时先经过全局索引过滤出可能参与查询的节点,再到相应的云内节点的局部索引查询数据,有效避免了False Positive查询。
附图说明
图1为本发明中面向云际环境的时空数据索引系统的结构;
图2为本发明中使用的三种空间填充曲线;
图3为本发明中空间填充曲线为Z曲线的一阶到三阶形式;
图4为本发明中局部索引扩展和收缩过程;
图5为本发明中全局索引的Baton网络
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
为实现上述发明目的,本发明提供了一种面向云际环境的时空数据索引方法,其使用的系统包括以下几个模块:
可视化界面方便用户进行跨云时空范围查询,并把查询结果展示在地图之上。用户也可以直接使用客户端模块的API来进行跨云时空范围查询。
客户端模块封装了云际环境下时空数据索引的跨云时空范围查询接口,通过先与全局索引交互过滤出可能参与查询的节点,再向这些节点的局部索引请求数据,最后汇总结果返回。
全局索引模块中,云中的每一个节点均有一个该实例。在云际环境下,全局索引实例被组织在一个Overlay网络中,其负责接收局部索引发布的索引摘要,并且按照一定的规则选择存储在某一个全局索引实例中;同时其负责接收上层的查询请求,过滤出可能包含查询所需数据的云内节点。
局部索引模块中,云内的每一个节点均有一个该实例。局部索引主要负责索引云内节点本地存储的时空数据,并对外提供时空范围查询的接口以及发布索引摘要。同时局部索引还负责记录查询信息,并定期根据查询信息动态地调整局部索引需要发布的索引摘要范围。
本发明使用轨迹数据格式的时空数据,其数据模型为一个n元组:R= <devicesn,x,y,timestamp,clusterid,attrs),其中前5个为核心属性, devicesn是设备标识,timestamp是该条记录产生时的时间戳,x和y则分别代表该条记录的经纬度,clusterid则代表该记录所属的云标识,主要目的是用来区分不同的云,attrs则代表其余所有的属性。局部索引将基于x、y和 timestamp这三个属性来构建。
时空数据是一种特殊的多维数据,特别是考虑到时间维度连续,空间维度有限的特性。现有的一些多维数据索引结构如R-tree以及Kd-tree等被设计为索引单节点上的多维数据,能较好地完成范围查询的需求。局部索引需要发布其索引摘要到全局索引中,其设计受到全局索引设计的影响,因此没有使用传统的多维数据索引结构来索引节点存储的时空数据,而是选择采用先划分时间再使用UB-tree的方式索引空间数据的方案,使得局部索引的索引摘要可以发布到全局索引中且可供查询。
本发明将节点本地存储的时空数据先对时间分片后再使用UB-tree来索引空间维度,而UB-tree采用降维方法,把多维数据降为一维数据后再存储在B+-tree中。降维方法就是使用空间填充曲线来完成的,一般来说空间填充曲线分为三种,分别是Z曲线、Hilbert曲线和Gray曲线。
空间填充曲线是一种可以将d维的数据空间填充满的曲线。通过既定的填充规则,其可以通过有限次数的逼近操作把d维空间切分成许多体积微小的网格,最后始终能够发现一条连续的空间填充曲线通过所有的网格而不重叠。因此空间填充曲线是一种把d维数据空间上的数据映射到一维空间的一种函数,并且这种函数关系可以保存一部分原始数据在d维空间的局部性,即在原始空间相邻的点映射为一维的点后也尽可能相邻。
以二维空间映射到一维空间为例,三种空间填充曲线的填充图如图2所示。在保存局部性方面,Z曲线和Hilbert曲线的效果都不错,然而存在对角线,Z 曲线保存局部性的效果则略逊于Hilbert曲线,而且Z曲线的映射函数更为简单,同时没有旋转和反射等操作,导致Z值的计算较为容易。因此本发明选择使用Z曲线。
d维空间Rd到1维空间R的一一映射关系,即Rd→R被定义为Z曲线。如果p∈Rd的话,那么Z(p)∈R,则称Z(p)为点p的Z值。
下图表示了1到3阶的Z曲线是如何映射的。从图中可以归纳出,m阶的Z 曲线会将每个维度切分为2m份,d维空间映射到一维空间的Z值与此相关。若点p在d维空间上的十进制坐标形式为p=(p1,p2,…,pd)10,那么在m阶曲线下,其二进制形式可以描述为p=(x1x2…xm,…,y1y2…ym)2,二进制的每一位表示了对坐标轴的一次分割。
网格的次序可以通过Z值来反映,根据网格的位置,可以计算出相应的Z 值,而根据Z值也可以获得该Z值对应的网格在空间中的位置。通过将网格坐标的二进制形式进行位交叉,可以在O(1)时间内计算得到Z值。
以二维空间为例,对于图2中网格p=(3,4)10=(011,100)2,其Z值为 Z(p)=Z(0112,1002)=(011010)2=26,位交叉过程图3所示。
在云内,时空数据以devicesn+timestamp为rowKey存储在分布式数据库中,即时空数据已经按照既定的分区规则分布在云内的节点上。开源使用最广泛的分布式数据库是HBase,因此本发明均使用HBase数据库,但是整体方案也可以迁移到其它的分布式数据库,如Cassandra等。HBase设计的rowKey能方便地获取设备在某一个时间段内的时空数据。但是使用这种方式来存储数据不利于典型的时空查询,例如Range Query和kNN Query。考虑到时空数据经过数年的累积,已经达到了TB级别的规模,重复存储不仅带来了迁移的压力,其存储成本也不能简单忽略。本发明使用二级索引的方式支持典型的时空查询以避免迁移数据和重复存储数据,具体实现目标是时空范围查询。同时为了减少云内节点的FalsePositive查询,把局部索引的索引摘要集合发布到全局索引中,查询时先经过全局索引剪枝过滤出可能参与查询的节点后,再向这些节点上的局部索引发起时空范围查询获取结果。
基于局部索引模块与全局索引模块的有机结合,本发明对时空数据进行时间划分,以一定时间为间隔,再使用UB-tree来索引该时间段内的空间数据。 UB-tree使用的降维方法是Z曲线。
局部索引的构建方式为以下步骤:
步骤1,获取到一条时空数据record=(rowkey,devicesn,x,y, timestamp,clusterid,attrs)。
步骤2,根据record.timestamp属性判断该记录应该插入哪一个时间段内的B+-tree。
步骤3,根据record.x和record.y属性,以及预定义的Z曲线的阶数和维度,生成Z值zvalue
步骤4,将(zvalue,rowkey)元组插入该时间段的B+-tree。
局部索引不仅需要负责索引存储在本地节点上的时空数据,同时还需要发布索引摘要到全局索引中。同时为了进一步减少False Positive查询以及减少存储压力,局部索引还需要根据查询记录,定期动态地调整索引摘要发布的范围。
局部索引在索引时空数据时先对时间进行划分,再对每个时间段内的数据使用UB-tree来构建空间索引。UB-tree的核心是降维方法和底层的B+-tree。B+-tree中存储了大量的数据,索引摘要为描述该B+-tree所存数据的特征,是一个不相交范围的集合。一个Z值如果存储在B+-tree中,那么它肯定在该集合包含的范围之内。反之则不然,一个属于集合范围内的Z值则可能不存储在该B+-tree中。
以图4所示,一个B+-tree的索引摘要就是图中所有黑色节点表示的范围集合,一个节点的范围是以该节点为根的树的最小值和最大值,不同节点的范围必然是不相交的。从上到下表示了索引摘要的动态发布过程,左侧方框意味着收缩一个摘要范围,即把孩子节点表示范围集合收缩为一个父亲节点表示的范围。右侧方框意味着拓展一个范围,即把父亲节点表示的范围由几个孩子节点的范围集合替代。
索引范围的收缩主要是考虑到内存大小是受限的,同时在全局索引中存储索引摘要的数据结构实际上是一个动态数组,因此不能无限地拓展摘要。在需要时也有必要收缩摘要的范围。而索引摘要的拓展则主要是考虑到B+-tree是磁盘索引,每次查询是一个耗时的操作,有些节点不包含待查数据却参与了查询造成了性能的浪费,因此有必要减少类似的False Positive查询。
索引发布模块在冷启动时选择发布到第二层节点,随后根据查询记录动态调整是否拓展到下一层。因此局部索引在接收上层的查询请求时,先经过索引发布模块,如果不在局部索引的索引摘要范围内,则不用查询B+-tree,否则查询B+-tree,索引发布模块则需要记录余下查询是否成功,并记录查询发生的时间点。系统需要定期检查索引摘要,如果一个索引摘要的False Postive 查询比值达到阈值,则需要把该索引摘要拓展到下一层。索引摘要的收缩则主要综合考虑冷却时间和拓展层数,如果一个索引摘要拓展层数多于设定的层数阈值并且查询间隔时间高于设定的间隔阈值,则收缩至上一层。
当局部索引收到一个时空范围查询时,首先提取出时间参数区间,根据时间参数区间判断哪些B+-tree需要参与查询,然后把空间参数区间转换成Z值集合,从索引发布模块过滤掉部分无效Z值,并使用Z值集合获取到rowKey 集合,更新索引发布模块的记录,最后从HBase中获取到相应的数据后并返回。
不过以此获得的数据中可能存在部分数据不在查询时间的区间内,此部分的数据则由给客户端模块负责过滤。
全局索引模块的主要功能是存储局部索引模块发布的索引摘要,并对外提供查询的接口,其核心思想是过滤出可能包含查询要求时空数据的节点,以便客户端模块可以向这些节点直接请求数据。索引摘要的形式是一个四元组 tuple=<timeIndex,left,right,ip>,其中timeIndex表示的是时间序号, left和right则代表一个范围的左值和右值,ip则代表索引摘要来自哪个机器。对于全局索引的查询可以表示为query=<timeIndex,left,right>,该查询返回一个ip的集合,代表集合内的机器可能包含查询要求数据,需要向这些节点发送请求获取数据。全局索引实例被组织在一个Overlay网络中,由于P-Tree 路由表的更新策略不如Baton,且其和P-Grid都不是平衡树,因此在面对数据倾斜时性能较差。考虑这些因素后,本发明使用Baton作为Overlay网络。
Baton(BAlanced Tree Overlay Network)把所有节点组织成一颗平衡树,每个节点负责存储属于某一个范围的数据,其不仅支持属性的点查询,同样也支持属性的范围查询。在一个有N节点的Baton网络中,点查询和范围查询最多经过log N步就可以得到响应。
一个Baton网络的结构如图5所示,Baton网络在拓扑上是一颗平衡二叉树,树中的每一个节点对应Overlay网络中的一个节点。每个节点都负责维护着level、number、parent、leftchild、rightchild、leftadjacent、 rightadjacent、lower、upper等9个属性,同时还维护着一个左路由表和右路由表。其中,level代表该节点在Baton中的层级,例如根节点的层级为0,以此类推;number则代表该节点在某一层是第几个节点,默认从1开始编号。层级L上最多有2L节点,不管节点是否真实存在,都默认从左到右编号;parent 记录父节点的相关信息;leftchild和rightchild分别记录左孩子节点和右孩子节点的相关信息;leftadjacent和rightadjacent分别记录前驱节点和后继节点的相关信息,中序遍历该平衡树决定了前驱和后继的关系,因此第一个节点没有前驱节点,最后一个节点没有后继节点;lower和upper则表示该节点可以存储哪些信息,对于数据的键在[lower,upper)的范围内,应该存储在该节点。左右路由表则分别记录左右两个方向的详细节点信息,在插入数据和查询数据时需要根据左右路由表来判断请求下一跳应该交给哪一个节点来处理。
一个Baton网络提供的核心API如下表所示:
表1 Baton API
本发明需要插入的数据是一个四元组,其形式类似于四元组(timeIndex,left,right,ip),元组核心是一个时间序号timeIndex以及一个范围[left, right),将其插入Baton网络并非不可行,例如以左值left或右值right作为 key,根据Baton网络的路由规则插入数据。但是这么做会使得查询的效率偏低,因为在考虑插入时只考虑一个点,而没有考虑范围长度的影响。参考相关设计,可以考虑为Baton网络中的节点增加一个属性:子树范围,即以该节点为根的树管理的范围。在选择插入时考虑节点的子树范围是否包含了该范围。在原 Baton网络中,数据存储在一个动态数组中,考虑到插入的元组中有timeIndex 属性,因此使用哈希表和动态数组的组合来存储实际的数据。
局部索引发布的索引摘要是一个四元组tuple=<timeIndex,left,right, ip>。其中timeIndex表示该索引摘要的时间序号,left和right表示索引摘要范围的左值和右值,ip则表示该索引摘要来自哪一个机器。
以插入索引摘要tuple=<timeIndex,left,right,ip>为例,索引摘要的发布过程如下所示。
(1)根据Baton网络的路由规则找到适合存储tuple.left的节点N。
(2)如果N的子树范围包括了[tuple.left,tuple.right),把tuple存储在该节点,同时判断右孩子的子树范围是否与tuple相交,相交则设置右孩子的tagValues,跳出循环;否则设置N的tagValues,并且令N等于N的父节点,继续步骤(2)。
上述操作平均可以在log N步内完成。同时为了在查询时减少向上查找的次数,每个节点针对不同的timeIndex需要存储两个值tagValues以供查询时判断使用。
一个摘要查询可以定义为query=<timeIndex,left,right>,其中 timeIndex是时间序号,left和right是待查询摘要的左值和右值,因此摘要查询的过程实际上就是在Baton网络中查找时间序号为timeIndex,且与[left, right)相交的索引摘要的ip集合,因此可以总结为:首先寻找到第一个子树范围包括查询范围的节点,从该节点开始广播查询子节点的内容,同时根据 tagValues的内容判断是否需要向父节点查找是否包含内容,由最后一个节点负责返回查询结果。
客户端模块主要是用来封装时空范围查询的API,并对外提供一个简单的调用接口,简化操作。以跨云时空范围查询Q为例,客户端模块的主要步骤可描述如下:
1.对于跨云时空范围查询Q,将其中的空间范围转化为Z值的数组,将时间范围转化为时间序号。
2.根据时间序号的区分,将Z值的数组整合后转化为索引摘要查询,向全局索引发出查询请求,并得到返回结果。
3.根据返回的结果,再次封装查询请求,向相应的局部索引节点请求数据,获得结果。
4.根据时间范围返回过滤掉部分结果,并最后整合结果返回。
客户端模块的整体调用逻辑比较简单,在实现时主要注意并行化操作,加快查询速度。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (7)
1.一种面向云际环境的时空数据索引方法,其特征在于,使用双层索引的方式支持跨云时空范围查询,所述双层索引的方式为对云内节点存储的时空数据,先时间划分时空数据再使用UB-tree对该时间间隔内的时空数据建立空间索引,最后把局部索引的索引摘要发布到全局索引中。
2.如权利要求1所述的方法,其特征在于,所述UB-tree采用降维方式,即把多维数据降为一维数据后再存储在B+-tree中,所述降维方式使用空间填充曲线完成,所述空间填充曲线为Z曲线,其中,d维空间Rd到1维空间R的一一映射关系,则Rd→R为Z曲线,如果点p∈Rd,那么Z(p)∈R,则Z(p)为点P的Z值,所述d为正整数。
3.如权利要求2所述的方法,其特征在于,所述局部索引的构建方式为:步骤1,以一定时间为间隔,使用UB-tree来索引该时间段内的时空数据,所述数据格式为<rowkey,devicesn,x,y,timestamp,clusterid,attrs),其中rowkey是NoSQL存储该记录时使用的主键,devicesn是设备标识,timestamp是记录产生时的时间戳,x和y分别为记录的经纬度,clusterid代表记录所属的云标识,attrs为其余所有的属性;步骤2,根据timestamp属性判断该记录应该插入哪个时间段内的B+-tree;步骤3,根据x和y属性,以及预定义的Z曲线的阶数和维度,生成Z值zvalue;步骤4,将(zvalue,rowkey)元组插入该B+-tree。
4.如权利要求3所述的方法,其特征在于,所述局部索引发布包括拓展摘要范围和收缩摘要范围,所述B+-tree的索引摘要的节点范围是以该节点为根的树的最小值和最大值,所述收缩摘要范围是把B+-tree中孩子节点表示范围集合收缩为一个父亲节点表示的范围,所述拓展摘要范围是把父亲节点表示的范围由若干个孩子节点的范围集合替代。
5.如权利要求4所述的方法,其特征在于,所述索引发布的方式为,在冷启动时选择发布到B+-tree的第二层节点,然后根据查询记录动态调整是否拓展到下一层,所述动态调整的方式为,局部索引在接收上层的查询请求时,先经过索引发布模块,如果不在局部索引的索引摘要范围内,则不用查询B+-tree,否则查询B+-tree,索引发布模块则需要记录余下查询是否成功,并记录查询发生的时间点,如果一个Z值在索引摘要范围内而不存储在B+-tree中则视为一次False Positive查询,定期检查索引摘要,如果所述索引摘要的FalsePostive查询比值达到阈值,则需要把所述索引摘要拓展到下一层,如果一个索引摘要拓展层数多于设定的层数阈值并且查询间隔时间高于设定的间隔阈值,则收缩至上一层。
6.如权利要求4所述的方法,其特征在于,所述局部索引采用时空查询的方式,当局部索引收到一个时空范围查询时,首先提取出时间参数区间,根据时间参数区间判断哪些B+-tree需要参与查询,然后把空间参数区间转换成Z值集合,过滤掉部分无效Z值,并使用该Z值集合从B+-tree中获取到rowKey集合,更新索引发布模块的记录,最后从数据库中获取到相应的数据后并返回。
7.如权利要求5所述的方法,其特征在于,局部索引发布的索引摘要是一个四元组tuple=<timeIndex,left,right,ip>,其中timeIndex表示该索引摘要的时间序号,left和right表示索引摘要范围的左值和右值,ip则表示该索引摘要来自哪一个机器,索引摘要的发布过程为:
步骤1,根据Baton网络的路由规则找到适合存储tuple.left的节点N。
步骤2,如果N的子树范围包括了[tuple.left,tuple.right),把tuple存储在该节点,同时判断右孩子的子树范围是否与tuple相交,相交则设置右孩子的tagValues,跳出循环;否则设置N的tagValues,并且令N等于N的父节点,继续步骤2。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910540829.3A CN110347680B (zh) | 2019-06-21 | 2019-06-21 | 一种面向云际环境的时空数据索引方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910540829.3A CN110347680B (zh) | 2019-06-21 | 2019-06-21 | 一种面向云际环境的时空数据索引方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110347680A true CN110347680A (zh) | 2019-10-18 |
CN110347680B CN110347680B (zh) | 2021-11-12 |
Family
ID=68182591
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910540829.3A Active CN110347680B (zh) | 2019-06-21 | 2019-06-21 | 一种面向云际环境的时空数据索引方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110347680B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111708778A (zh) * | 2020-06-09 | 2020-09-25 | 樊馨 | 一种大数据管理的方法与系统 |
CN112035863A (zh) * | 2020-07-20 | 2020-12-04 | 江苏傲为控股有限公司 | 一种基于智能合约方式的电子合同取证方法及系统 |
CN113297199A (zh) * | 2020-06-24 | 2021-08-24 | 阿里巴巴集团控股有限公司 | 时空数据引擎的使用方法、装置及Cassandra数据库系统 |
CN113688193A (zh) * | 2020-05-19 | 2021-11-23 | 北京京东振世信息技术有限公司 | 轨迹数据的存储与索引方法、装置、电子设备及可读介质 |
CN113742350A (zh) * | 2021-09-09 | 2021-12-03 | 北京中安智能信息科技有限公司 | 基于机器学习模型的时空索引构建方法和装置及查询方法 |
WO2022105372A1 (zh) * | 2020-11-17 | 2022-05-27 | 京东城市(北京)数字科技有限公司 | 时空关联数据的查询方法、装置、电子设备和存储介质 |
CN117112492A (zh) * | 2023-08-25 | 2023-11-24 | 中南林业科技大学 | 一种自适应的时空大数据分布式存储方法及智能文件系统 |
CN117591757A (zh) * | 2023-10-31 | 2024-02-23 | 和智信(山东)大数据科技有限公司 | 轨迹数据处理方法及装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102063486A (zh) * | 2010-12-28 | 2011-05-18 | 东北大学 | 一种面向多维数据管理的云计算平台查询处理方法 |
CN103617162A (zh) * | 2013-10-14 | 2014-03-05 | 南京邮电大学 | 一种对等云平台上构建希尔伯特r树索引的方法 |
CN104598631A (zh) * | 2015-02-05 | 2015-05-06 | 北京航空航天大学 | 分布式数据处理平台 |
CN105117497A (zh) * | 2015-09-28 | 2015-12-02 | 上海海洋大学 | 基于Spark云网络的海洋大数据主从索引系统及方法 |
CN106897374A (zh) * | 2017-01-19 | 2017-06-27 | 浙江大学 | 一种基于轨迹大数据最近邻查询的个性化推荐方法 |
WO2018103830A1 (en) * | 2016-12-06 | 2018-06-14 | Huawei Technologies Co., Ltd. | A method and system for searchable encrypted cloud storage of media data |
-
2019
- 2019-06-21 CN CN201910540829.3A patent/CN110347680B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102063486A (zh) * | 2010-12-28 | 2011-05-18 | 东北大学 | 一种面向多维数据管理的云计算平台查询处理方法 |
CN103617162A (zh) * | 2013-10-14 | 2014-03-05 | 南京邮电大学 | 一种对等云平台上构建希尔伯特r树索引的方法 |
CN104598631A (zh) * | 2015-02-05 | 2015-05-06 | 北京航空航天大学 | 分布式数据处理平台 |
CN105117497A (zh) * | 2015-09-28 | 2015-12-02 | 上海海洋大学 | 基于Spark云网络的海洋大数据主从索引系统及方法 |
WO2018103830A1 (en) * | 2016-12-06 | 2018-06-14 | Huawei Technologies Co., Ltd. | A method and system for searchable encrypted cloud storage of media data |
CN106897374A (zh) * | 2017-01-19 | 2017-06-27 | 浙江大学 | 一种基于轨迹大数据最近邻查询的个性化推荐方法 |
Non-Patent Citations (3)
Title |
---|
H. V. JAGADISH: "BATON: A Balanced Tree Structure for", 《NONE》 * |
SAI WU ET AL.: "Efficient B-tree based indexing for cloud data processing", 《PROCEEDINGS OF THE VLDB ENDOWMENT》 * |
杨学毅: "云平台下时空数据存储与索引机制的研究", 《吉林大学》 * |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113688193A (zh) * | 2020-05-19 | 2021-11-23 | 北京京东振世信息技术有限公司 | 轨迹数据的存储与索引方法、装置、电子设备及可读介质 |
CN113688193B (zh) * | 2020-05-19 | 2024-05-17 | 北京京东振世信息技术有限公司 | 轨迹数据的存储与索引方法、装置、电子设备及可读介质 |
CN111708778A (zh) * | 2020-06-09 | 2020-09-25 | 樊馨 | 一种大数据管理的方法与系统 |
CN113297199A (zh) * | 2020-06-24 | 2021-08-24 | 阿里巴巴集团控股有限公司 | 时空数据引擎的使用方法、装置及Cassandra数据库系统 |
CN113297199B (zh) * | 2020-06-24 | 2024-03-08 | 阿里巴巴集团控股有限公司 | 时空数据引擎的使用方法、装置及Cassandra数据库系统 |
CN112035863A (zh) * | 2020-07-20 | 2020-12-04 | 江苏傲为控股有限公司 | 一种基于智能合约方式的电子合同取证方法及系统 |
CN112035863B (zh) * | 2020-07-20 | 2024-05-03 | 傲为有限公司 | 一种基于智能合约方式的电子合同取证方法及系统 |
WO2022105372A1 (zh) * | 2020-11-17 | 2022-05-27 | 京东城市(北京)数字科技有限公司 | 时空关联数据的查询方法、装置、电子设备和存储介质 |
CN113742350A (zh) * | 2021-09-09 | 2021-12-03 | 北京中安智能信息科技有限公司 | 基于机器学习模型的时空索引构建方法和装置及查询方法 |
CN117112492A (zh) * | 2023-08-25 | 2023-11-24 | 中南林业科技大学 | 一种自适应的时空大数据分布式存储方法及智能文件系统 |
CN117112492B (zh) * | 2023-08-25 | 2024-03-12 | 中南林业科技大学 | 一种自适应的时空大数据分布式存储方法及智能文件系统 |
CN117591757A (zh) * | 2023-10-31 | 2024-02-23 | 和智信(山东)大数据科技有限公司 | 轨迹数据处理方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN110347680B (zh) | 2021-11-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110347680A (zh) | 一种面向云际环境的时空数据索引方法 | |
CN106528773B (zh) | 一种基于Spark平台支持空间数据管理的图计算系统及方法 | |
CN106372114B (zh) | 一种基于大数据的联机分析处理系统和方法 | |
CN106709067B (zh) | 一种基于Oracle数据库的多源异构空间数据流转方法 | |
Rocha-Junior et al. | Top-k spatial keyword queries on road networks | |
CN102063486B (zh) | 一种面向多维数据管理的云计算平台查询处理方法 | |
CN106933833B (zh) | 一种基于空间索引技术的位置信息快速查询方法 | |
CN103995861B (zh) | 一种基于空间关联的分布式数据装置、方法及系统 | |
CN102270232B (zh) | 一种存储优化的语义数据查询系统 | |
CN103218404B (zh) | 一种基于关联特性的多维元数据管理方法和系统 | |
CN103019728B (zh) | 一种高效复杂报表解析引擎及其解析方法 | |
CN111930767B (zh) | 一种基于多层缓存的矢量瓦片实时切片和更新方法 | |
CN110147377A (zh) | 大规模空间数据环境下基于二级索引的通用查询算法 | |
CN110059067A (zh) | 一种水利空间矢量大数据存储管理方法 | |
CN113626550B (zh) | 基于三元组双向索引与优化缓存的影像瓦片地图服务方法 | |
CN108804602A (zh) | 一种基于spark的分布式空间数据存储计算方法 | |
CN109144966A (zh) | 一种海量时空数据的高效组织与管理方法 | |
CN104376053A (zh) | 一种基于海量气象数据的存储与检索方法 | |
CN110765331B (zh) | 一种时空数据的检索方法及系统 | |
CN110175175A (zh) | 一种基于spark的分布式空间二级索引与范围查询算法 | |
CN115238015A (zh) | 一种基于微服务的时空大数据平台 | |
CN116541427B (zh) | 数据查询方法、装置、设备及存储介质 | |
CN103678550A (zh) | 一种基于动态索引结构的海量数据实时查询方法 | |
CN114328779A (zh) | 基于云计算高效检索浏览的地理信息云盘 | |
Du et al. | Spatio-temporal data index model of moving objects on fixed networks using hbase |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |