本发明涉及数据库技术领域,尤其涉及一种轨迹数据查询的方法及装置。
背景技术:
众所周知,轨迹包含一连串的地理位置。然而随着科技的发展,轨迹除包含地理位置这个特性外,还可以包括时间标签。也就是说,轨迹可以由一连串带有时间标签的地理位置组成,这在理论上可理解为“在三维空间中,一条轨迹由多个包含时间和地理位置的数据构成”。而且这些轨迹的数据可以存放在时空数据库中以便用户查询。
目前,用户对轨迹数据的查询可以通过时空索引技术实现。首先,建立时空索引。如图1所示,对数据库中的所有轨迹数据划分成小的时空区域,每个小的时空区域(即如图1所示的小立方体)称为一个索引的叶子节点(indexleafnode)。然后,当收到用户所要查询的轨迹数据时,对数据库中相关的时空区域(即如图1所示的大立方体)内的所有叶子节点进行扫描并统计,通过扫描就能得出用户所要查询的轨迹数据的统计结果。
但是,上述方式需要对用户所要查询轨迹数据对应的时空区域进行扫描才能得出用户所需的结果,当用户所要查询轨迹数据量庞大时,其所对应的时空区域也就很庞大,在扫描这个庞大的时空区域就需要消耗很长时间。
技术实现要素:
本发明的实施例提供一种轨迹数据查询的方法及装置,能够极大缩短查询轨迹数据的时间。
本发明的第一方面,提供一种轨迹数据查询方法,该方法包括:
对时空数据库中的轨迹数据建立时空索引和倒排索引(invertedindex),其中,所述倒排索引用于,形成包含每个轨迹与其相关联的索引叶子节点之间对应关系的第一关系对应表,其中所述每个轨迹与其相关联的索引叶子节点的关联形式包括:所述轨迹的中间部分穿过一个索引叶子节点,所述轨迹的始端或末端在一个索引叶子节点中,所述轨迹完全在一个索引叶子节点中;
接收用户的轨迹数据查询,其中所述用户的轨迹数据查询包括,所述用户对所述时空数据库中的一个空间区域进行指定,以统计所述空间区域内的数据结果;
对所述指定的空间区域所包含的索引叶子节点进行采样,其中确定所述空间区域内的索引叶子节点数目以及采样得到的索引叶子节点数目;
根据所述采样得到的索引叶子节点以及所述第一关系对应表,确定所述采样得到的索引叶子节点中包含的每个轨迹与所述轨迹相关联的索引叶子节点之间的对应关系,形成第二关系对应表;
根据所述空间区域内的索引叶子节点数目、所述采样得到的索引叶子节点数目以及所述第二关系对应表中的数据,确定无偏估计算子,计算确定查询结果。
在第一方面的第一种可能的实现方式中,所述形成包含每个轨迹与其相关联的索引叶子节点之间对应关系的第一关系对应表包括:
通过所述时空索引的方式确定所述时空数据库中的所有索引叶子节点;
基于所述时空数据库中的每个轨迹,确定所述每个轨迹相关联的索引叶子节点;
存储所述每个轨迹与其相关联的索引叶子节点之间的对应关系,形成第一关系对应表。
结合第一方面或第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述对所述空间区域所包含的索引叶子节点进行采样,其中确定所述空间区域内的索引叶子节点数目以及采样得到的索引叶子节点数目具体为:
对所述指定的空间区域所包含的n个索引叶子节点进行有放回式的随机采样,得到b个可重复的索引叶子节点,其中n>b,n、b均为正整数。
结合第一方面或第一方面的第一种可能的实现方式或第一方面的第二种可能的实现方式,在第一方面的第三种可能的实现方式中,所述根据所述采样得到的索引叶子节点以及所述第一关系对应表,确定所述采样得到的索引叶子节点中包含的每个轨迹与所述轨迹相关联的索引叶子节点之间的对应关系,形成第二关系对应表包括:
根据所述采样得到的索引叶子节点,列出所述索引叶子节点中所包含的多个轨迹;
从所述第一关系对应表中获取所述多个轨迹中每一个轨迹相关联的至少一个索引叶子节点;
判断所述至少一个索引叶子节点是否存在于所述采样得到的索引叶子节点,若判断结果为存在,则保留所述轨迹对应的索引叶子节点,并将其对应关系记录在第二关系对应表中。
结合第一方面的第三种可能的实现方式,在第一方面的第四种可能的实现方式中,在所述根据所述采样得到的索引叶子节点,列出所述索引叶子节点中所包含的多个轨迹之后,所述方法还包括:
确定所述列出的多个轨迹中是否存在重复出现的轨迹,若其中有轨迹再次出现,则所述再次出现的轨迹不列出,从而保证得到不重复的多个轨迹;
此种情况下,所述从所述第一关系对应表中获取所述多个轨迹中每一个轨迹相关联的至少一个索引叶子节点具体为:
从所述第一关系对应表中获取所述不重复的多个轨迹中每一个轨迹相关联的至少一个索引叶子节点。
结合第一方面或第一方面的上述各个可能的实现方式中的任意一种实现方式,在第一方面的第五种可能的实现方式中:
所述根据所述空间区域内的索引叶子节点数目、所述采样得到的索引叶子节点数目,以及所述第二关系对应表中的数据,确定无偏估计算子,计算确定查询结果包括:
分别计算所述第二关系对应表中每个轨迹对应的索引叶子节点数目;
根据所述空间区域内的索引叶子节点数目、所述采样得到的索引叶子节点数目、所述第二关系对应表中的轨迹的数目、每个所述轨迹在所述时空区域内对应经过的索引叶子节点的数目,结合概率统计方法和大数定理确定无偏估计算子,根据所述无偏估计算子计算确定查询结果,
其中,所述结合概率统计方法和大数定理确定无偏估计算子具体为,确定包括所述指定区域内的所有叶子节点信息的真实值表达式,然后在所述指定区域内对所述所有叶子节点进行采样,通过使用采样得到的叶子节点信息并结合大数定理确定无偏估计算子,来估计所述真实值表达式得出的真实值。
结合第一方面的第五种可能的实现方式,在第一方面的第六种可能的实现方式中,当所述用户的轨迹数据查询为查询轨迹数目时,确定以下无偏估计算子,计算确定查询结果:
其中,
结合第一方面的第五种可能的实现方式,在第一方面的第七种可能的实现方式中,当所述用户的轨迹数据查询为查询轨迹特性时,确定以下无偏估计算子,计算确定查询结果:
其中,
结合第一方面的第五种可能的实现方式,在第一方面的第八种可能的实现方式中,
当所述用户的轨迹数据查询为查询轨迹特性平均值时,确定以下无偏估计算子,计算确定查询结果:
其中,
本发明的第二方面,提供一种轨迹数据查询装置,该装置包括:
建立单元,用于对时空数据库中的轨迹数据建立时空索引和倒排索引,其中,所述倒排索引用于,形成包含每个轨迹与其相关联的索引叶子节点之间对应关系的第一关系对应表,其中所述每个轨迹与其相关联的索引叶子节点的关联形式包括:所述轨迹的中间部分穿过一个索引叶子节点,所述轨迹的始端或末端在一个索引叶子节点中,所述轨迹完全在一个索引叶子节点中;
接收单元,用于接收用户的轨迹数据查询,其中所述用户的轨迹数据查询包括,所述用户对所述时空数据库中的一个空间区域进行指定,以统计所述空间区域内的数据结果;
采样单元,用于对所述指定的的空间区域所包含的索引叶子节点进行采样,其中确定所述空间区域内的索引叶子节点数目以及采样得到的索引叶子节点数目;
确定单元,用于根据所述采样单元采样得到的索引叶子节点以及所述第一关系对应表,确定所述采样得到的索引叶子节点中包含的每个轨迹与所述轨迹相关联的索引叶子节点之间的对应关系,形成第二关系对应表;以及,用于根据所述空间区域内的索引叶子节点数目、所述采样得到的索引叶子节点数目以及所述第二关系对应表中的数据,确定无偏估计算子,计算确定查询结果。
在第二方面的第一种可能的实现方式中,所述建立单元具体用于:
通过所述时空索引的方式确定所述时空数据库中的所有索引叶子节点;
基于所述时空数据库中的每个轨迹,确定所述每个轨迹相关联的索引叶子节点;
存储所述每个轨迹与其相关联的索引叶子节点之间的对应关系,形成第一关系对应表。
结合第二方面或第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,所述采样单元具体用于:
对所述指定的空间区域所包含的n个索引叶子节点进行有放回式的随机采样,得到b个可重复的索引叶子节点,其中n>b,n、b均为正整数。
结合第二方面或第二方面的第一种可能的实现方式或第二方面的第二种可能的实现方式,在第二方面的第三种可能的实现方式中,所述确定单元包括:
确定模块,用于根据所述采样得到的索引叶子节点,列出所述索引叶子节点中所包含的多个轨迹;
获取模块,用于从所述第一关系对应表中获取所述多个轨迹中每一个轨迹相关联的至少一个索引叶子节点;
判断模块,用于判断所述获取模块获取的至少一个索引叶子节点是否存在于所述采样单元采样得到的索引叶子节点,若判断结果为存在,则保留所述轨迹对应的索引叶子节点,并将其对应关系记录在第二关系对应表中。
结合第二方面的第三种可能的实现方式,在第二方面的第四种可能的实现方式中,所述确定模块还用于:
确定所述列出的多个轨迹中是否存在重复出现的轨迹,若其中有轨迹再次出现,则所述再次出现的轨迹不列出,从而保证得到不重复的多个轨迹;
此种情况下,所述获取模块具体用于:
从所述第一关系对应表中获取所述确定模块确定的不重复的多个轨迹中每一个轨迹相关联的至少一个索引叶子节点。
结合第二方面或第二方面的上述各个可能的实现方式中的任意一种实现方式,在第二方面的第五种可能的实现方式中,所述确定单元具体用于:
分别计算所述第二关系对应表中每个轨迹对应的索引叶子节点数目;
根据所述空间区域内的索引叶子节点数目、所述采样得到的索引叶子节点数目、所述第二关系对应表中的轨迹的数目、每个所述轨迹在所述时空区域内对应经过的索引叶子节点的数目,结合概率统计方法和大数定理确定无偏估计算子,根据所述无偏估计算子计算确定查询结果,
其中,所述结合概率统计方法和大数定理确定无偏估计算子具体为,确定包括所述指定区域内的所有叶子节点信息的真实值表达式,然后在所述指定区域内对所述所有叶子节点进行采样,通过使用采样得到的叶子节点信息并结合大数定理确定无偏估计算子,来估计所述真实值表达式得出的真实值。
本发明的第三方面,提供一种轨迹数据查询装置,该装置包括:
处理器,用于对时空数据库中的轨迹数据建立时空索引和倒排索引,其中,所述倒排索引用于,形成包含每个轨迹与其相关联的索引叶子节点之间对应关系的第一关系对应表,其中所述每个轨迹与其相关联的索引叶子节点的关联形式包括:所述轨迹的中间部分穿过一个索引叶子节点,所述轨迹的始端或末端在一个索引叶子节点中,所述轨迹完全在一个索引叶子节点中;
接收器,用于接收用户的轨迹数据查询,其中所述用户的轨迹数据查询包括,所述用户对所述时空数据库中的一个空间区域进行指定,并统计所述空间区域内的数据结果;
所述处理器还用于,对所述指定的的空间区域所包含的索引叶子节点进行采样,其中确定所述空间区域内的索引叶子节点数目以及采样得到的索引叶子节点数目;根据所述采样单元采样得到的索引叶子节点以及所述第一关系对应表,确定所述采样得到的索引叶子节点中包含的每个轨迹与所述轨迹相关联的索引叶子节点之间的对应关系,形成第二关系对应表;以及,用于根据所述空间区域内的索引叶子节点数目、所述采样得到的索引叶子节点数目以及所述第二关系对应表中的数据,确定无偏估计算子,计算确定查询结果。
在第三方面的第一种可能的实现方式中,所述处理器具体用于:
通过所述时空索引的方式确定所述时空数据库中的所有索引叶子节点;
基于所述时空数据库中的每个轨迹,确定所述每个轨迹相关联的索引叶子节点;
存储所述每个轨迹与其相关联的索引叶子节点之间的对应关系,形成第一关系对应表。
结合第三方面或第三方面的第一种可能的实现方式,在第三方面的第二种可能的实现方式中,所述处理器具体用于:
对所述指定的空间区域所包含的n个索引叶子节点进行有放回式的随机采样,得到b个可重复的索引叶子节点,其中n>b,n、b均为正整数。
结合第三方面或第三方面的第一种可能的实现方式或第三方面的第二种可能的实现方式,在第三方面的第三种可能的实现方式中,所述处理器具体用于:
根据所述采样得到的索引叶子节点,列出所述索引叶子节点中所包含的多个轨迹;
从所述第一关系对应表中获取所述多个轨迹中每一个轨迹相关联的至少一个索引叶子节点;以及
判断所述获取模块获取的至少一个索引叶子节点是否存在于所述采样单元采样得到的索引叶子节点,若判断结果为存在,则保留所述轨迹对应的索引叶子节点,并将其对应关系记录在第二关系对应表中。
结合第三方面的第三种可能的实现方式,在第三方面的第四种可能的实现方式中,所述处理器具体用于:
确定所述列出的多个轨迹中是否存在重复出现的轨迹,若其中有轨迹再次出现,则所述再次出现的轨迹不列出,从而保证得到不重复的多个轨迹;以及
从所述第一关系对应表中获取所述确定模块确定的不重复的多个轨迹中每一个轨迹相关联的至少一个索引叶子节点。
结合第三方面或第三方面的上述各个可能的实现方式中的任意一种实现方式,在第三方面的第五种可能的实现方式中,所述处理器具体用于:
分别计算所述第二关系对应表中每个轨迹对应的索引叶子节点数目;以及
根据所述空间区域内的索引叶子节点数目、所述采样得到的索引叶子节点数目、所述第二关系对应表中的轨迹数目、所述每个轨迹在所述时空区域内对应经过的索引叶子节点的数目,结合概率统计方法和大数定理确定无偏估计算子,根据所述无偏估计算子计算确定查询结果,
其中,所述结合概率统计方法和大数定理确定无偏估计算子具体为,确定包括所述指定区域内的所有叶子节点信息的真实值表达式,然后在所述指定区域内对所述所有叶子节点进行采样,通过使用采样得到的叶子节点信息并结合大数定理确定无偏估计算子,来估计所述真实值表达式得出的真实值。
本发明提供的轨迹数据查询的方法及装置,对时空数据库中的轨迹数据建立时空索引和倒排索引;其中所述倒排索引用于,形成包含每个轨迹与其相关联的索引叶子节点之间对应关系的第一关系对应表;接下来,接收用户的轨迹数据查询,其中所述用户的轨迹数据查询包括,所述用户对所述时空数据库中的一个空间区域进行指定,对该指定的空间区域所包含的索引叶子节点进行采样,其中确定所述空间区域内的索引叶子节点数目以及采样得到的索引叶子节点数目;并根据采样得到的索引叶子节点以及第一关系对应表,确定采样得到的索引叶子节点中包含的每个轨迹与所述轨迹相关联的索引叶子节点之间的对应关系,形成第二关系对应表;然后,根据空间区域内的索引叶子节点数目、采样得到的索引叶子节点数目以及第二关系对应表中的数据,确定查询结果。从上可看出,除建立时空索引外本发明还建立了倒排索引,由此可根据这两个索引确定采样后的索引叶子节点所包含的轨迹和该轨迹相关联的索引叶子节点之间的对应关系,也即形成了第二关系对应表;从而可根据空间区域内的索引叶子节点数目、采样得到的索引叶子节点数目以及第二关系对应表中的数据,确定无偏估计算子,计算确定查询结果。这种通过建立时空索引和倒排索引、基于采样的方式,能够避免在查询相关的时空区域内扫描所有轨迹数据的问题,从而缩短了查询时间,提高了查询效率,节约了系统资源。并且通过无偏估计算子计算确定的查询结果具有较高的准确率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为现有技术建立时空索引的示例性示意图;
图2为本发明实施例一提供的轨迹数据查询的方法的一种流程示意图;
图3为本发明实施例二提供的轨迹数据查询的方法的一种流程示意图;
图4为为本发明实施例三提供的轨迹数据查询的装置的一种结构示意图;
图5为本发明实施例三提供的轨迹数据查询的装置的另一种结构示意图;
图6为本发明实施例四提供的轨迹数据查询的装置的一种结构示意图;
图7为本发明实施例四提供的轨迹数据查询的装置的另一种结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其它实施例,都属于本发明保护的范围。
首先需要说明的是,在时空数据库中存在多个时空点,该时空点具有时间、经度、纬度的时空信息,同时该时空点还具有标识信息,这样,具有相同标识信息的时空点可形成一条轨迹。另外,在时空数据库中还存在索引叶子节点,索引叶子节点为人为规定的最小单位的空间区域,该索引叶子节点包括时间范围内的多个时空点。由于时空点具有时间、经度、纬度的时空信息,因此索引叶子节点也具有这样的时空信息。
本发明实施例一提供了一种轨迹数据查询的方法,如图2所示,该方法包括以下步骤:
s11,对时空数据库中的轨迹数据建立时空索引和倒排索引,其中,倒排索引用于,形成包含每个轨迹与其相关联的索引叶子节点之间对应关系的第一关系对应表。
此步骤中,“每个轨迹与其相关联的索引叶子节点”的关联形式可包括以下三种形式:第一种形式,一条轨迹穿过一个索引叶子节点,也即该条轨迹的中间部分在该索引叶子节点中;第二种形式,一条轨迹的始端或末端在一个索引叶子节点中;第三种形式,一条轨迹完全在一个索引叶子节点中。
此步骤中,由于轨迹数据具有时间和空间的特性,因此在查询轨迹数据前需要建立索引。现有技术中仅建立空间索引,用于确定所述数据库中的所有索引叶子节点。其中建立索引的方法可采用例如quad-tree,b-tee,b+-tree等方法。但在本发明中,除建立空间索引外,还建立了倒排索引。该倒排索引用于形成包含每个轨迹与其相关联的索引叶子节点之间对应关系的第一关系对应表。
可选地,在本发明一个具体实施例中,建立倒排索引以形成包含每个轨迹与其相关联的索引叶子节点之间对应关系的第一关系对应表的步骤可分为以下步骤:
111,通过时空索引的方式确定数据库中的所有索引叶子节点;
112,基于时空数据库中的每个轨迹,确定所述每个轨迹相关联的索引叶子节点;
可理解的,时空数据库中的每个轨迹可以跨越至少一个索引叶子节点,而且一般情况下,一个轨迹不能够跨越时空数据库中的所有索引叶子节点,因此需要确定每个轨迹相关联的索引叶子节点。
113,存储所述每个轨迹与其相关联的索引叶子节点之间的对应关系,形成第一关系对应表。
在步骤113中,每个索引叶子节点还具有id信息。也即,可对每个索引叶子节点设定对应的id(identity,身份标识),因此在第一关系对应表中,每个轨迹与其相关联的索引叶子节点之间的对应关系具体为,每个轨迹与其相关联的至少一个索引叶子节点的id之间存在对应关系。
需要说明的是,通过上述建立倒排索引能够地得到时空数据库中的每个轨迹与其相关联的索引叶子节点之间的对应关系。
可理解地,上述的空间索引和倒排索引不会在每次查询前重新建立。也即,空间索引和倒排索引一旦建立后,将其建立的索引数据进行存储。该存储数据可应用于多次查询,从而节省了查询时间。当然,本领域技术人员可根据经验定期更新建立该空间索引和倒排索引,本发明在此不做限定。
s12,接收用户的轨迹数据查询,其中用户的轨迹数据查询包括,用户对时空数据库中的一个空间区域进行指定,以统计该空间区域内的数据结果。
此步骤中,用户的轨迹数据查询通常包括查询范围和查询目的。举例而言,如果用户的轨迹数据查询为“在2013年期间北京市范围内的出租车载客轨迹的数目”,则其中的“2013年期间”、“北京市范围内”为查询范围;其中的“出租车载客轨迹的数目”为查询目的。可理解的,当用户给出一个查询范围时,也即指定了对时空数据库中的的某个空间区域进行查询。
s13,对指定的空间区域所包含的索引叶子节点进行采样,其中确定该空间区域内的索引叶子节点数目以及采样得到的索引叶子节点数目。
可选地,在本发明一个具体实施例中,步骤s13具体包括:
对所述确定的空间区域所包含的n个索引叶子节点进行有放回式的随机采样,得到b个可重复的索引叶子节点,其中n>b,n、b均为正整数。
由此,每次采样得到的索引叶子节点被记录后,再放回原来所在的空间区域中,从而每次采样时空间区域中的索引叶子节点总是为n个。
其中,采样方法可以是任何采样算法,除了本发明实施例中的有放回式的随机采样,还可以采用其它采样方式,例如有放回式的有偏采样、或不放回式的有偏采样等。
s14,根据采样得到的索引叶子节点以及第一关系对应表,确定采样得到的索引叶子节点中包含的每个轨迹与所述轨迹相关联的索引叶子节点之间的对应关系,形成第二关系对应表。
其中,需注意的是,在本发明实施例中,第二关系对应表是动态形成的。也即,当用户对轨迹数据进行不同的查询时,则所生成第二关系对应表的内容也是不同的。由此可理解,本发明实施例侧重于如何生成第二关系对应表,而不是第二关系对应表本身。
可选地,在本发明一个具体实施例中,步骤s14具体包括:
141,根据采样得到的索引叶子节点,列出所述索引叶子节点中所包含的多个轨迹;
142,从所述第一关系对应表中获取多个轨迹中每一个轨迹相关联的至少一个索引叶子节点;
143,判断所述至少一个索引叶子节点是否存在于所述采样得到的索引叶子节点,若判断结果为存在,则保留所述轨迹对应的索引叶子节点,并将其对应关系记录在第二关系对应表中。
需说明的是,从第一关系对应表中获取多个轨迹中每一个轨迹相关联的至少一个索引叶子节点,其中该索引叶子节点可能位于所述时空区域内,也可能位于所述时空区域之外,经过上述判断过程,则仅仅保留了在所述时空区域内的索引叶子节点。
进一步地,在本发明的一个具体实施例中,在上述步骤141之后,还可包括以下步骤:
确定所列出的多个轨迹中是否存在重复出现的轨迹,若其中有轨迹再次出现,则所述再次出现的轨迹不列出,从而保证得到不重复的多个轨迹;
这种情况下,步骤142具体为:从所述第一关系对应表中获取所述不重复的多个轨迹中每一个轨迹相关联的至少一个索引叶子节点。
需说明的是,通过以上将重复轨迹剔除的步骤可以减少步骤143中“至少一个索引叶子节点是否存在于所述采样得到的索引叶子节点”的判断次数,从而缩短判断时间,提高效率。
s15,根据空间区域内的索引叶子节点数目、采样得到的索引叶子节点数目,以及所述第二关系对应表中的数据,确定无偏估计算子,计算确定查询结果。
可选地,在本发明的一个具体实施例中,步骤s15具体包括:
151,分别计算所述第二关系对应表中每个轨迹对应的索引叶子节点数目;
152,根据空间区域内的索引叶子节点数目、采样得到的索引叶子节点数目、第二关系对应表中的轨迹的数目、每个所述轨迹在所述时空区域内对应经过的索引叶子节点的数目,结合概率统计方法和大数定理确定无偏估计算子,根据所述无偏估计算子计算确定查询结果。其中,“结合概率统计方法和大数定理确定无偏估计算子”具体分为以下步骤:首先,确定包括所述指定区域内的所有叶子节点信息的真实值表达式;然后,在所述指定区域内对所述所有叶子节点进行采样,通过使用采样得到的叶子节点信息并结合大数定理确定无偏估计算子,来估计所述真实值表达式得出的真实值。
需说明的是,无偏估计算子可如上述步骤预先确定,一旦无偏估计算子被确定下来,则可直接应用于以后相同或类似的查询。
当步骤152中的公式采用无偏估计计算时,经发明人试验证明,利用采样的轨迹数据确定的查询结果的准确率达到95%以上,因此,采样数据通过无偏估计确定查询结果具有较高的准确率。
可理解的,本发明实施例也可采用有偏估计或其它估计算子,对此本发明不做具体限定。
可选地,在本发明的一个具体实施例中,当用户的轨迹数据的查询为查询轨迹数目(countquery)时,确定以下无偏估计算子,计算确定查询结果:
其中,
其中,q表示与用户查询范围相关的时空区域;n表示采样前时空区域q内所有的索引叶子节点数目;b表示采样后的索引叶子节点数目,特别地,当采样方式为放回式的随机采样时,这b个叶子节点是可以有重复的,也即每个采样的叶子节点都是独立的从q中的所有叶子节点中随机选取的;r表示根据b个索引叶子节点和采样后得到的第二关系对应表得到的轨迹;
可选地,在本发明的一个具体实施例中,当用户的轨迹数据的查询为查询轨迹特性(sumquery)时,确定以下无偏估计算子,计算确定查询结果:
其中,
其中,q表示与用户查询范围相关的时空区域;n表示采样前时空区域q内所有的叶子节点数目;b表示采样后的叶子节点数目,特别地,当采样方式为放回式的随机采样时,这b个叶子节点是可以有重复的,也即每个采样的叶子节点都是独立的从q中的所有叶子节点中随机选取的;r表示根据b个索引叶子节点和采样后得到的第二关系对应表得到的轨迹;lr表示轨迹r的轨迹特性,该轨迹特性例如公里数,跨越街区的数目,经历时长,等等轨迹的统计特性等;
可选地,在本发明的一个具体实施例中,当用户的轨迹数据的查询为查询轨迹特性平均值(averagequery)时,确定以下无偏估计算子,计算确定查询结果:
其中,
其中,q表示与用户查询范围相关的时空区域;n表示采样前时空区域q内所有的叶子节点数目;b表示采样后的叶子节点数目,特别地,当采样方式为放回式的随机采样时,这b个叶子节点是可以有重复的,也即每个采样的叶子节点都是独立的从q中的所有叶子节点中随机选取的;r表示根据b个索引叶子节点和采样后得到的第二关系对应表得到的轨迹;lr表示轨迹r的轨迹特性,例如公里数,跨越街区的数目,经历时长等轨迹的统计特性;
本发明实施例一提供的轨迹数据查询的方法,对时空数据库中的轨迹数据建立时空索引和倒排索引,其中所述倒排索引用于,形成包含每个轨迹与其相关联的索引叶子节点之间对应关系的第一关系对应表;接下来,接收用户的轨迹数据查询,其中用户的轨迹数据查询包括,用户对所述时空数据库中的一个空间区域进行指定,然后对该指定的空间区域所包含的索引叶子节点进行采样,其中确定该空间区域内的索引叶子节点数目以及采样得到的索引叶子节点数目;并根据采样得到的索引叶子节点以及第一关系对应表,确定采样得到的索引叶子节点中包含的每个轨迹与所述轨迹相关联的索引叶子节点之间的对应关系,形成第二关系对应表;然后,根据空间区域内的索引叶子节点数目、采样得到的索引叶子节点数目以及第二关系对应表中的数据,确定无偏估计算子,计算确定查询结果。从上可看出,除建立时空索引外本发明还建立了倒排索引,由此可根据这两个索引确定采样后的索引叶子节点所包含的轨迹和该轨迹相关联的索引叶子节点之间的对应关系,也即形成了第二关系对应表;从而可根据空间区域内的索引叶子节点数目、采样得到的索引叶子节点数目以及第二关系对应表中的数据,确定查询结果。这种通过建立时空索引和倒排索引、基于采样的方式,能够避免在查询相关的时空区域内扫描所有轨迹数据的问题,从而缩短了查询时间,提高了查询效率,节约了系统资源。并且通过无偏估计算子计算确定的查询结果具有较高的准确率。
需要说明的是,本发明实施例的应用场景不仅限于从时空数据库中查询一些轨迹数据,也可应用于与轨迹数据查询相关的场景。举例而言,当运营商想利用轨迹数据给其它行业实体店,例如麦当劳,提供店铺选址服务。如果麦当劳要求店铺开在人流量最大的地方,则可以通过我们的快速轨迹查询,迅速选出若干目标区域,给店铺选址做建议规划。另外,交通规划部门可以基于城市出租车轨迹数据,查询城市各个时空区域的打车需求分布,从而找出哪里该修建出租车停靠站。
实施例二
为了本领域技术人员更好的理解本发明实施例提供的轨迹数据查询的方法的技术方案,下面通过具体的实施例对本发明提供的轨迹数据的查询为轨迹数目为例进行详细说明。
当用户下发的轨迹数据查询为“查询北京市朝阳区2013年所有出租车载客轨迹的数目”时,其中“出租车载客轨迹的数目”为查询目的,而“北京市朝阳区2013年”为查询范围,该查询对应时空数据库中一个特定的时空区域。如图3所示,具体进行以下步骤:
1000、对存储有出租车轨迹数据的数据库预先建立的时空索引和倒排索引;
其中,建立空间索引,用于确定所述数据库中的所有索引叶子节点;建立倒排索引,用于形成包含每个轨迹与其相关联的索引叶子节点id之间对应关系的第一关系对应表。
1001,根据所接收的轨迹数据查询范围,在存储有出租车轨迹数据的数据库中找到与“北京市朝阳区2013年”相关的时空区域q;
1002,计算该时空区域q内所有的索引叶子节点数目n;
1003,针对该时空区域内的所有索引叶子节点进行有放回式的随机采样,得到采样后的可重复的索引叶子节点数目b,其中n>b,n、b均为正整数;
其中,由于为放回式的随机采样,因此这b个叶子节点是可以有重复的,也即每个采样的叶子节点都是独立的从q中的所有叶子节点中随机选取的。此外,索引叶子节点数目可由本领域技术人员根据实际情况灵活设定,本发明在此不做限定。
1004,根据采样得到的索引叶子节点,列出每一个索引叶子节点中所包含的多个轨迹;
1005,确定所列出的多个轨迹中是否存在重复出现的轨迹,若其中有轨迹再次出现,则所述再次出现的轨迹不列出,从而得到不重复的多个轨迹;
1006,从建立好的第一关系对应表中获取所述不重复的多个轨迹中每一个轨迹相关联的至少一个索引叶子节点的id;
1007,将至少一个索引叶子节点的id与采样得到的索引叶子节点的id相比较,若比较结果相同,则保留所述轨迹对应的索引叶子节点,并将其对应关系记录在第二关系对应表中;
1008,分别计算所述第二关系对应表中每个轨迹对应的索引叶子节点数目,得到
1009,将上述各个参数代入上述公式(1)得出计算结果,该计算结果即为用户此次查询的结果。
通过上述步骤,能够在极短时间内得出查询结果,从而提高了查询效率,并节约了系统资源。
另外,当轨迹数据的查询目的为轨迹特性查询时,举例而言,当查询为“查询北京市朝阳区2013年所有出租车载客轨迹的行驶距离总里程”时,在上述步骤1000-1009的基础上,再计算第二关系对应表中每个轨迹对应的公里数,即可应用公式(2)得出用户所要查询的结果。
以及,当轨迹数据的查询目的为轨迹特性平均值查询时,举例而言,当查询为“查询北京市朝阳区2013年所有出租车载客轨迹的平均速度”时,在上述步骤1000-1009的基础上,再计算第二关系对应表中每个轨迹对应的公里数,以及应用公式(3)即可得出用户所要查询的结果。
实施例三
相应地,本发明的实施例三还提供了一种轨迹数据查询的装置40,如图4所示,该装置40包括:
建立单元401,用于对数据库中的轨迹数据建立时空索引和倒排索引,其中,所述倒排索引用于,形成包含每个轨迹与其相关联的索引叶子节点之间对应关系的第一关系对应表,其中每个轨迹与其相关联的索引叶子节点的关联形式包括:轨迹的中间部分穿过一个索引叶子节点,轨迹的始端或末端在一个索引叶子节点中,轨迹完全在一个索引叶子节点中;
接收单元402,用于接收用户的轨迹数据查询,其中用户的轨迹数据查询包括,用户对时空数据库中的一个空间区域进行指定,以统计所述空间区域内的数据结果;
采样单元403,用于对指定的空间区域所包含的索引叶子节点进行采样,其中确定所述空间区域内的索引叶子节点数目以及采样得到的索引叶子节点数目;
确定单元404,用于根据采样单元403采样得到的索引叶子节点以及所述第一关系对应表,确定所述采样得到的索引叶子节点中包含的每个轨迹与所述轨迹相关联的索引叶子节点之间的对应关系,形成第二关系对应表;以及,用于根据空间区域内的索引叶子节点数目、采样得到的索引叶子节点数目以及所述第二关系对应表中的数据,确定无偏估计算子,计算确定查询结果。
本发明实施例三提供的轨迹数据查询的装置40,建立单元401对时空数据库中的轨迹数据建立时空索引和倒排索引,其中所述倒排索引用于,形成包含每个轨迹与其相关联的索引叶子节点之间对应关系的第一关系对应表;接收单元402接收的轨迹数据查询,其中所述用户的轨迹数据查询包括用户对时空数据库中的一个空间区域进行指定,采样单元403对指定的空间区域所包含的索引叶子节点进行采样,其中确定该空间区域内的索引叶子节点数目以及采样得到的索引叶子节点数目;确定单元404根据采样单元403采样得到的索引叶子节点以及第一关系对应表,确定采样得到的索引叶子节点中包含的每个轨迹与所述轨迹相关联的索引叶子节点之间的对应关系,形成第二关系对应表;以及确定单元404还根据空间区域内的索引叶子节点数目、采样得到的索引叶子节点数目以及第二关系对应表中的数据,确定无偏估计算子,计算确定查询结果。从上可看出,建立单元401除建立时空索引外本发明还建立了倒排索引,由此确定单元404可根据这两个索引确定采样后的索引叶子节点所包含的轨迹和该轨迹相关联的索引叶子节点之间的对应关系,也即形成了第二关系对应表;从而确定单元404可根据空间区域内的索引叶子节点数目、采样得到的索引叶子节点数目以及第二关系对应表中的数据,确定无偏估计算子,计算确定查询结果。这种上述建立时空索引和倒排索引并基于采样的装置40,能够避免在查询相关的时空区域内扫描所有轨迹数据的问题,从而缩短了查询时间,提高了查询效率,节约了系统资源。并且通过无偏估计算子计算确定的查询结果具有较高的准确率。
可选地,在本发明的一个具体实施例中,建立单元401具体用于:
通过时空索引的方式确定所述时空数据库中的所有索引叶子节点;
基于时空数据库中的每个轨迹,确定所述每个轨迹相关联的索引叶子节点;
存储所述每个轨迹与其相关联的索引叶子节点之间的对应关系,形成第一关系对应表。
可选地,在本发明的一个具体实施例中,采样单元403具体用于:
对指定的空间区域所包含的n个索引叶子节点进行有放回式的随机采样,得到b个可重复的索引叶子节点,其中n>b,n、b均为正整数。
可选地,在本发明的一个具体实施例中,如图5所示,确定单元404包括:
确定模块4041,用于根据所述采样得到的索引叶子节点,列出所述索引叶子节点中所包含的多个轨迹;
获取模块4042,用于从所述第一关系对应表中获取所述多个轨迹中每一个轨迹相关联的至少一个索引叶子节点;
判断模块4043,用于判断所述获取模块获取的至少一个索引叶子节点是否存在于所述采样单元采样得到的索引叶子节点,若判断结果为存在,则保留所述轨迹对应的索引叶子节点,并将其对应关系记录在第二关系对应表中。
进一步地,在本发明的一个具体实施例中,确定模块4041还用于:
确定所述列出的多个轨迹中是否存在重复出现的轨迹,若其中有轨迹再次出现,则所述再次出现的轨迹不列出,从而保证得到不重复的多个轨迹;
此种情况下,获取模块4042具体用于:
从第一关系对应表中获取所述确定模块确定的不重复的多个轨迹中每一个轨迹相关联的至少一个索引叶子节点。
可选地,在本发明的一个具体实施例中,确定单元404具体用于:
分别计算所述第二关系对应表中每个轨迹对应的索引叶子节点数目;
根据空间区域内的索引叶子节点数目、采样得到的索引叶子节点数目、所述第二关系对应表中的轨迹的数目、每个所述轨迹在所述时空区域内对应经过的索引叶子节点的数目,结合概率统计方法和大数定理确定无偏估计算子,根据所述无偏估计算子计算确定查询结果,其中,所述结合概率统计方法和大数定理确定无偏估计算子具体为,确定包括所述指定区域内的所有叶子节点信息的真实值表达式,然后在所述指定区域内对所述所有叶子节点进行采样,通过使用采样得到的叶子节点信息并结合大数定理确定无偏估计算子,来估计所述真实值表达式得出的真实值。
需要说明的是,本发明实施例三提供的轨迹数据查询装置40的各结构单元的具体功能请参见前文方法实施例一或二。
实施例四
相应地,本发明的实施例四还提供了一种轨迹数据查询的装置60,如图6所示,该装置60包括:
处理器601,用于对时空数据库中的轨迹数据建立时空索引和倒排索引,其中,所述倒排索引用于,形成包含每个轨迹与其相关联的索引叶子节点之间对应关系的第一关系对应表,其中每个轨迹与其相关联的索引叶子节点的关联形式包括:轨迹的中间部分穿过一个索引叶子节点,所述轨迹的始端或末端在一个索引叶子节点中,轨迹完全在一个索引叶子节点中;
接收器602,用于接收用户的轨迹数据查询,其中用户的轨迹数据查询包括,用户对所述时空数据库中的一个空间区域进行指定,并统计该空间区域内的数据结果;
所述处理器601还用于,对指定的空间区域所包含的索引叶子节点进行采样,其中确定所述空间区域内的索引叶子节点数目以及采样得到的索引叶子节点数目;根据所述采样单元采样得到的索引叶子节点以及所述第一关系对应表,确定所述采样得到的索引叶子节点中包含的每个轨迹与所述轨迹相关联的索引叶子节点之间的对应关系,形成第二关系对应表;以及,用于根据空间区域内的索引叶子节点数目、采样得到的索引叶子节点数目以及第二关系对应表中的数据,确定无偏估计算子,计算确定查询结果。
本发明实施例四提供的轨迹数据查询装置60,处理器601对时空数据库中的轨迹数据建立时空索引和倒排索引,其中倒排索引用于,形成包含每个轨迹与其相关联的索引叶子节点之间对应关系的第一关系对应表;当接收器602接收轨迹数据查询,其中用户的轨迹数据查询包括用户对所述时空数据库中的一个空间区域进行指定时,处理器601对指定的空间区域所包含的索引叶子节点进行采样,其中确定该空间区域内的索引叶子节点数目以及采样得到的索引叶子节点数目;并根据采样得到的索引叶子节点以及第一关系对应表,确定采样得到的索引叶子节点中包含的每个轨迹与所述轨迹相关联的索引叶子节点之间的对应关系,形成第二关系对应表;以及还根据空间区域内的索引叶子节点数目、采样得到的索引叶子节点数目以及第二关系对应表中的数据,确定查询结果。从上可看出,处理器601除建立时空索引外本发明还建立了倒排索引,由此可根据这两个索引确定采样后的索引叶子节点所包含的轨迹和该轨迹相关联的索引叶子节点之间的对应关系,也即形成了第二关系对应表;从而可根据空间区域内的索引叶子节点数目、采样得到的索引叶子节点数目以及第二关系对应表中的数据,确定无偏估计算子,计算确定查询结果。上述建立时空索引和倒排索引并基于采样的装置60,能够避免在查询相关的时空区域内扫描所有轨迹数据的问题,从而缩短了查询时间,提高了查询效率,节约了系统资源。并且通过无偏估计算子计算确定的查询结果具有较高的准确率。
可选地,在本发明的一个具体实施例中,如图7所示,处理器601具体用于:
通过时空索引的方式确定时空数据库中的所有索引叶子节点;基于数据库中的每个轨迹,确定所述每个轨迹相关联的索引叶子节点;以及,
存储器603,用于存储每个轨迹与其相关联的索引叶子节点之间的对应关系,形成第一关系对应表。
可选地,在本发明的一个具体实施例中,处理器601具体用于:
对指定的空间区域所包含的n个索引叶子节点进行有放回式的随机采样,得到b个可重复的索引叶子节点,其中n>b,n、b均为正整数。
可选地,在本发明的一个具体实施例中,处理器601具体用于:
根据采样得到的索引叶子节点,列出所述索引叶子节点中所包含的多个轨迹;从第一关系对应表中获取所述多个轨迹中每一个轨迹相关联的至少一个索引叶子节点;以及判断所述获取模块获取的至少一个索引叶子节点是否存在于所述采样单元采样得到的索引叶子节点,若判断结果为存在,则保留所述轨迹对应的索引叶子节点,并将其对应关系记录在第二关系对应表中。
可选地,在本发明的一个具体实施例中,处理器602具体用于:
确定所述列出的多个轨迹中是否存在重复出现的轨迹,若其中有轨迹再次出现,则所述再次出现的轨迹不列出,从而保证得到不重复的多个轨迹;以及从所述第一关系对应表中获取所述确定模块确定的不重复的多个轨迹中每一个轨迹相关联的至少一个索引叶子节点。
可选地,在本发明的一个具体实施例中,处理器601具体用于:
分别计算所述第二关系对应表中每个轨迹对应的索引叶子节点数目;以及根据空间区域内的索引叶子节点数目、采样得到的索引叶子节点数目、第二关系对应表中的轨迹的数目、每个轨迹在所述时空区域内对应经过的索引叶子节点的数目,结合概率统计方法和大数定理确定无偏估计算子,根据所述无偏估计算子计算确定查询结果,其中,所述结合概率统计方法和大数定理确定无偏估计算子具体为,确定包括所述指定区域内的所有叶子节点信息的真实值表达式,然后在所述指定区域内对所述所有叶子节点进行采样,通过使用采样得到的叶子节点信息并结合大数定理确定无偏估计算子,来估计所述真实值表达式得出的真实值。
需要说明的是,本发明实施例四提供的轨迹数据查询装置60的各结构单元的具体功能请参见前文方法实施例一或二。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,所述存储介质可以是只读存储器、磁盘或光盘等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。