CN109325089A - 一种非定点对象查询方法、装置、终端设备及存储介质 - Google Patents
一种非定点对象查询方法、装置、终端设备及存储介质 Download PDFInfo
- Publication number
- CN109325089A CN109325089A CN201811177498.3A CN201811177498A CN109325089A CN 109325089 A CN109325089 A CN 109325089A CN 201811177498 A CN201811177498 A CN 201811177498A CN 109325089 A CN109325089 A CN 109325089A
- Authority
- CN
- China
- Prior art keywords
- data
- value
- time series
- index value
- determines
- 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
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种非定点对象查询方法、装置、终端设备及存储介质。所述方法包括:根据查询请求查询预存的时序数据库,确定第一地理坐标数据,所述查询请求包括第一对象标识、第一时间戳、第一监控项和距离参数;根据所述第一地理坐标数据和距离参数确定第一索引值;根据所述第一索引值、第一时间戳和第一监控项检索所述时序数据库,确定第二对象标识。利用该方法能够实现对非定点对象的快速查询。
Description
技术领域
本发明实施例涉及数据处理技术领域,尤其涉及一种非定点对象查询方法、装置、终端设备及存储介质。
背景技术
目前地图定位是一个比较火爆的市场,我们的生活也正在被丰富的地理坐标应用所服务,例如我们的路线查询服务、附近定位查找固定的对象(酒店、美食等)的查询服务,让我们的出行变得越来越便利。
在地图定位中,地理坐标点位数据是随时间变化的海量数据。而通过时间段查询对象的地理坐标数据,再通过地理坐标数据查询范围内的附近点位对象是一种比较常见的需求场景。
目前附近的事务搜索比较成熟的方面主要是搜索定点对象,所谓定点对象是指在地理位置或者坐标不变的事务。而在搜索移动事务,即非定点对象上,则缺乏较成熟的应对措施或者应对技术。
发明内容
本发明实施例提供了一种非定点对象查询方法、装置、终端设备及存储介质,以实现了对非定点对象的快速查询。
第一方面,本发明实施例提供了一种非定点对象查询方法,包括:
根据查询请求查询预存的时序数据库,确定第一地理坐标数据,所述查询请求包括第一对象标识、第一时间戳、第一监控项和距离参数;
根据所述第一地理坐标数据和距离参数确定第一索引值;
根据所述第一索引值、第一时间戳和第一监控项检索所述时序数据库,确定第二对象标识。
第二方面,本发明实施例还提供了一种非定点对象查询装置,包括:
请求查询模块,用于根据查询请求查询预存的时序数据库,确定第一地理坐标数据,所述查询请求包括第一对象标识、第一时间戳、第一监控项和距离参数;
第一索引值确定模块,用于根据所述第一地理坐标数据和距离参数确定第一索引值;
对象标识确定模块,用于根据所述第一索引值、第一时间戳和第一监控项检索所述时序数据库,确定第二对象标识。
第三方面,本发明实施例还提供了一种终端设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明实施例提供的非定点对象查询方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明实施例提供的非定点对象查询方法。
本发明实施例提供了一种非定点对象查询方法、装置、终端设备及存储介质,利用上述技术方案,能够根据查询请求中的第一对象标识、第一时间戳和第一监控项查询时序数据库,确定第一地理坐标数据;然后基于第一地理坐标数据和距离参数确定第一索引值,以基于第一索引值、第一时间戳和第一监控项检索时序数据库确定第二对象标识,实现了对非定点对象的快速查询,将检索范围控制在较小范围内,提高了非定点对象查询的响应速度,提升了用户体验。
附图说明
图1为本发明实施例一提供的一种非定点对象查询方法的流程示意图;
图2a为本发明实施例二提供的一种非定点对象查询方法的流程示意图;
图2b示出了本发明实施例二中geohash算法原理示意图;
图3为本发明实施例三提供的一种非定点对象查询装置的结构示意图;
图4为本发明实施例四提供的一种终端设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
实施例一
图1为本发明实施例一提供的一种非定点对象查询方法的流程示意图,该方法可适用于在非定点对象地理坐标范围内查询附近对象的情况,具体地,该方法可适用于在非定点对象地理坐标范围内查询附近非定点对象的情况。该方法可以由非定点对象查询装置来执行,其中该装置可由软件和/或硬件实现,并一般集成在终端设备上,在本实施例中终端设备包括但不限于:计算机、个人数字助理或手机等设备。
附近对象的搜索可以包括搜索定点对象和非定点对象,这两方面的实现差异主要为:
定点对象的数据固定,地理坐标不会变化,从而在数据量上也是一个固定量,而固定量的数据检索查询只需要选择一种适当的数据库、设计好逻辑关系以及索引,甚至根据条件分表存储在关系型数据库,从而达到最高性能;非定点数据的地理位置或者地理坐标会随着时间变化而发生变化,具有时间序列性,随着时间的推移,这些非定点对象在本身就有一个庞大基数的基础上,地理坐标数据的数据量可能是一个几何倍数甚至指数级增长,要做到将所有非定点对象的地理坐标数据进行及时存储,并快速查询将是一个艰难甚至不可达任务。
对应海量的地理坐标点位数据,我们所挖掘到的服务仍然不够或者服务的效果仍然有限。目前行业内对非定点对象的地理坐标数据处理大部分是通过大数据环境,利用非关系型数据集群,通过不断的扩容去存储日益扩大的地理坐标点位数据。而随着不断的扩容和日益庞大的数据量,在查询单个对象的地理坐标方面,由于单个对象的条件限制查询范围较小,还可以勉强得到一个较好的响应;在查询该对象随着时间变化的地理坐标附近一定范围内的其他非定点对象,则由于查询范围无限扩大,而且地理坐标数据又无法作索引,在一个只有地理坐标范围的条件下查询所有非定点对象,响应速度可想而知;并且随着时间推移,数据量越来越大。本实施例提供的一种非定点对象查询方法可涉及大数据以及geohash算法领域,具体的说就是利用geohash算法为地理坐标数据进行特殊规律拆分,并利用时序数据库对时序数据的有效优化存储以及快速查询,提升海量数据下获取附近点位对象信息查询性能。
如图1所示,本发明实施例一提供的一种非定点对象查询,包括如下步骤:
S101、根据查询请求查询预存的时序数据库,确定第一地理坐标数据,所述查询请求包括第一对象标识、第一时间戳、第一监控项和距离参数。
在本实施例中,查询请求可以理解为触发对附近对象进行查询的请求信息。该查询请求可以由用户触发,用户可以理解为需要对非定点对象进行查询的人。时序数据库可以理解为预先构建的带时间标签的数据库。时序数据库可以对实时地理坐标数据进行优化存储,以供用户进行地理坐标数据的快速查询。第一地理坐标数据可以理解为基于查询请求确定的坐标数据,该第一地理坐标数据可以对应于第一对象标识。第一对象标识可以理解为用于标识被查询对象的标识信息。第一时间戳可以理解为查询的时间。第一监控项可以理解为查询的度量。距离参数可以理解为与被查询对象相差的距离值。
本步骤在确定第一地理坐标数据时,可以根据查询请求中的第一对象标识、第一时间戳和第一监控项查询时序数据库,确定对应的第一地理坐标数据。即,第一对象标识在第一时间戳时,第一监控项对应的监控值。
其中,时序数据库中可以存储有多个对象的实时地理坐标数据。存储的内容可以包括对象标识、时间戳、索引值、监控项和地理坐标数据(即监控值)。本步骤中的第一对象标识、第一时间戳及第一监控项中的“第一”仅用于区分各信息为查询阶段的数据。时序数据库中包括的对象标识、时间戳和监控项可以分别包括第一对象标识、第一时间戳和第一监控项。
S102、根据所述第一地理坐标数据和距离参数确定第一索引值。
在本实施例中,第一索引值可以理解为对第一地理坐标数据进行转译后基于距离参数选取的索引值。基于该第一索引值能够查询距离第一地理坐标数据该距离参数内的对象。
在对第一地理坐标数据进行转译时,可以采用经纬度地理编码算法或移动地理位置距离计算算法。示例性地,可以采用geohash算法对第一地理坐标数据进行转译,geohash算法将二维的经纬度转换为字符串,用一个字符串表示经度和纬度两个坐标。相应的,第一索引值可以为geohash值,geohash值表示的并不是一个点,而是一个矩形区域。比如编码wx4g0ec1,它表示的是一个矩形区域。编码的前缀可以表示更大的区域。
例如wx4g0ec1,它的前缀wx4g0e表示包含编码wx4g0ec1在内的更大范围。这个特性可以用于附近对象的搜索。首先根据用户当前坐标计算geohash(例如wx4g0ec1),然后取其前缀进行查询即可查询附近的所有对象。
不同位数的geohash值可以标识不同的范围区间,字符串越长,表示的范围越精确。在将第一地理坐标数据转换为geohash值后,本步骤可以基于距离参数从geohash值中提取对应位数的字符串作为第一索引值,以用于进行非定点对象查询。
S103、根据所述第一索引值、第一时间戳和第一监控项检索所述时序数据库,确定第二对象标识。
在本实施例中,第二对象标识可以理解为满足查询请求的对象。该第二对象标识可以为在距离第一对象标识对应的第一对象该距离参数位置处的对象的标识信息。
在确定第一索引值后,本步骤可以基于第一索引值、第一时间戳和第一监控项查询时序数据库确定出符合的第二对象标识,其中,第二对象标识可以为多个。确定出的各第二对象标识可以响应给用户。
本发明实施例一提供了一种非定点对象查询方法,利用上述方法,能够根据查询请求中的第一对象标识、第一时间戳和第一监控项查询时序数据库,确定第一地理坐标数据;然后基于第一地理坐标数据和距离参数确定第一索引值,以基于第一索引值、第一时间戳和第一监控项检索时序数据库确定第二对象标识,实现了对非定点对象的快速查询,将检索范围控制在较小范围内,提高了非定点对象查询的响应速度,提升了用户体验。
实施例二
图2a为本发明实施例二提供的一种非定点对象查询方法的流程示意图,本实施例二在上述各实施例的基础上进行优化。在本实施例中,进一步优化增加了:解析接入的数据包,确定地理坐标点位数据,所述地理坐标点位数据包括第二对象标识、第二时间戳和第二地理坐标;将所述第二地理坐标转换为geohash值;根据所述地理坐标点位数据和geohash值,构建时序数据库。
进一步地,本实施例还优化增加了:解析接入的数据包,确定基本数据,所述基本数据包括第二对象标识和对象基本属性信息;将所述基本数据存入hbase集群形成基本数据库。
在上述优化的基础上,将根据所述第一地理坐标数据和距离参数确定第一索引值,具体优化为:将所述第一地理坐标数据转换为geohash值;根据所述距离参数从geohash值中拆分出对应的第一索引值。
进一步地,本实施例还优化增加了:查询基本数据库确定所述第二对象标识对应的基本数据。本实施例尚未详尽的内容请参考实施例一。
如图2a所示,本发明实施例二提供的一种非定点对象查询方法,包括如下步骤:
S201、解析接入的数据包,确定地理坐标点位数据,所述地理坐标点位数据包括第二对象标识、第二时间戳和第二地理坐标。
一般大型企业都会有各种各样不同的应用或者程序,由这些用户注册或者使用进行记录的数据一般都会被各种应用数据库所储存。将这些数据进行整理,分类为地理坐标点位数据和基本数据,整体发包至点位分析系统(即执行非定点对象查询的终端设备),以用于进行点位分析。如将基本数据和地理坐标点位数据分别写入bcp文件后分别压缩打包发送至点位分析系统所在服务器的不同目录,供点位分析系统进行处理分析。
本实施例中,数据包则可以理解为终端设备接收到的整理后的数据,该数据可以为非定点对象实时点位数据。地理坐标点位数据可以理解为从数据包中解析出的非定点对象的带有时间戳的地理坐标数据。第二对象标识可以理解为用于标识该非定点对象的标识信息。第二地理坐标可以理解为非定点对象的位置信息。第二时间戳可以理解为用于描述该非定点对象该第二地理坐标是什么时间的。
本实施例中,可以将非定点对象的数据实时接入,接入后,本步骤可以对接入的数据包进行解析并分离出地理坐标点位数据,以便于对分离出的地理坐标点位数据进行优化存储形成时序数据库,以供后续进行查询。表1为地理坐标点位数据格式表。
主键id | 关联列(第二对象标识) | 经度 | 纬度 | 第二时间戳 |
表1地理坐标点位数据格式表
由表1可见,地理坐标点位数据存储时,第一行存储第二对象标识、第二时间戳和第二地理坐标(即经度和纬度),第二行可以存储对应的数值。其中主键id可以理解为行的标识信息。
S202、将所述第二地理坐标转换为geohash值。
在从数据包中解析出第二地理坐标后,本步骤可以采用geohash算法将第二地理坐标转换为geohash值,以用于构建时序数据库。
图2b示出了本发明实施例二中geohash算法原理示意图。如图2b所示,从横向上将方形纸21分为左右两份,左侧部分标识为0,右侧部分标识为1;再将A点22所在部分划分为左右两块,对A点22做同样的标识,从而可以得出A点22在横向上的标识为10;在纵向上对方形纸21做同样的划分,左侧标识为0,右侧标识为1,得出A点22位置在纵向上的标识为01;将横向标识和纵向标识合并,规则为纵向在奇数位,横向在偶数位,得出A点22在方形纸21上的标识为1001。需要注意的是,在进行合并时,也可以横纵相反,只要保证在整个系统中一致即可。
示例性地,对(116.276349,40.040875)这个点的经度划分:
1.经度在[-180,0)范围内的标识为0,经度范围在[0,180)度的标识为1;
2.继续划分,经度范围在[0,90)的标识为0,经度范围在[90,180)的标识为1;
3.基于上述划分方式,继续划分20次,方格的精度可达到2m,得到经度的标识二进制串为11010010101011110111;
4.对纬度同样划分,得到纬度的标识二进制串为10111000111100100111;
5.对经度和纬度对应的二进制串组合,得到40位的二进制串11011 01110 0001001110 11100 10111 01001 11111;
6.将该40位的二进制串使用base32编码,得到GeoHash编码为3OCO4XJ7;
那么GeoHash编码前缀为3OCO4XJ7的地理点就是离(116.276349,40.040875)两米内的点。编码越长,表示的范围越小,位置也越精确。因此可以通过比较GeoHash匹配的位数来判断两个点之间的大概距离,也可以通过距离参数限定两点大概距离,实现对第一对象附近第二对象的查询,即,通过查询请求确定第二对象标识。
geohash是采用一种逼近算法,将确定的经纬度在地球的整体经纬度(-90,90),(-180,180)进行分块,然后将确定的经纬度逐步逼近确定的块用二进制值表示,然后合并经纬度偶数位放经度,奇数位放纬度,最后使用0-9、b-z(去掉a,i,l,o)这32个字母进行base32编码,将经纬度转换成字符串,例如:wx4g0ec1。
S203、根据所述地理坐标点位数据和geohash值,构建时序数据库。
确定geohash值后,本步骤可以将geohash值按照长度拆分,如拆分为两位、三位、四位、五位、六位、七位、八位长度的字符串,然后将拆分后的字符串与第二地理坐标合并成为新的地理坐标点位数据。提供时序数据库对合并后的地理坐标点位数据进行优化存储,将单个非定点数据每小时的地理坐标点位数据进行合并,当作一条数据处理,同时将固定属性(即不随时间变化而变化的属性)当作标签,进行三个字节转译后与时间戳进行合并,当作存储key,从而极大的进行数据去冗余,在相当大的程度上减少数据存储量。同时根据不同的区域大块可以分块进行存储,并作索引处理。
在构建时序数据库时,可以将一小时内数据包整合为一行数据进行存储,以减少存储空间。
根据地理坐标点位数据和geohash值构建时序数据库后,可以在进行非定点对象查询时,基于查询请求查询时序数据库确定出对应的第二对象标识。
时序数据库的存储策略可以以OpenTSDB为参考。其中,OpenTSDB存储的一些核心概念:
1)Metric:即监控项。譬如经度,纬度。
2)Tags:就是一些标签,在OpenTSDB里面,Tags由tagk和tagv组成,即tagk=takv。标签是用来描述Metric的。
3)Value:一个Value表示一个metric的实际数值。
4)Timestamp:即时间戳,用来描述Value是什么时候的。
5)Data Point:即某个Metric在某个时间点的数值。
Data Point包括以下部分:Metric、Tags、Value、Timestamp。
OpenTSDB使用HBase存储,核心的存储,是有两张表,tsdb和tsdb-uid。tsdb是保存数据的。tsdb-uid可以是保存映射关系的。
tsdb的表结构包括:
1)RowKey的设计
RowKey设计类似metric|timestamp|tagk|tagv;但是区别是,OpenTSDB为了节省存储空间,将每个部分都做了映射。在OpenTSDB里面有这样的映射,metric-->3字节整数、tagk-->3字节整数、tagv-->3字节整数。
2)column的设计
为了方便后期更进一步的节省空间。OpenTSDB将一个小时的数据,保存在一行里面。
进一步地,根据所述地理坐标点位数据和geohash值,构建时序数据库,包括:
将所述geohash值按长度拆分,确定预设个数的第二索引值;
以各第二索引值和第二对象标识为标签,第二时间戳为索引,第二地理坐标中的坐标名称为第二监控项,第二地理坐标中的第二地理坐标数据为监控值,构建时序数据库。
其中,预设个数可以根据实际需求进行设定,如预设个数为7个,则在构建时序数据库时,可以首先将geohash值拆分成两位、三位、四位、五位、六位、七位、八位字符串作为第二索引值。
标签可以理解为是用于描述第二监控项的,监控值可以理解为第二监控项的实际数值。数据点(即datapoint)可以理解为监控项在某个时间点的数值。数据点可以包括第二监控项,标签,监控值和第二时间戳。
确定第二索引值后,可以以各第二索引值和第二对象标识为标签,第二时间戳为索引,第二地理坐标中的坐标名称为第二监控项,第二地理坐标中的第二地理坐标数据为监控值整合为时序数据库上的一个datapoint。然后可以根据时序数据库规则,将单个对象的每一小时内的所有datapoint组合为一行数据,将第二时间戳、该对象的标签及第二监控项作为索引进行存储,以压缩数量,减少存储占用的空间。
需要说明的是,第二索引值、第二对象标识、第二时间戳、第二监控项和监控值中“第二”仅用于区分,其表示各信息为存储阶段的数据。
其中,各第二索引值和第二对象标签为标签的结构可以参见表2。表2为时序数据库中标签集的结构。
表2时序数据库中标签集的结构
由表2可见,标签集中第一行可以存储第二对象标识,两位geohash值、三位geohash值等。第二行可以存储对应数值。
然后将metric例如经度,timestamp(即第二时间戳)与表3中各标签根据OpenTSDB的存储方案合并为一个RowKey,再将坐标信息进行存储,以构成时序数据库。
S204、解析接入的数据包,确定基本数据,所述基本数据包括第二对象标识和对象基本属性信息。
本步骤中数据包可以与S201中数据包为同一数据包,本步骤可以对接入的数据包进行解析并分离出基本数据,以便于形成基本数据库。本步骤中基本数据可以对应于S201中的地理坐标点位数据,通过第二对象标识建立对应关系。其中,S201对数据包进行解析分离出地理坐标点位信息,本步骤则可以对该数据包进行解析分离出基本数据。分离出的地理坐标点位数据和基本数据可以分别进行存储,以得到时序数据库和基本数据库,以便于后续进行点位分析。表3为基本数据格式表。
主键id | 关联列(第二对象标识) | 列1 | 列2 | 列3 | 列4 | 列5 |
表3基本数据格式表
由表3可见,基本数据格式第一行可以存储有表头如:主键id和第二对象标识等。第二行可以存储对应的数值。此处并不对基本数据格式表的列数进行限定。第一行中列1、列2、列3、列4和列5具体内容可以根据实际情况填写,如填写性别或年龄等。
S205、将所述基本数据存入hbase集群形成基本数据库。
在解析出基本数据后,本步骤可以对其进行丰富组合后进行对象化数据存储,形成基本数据库。可以理解的是,基本数据可认为是对非定点对象的属性进行补充的数据,当实时数据包接入后,非定点对象的基本属性可能会比较少,本步骤可以将所有属性组合作为一条数据。如将所有对象基本数据存入Hbase集群环境,当其他应用收到用户基本数据后对基本数据补充丰富至对应用户下。
需要说明的是,构建时序数据库的具体操作(即S201-S203)与形成基本数据库的具体操作(即S204-S205)的执行顺序不作限定,可以同时执行,也可以先形成基本数据库,再构建时序数据库。
S206、根据查询请求查询预存的时序数据库,确定第一地理坐标数据,所述查询请求包括第一对象标识、第一时间戳、第一监控项和距离参数。
在进行查询时,可以参见OpenTSDB的检索策略进行检索。基于第一时间戳和第一对象标识,再结合至少一个标签的kv对。如第一监控项,第一索引值。
S207、将所述第一地理坐标数据转换为geohash值。
本步骤可以采用geohash算法将第一地理坐标数据转译为geohash值。
S208、根据所述距离参数从geohash值中拆分出对应的第一索引值。
在将第一地理坐标数据转换为geohash值后,本步骤可以根据距离参数确定对应的第一索引值的位数,然后从geohash值中拆分出相应位数的字符串作为第一索引值,以基于该第一索引值进行非定点对象的查询。
S209、根据所述第一索引值、第一时间戳和第一监控项检索所述时序数据库,确定第二对象标识。
在确定出第一索引值后,本步骤可以将第一索引值、第一时间戳和第一监控项作为条件索引时序数据库,查询出符合条件的数据,即可以首先返回附近的第二对象标识。可以理解的是,查询出的第二对象标识可以有多个,各第二对象标识可以以列表的形式响应给用户。该用户可以理解为进行非定点对象查询的人。
S210、查询基本数据库确定所述第二对象标识对应的基本数据。
在查询出第二对象标识后,本步骤可以利用第二对象标识查询基本数据库确定第二对象标识对应的基本数据,并可以将查询出的基本数据异步响应给用户,达到快速响应的目的。
更加具体地,本实施例中的非定点对象查询方法可以提高非定点对象地理坐标范围内查询附近非定点对象的查询检索的响应时间,便捷的为用户提供服务,非定点对象查询方法的流程可以概括如下:
A.数据接入程序:将非定点对象的数据实时接入(即接入实时点位地理坐标数据流),并对数据包进行解析并分离对象数据为地理坐标点位数据(对象标识、时间戳、地理坐标)和基本数据(对象标识、对象基本属性信息)。对于抽离出的每条地理坐标点位:将地理坐标进行geohash算法换算为geohash值,geohash值为符合特殊规律的字符串,将字符串按照长度拆分,分别拆为两位、三位、四位、五位、六位、七位、八位长度的字符串与地理坐标数据进行合并,成为一条新的地理坐标点位;对于抽离出的基本信息:对基本信息进行丰富组合后进行对象化数据存储;
B.存储数据库:提供时序数据库对地理坐标点位数据进行优化存储,将单个非定点数据每小时的地理坐标点位数据进行合并,当作一条数据处理,同时将固定属性(不随时间变化而变化的属性)当作标签,进行三个字节的转译后与时间戳进行合并,当作存储key,这样极大的进行数据去冗余,能在相当大的程度上减少数据存储量,同时根据不同的区域大块可以分块进行存储,并作索引处理;提供hbase大数据集群对基本信息数据进行对象化数据存储;
C.数据检索接口服务(即大数据检索应用结构服务):根据确认的区域大块,时间范围(即时间戳)、固定属性集(至少一个固定属性)对地理坐标点位数据进行检索,得益于以上的三者条件,可以将检索范围控制在一个较小范围,并基于存储的优化和时序数据库的检索优化,可以快速提供响应,提升用户体验;根据对象标识对基本信息进行对象化数据检索,将基本信息与地理坐标点位数据异步响应给用户,逐步展开数据进行附近点位分析。
更加具体地:首先进行实时数据接入:对于实时接入的数据流,对数据进行解析拆分处理,拆分出对象标识、时间戳、地理坐标为地理坐标点位数据,拆分出对象标识、对象基本属性信息为基本数据;
然后进行数据以及存储处理:
i.地理坐标数据处理
将地理坐标通过geohash算法进行转译,算出geohash值,分别将两位、三位、四位、五位、六位、七位、八位geohash值,再根据时序数据库的存储结构,大的区域分块为一个metric存储度量,时间戳为关键索引、geohash值拆分的七个不同位数的字符串为7个tag标签与对象标识(如手机号、mac等)组成全部tags标签集,地理坐标数据为field;这些所有数据整合为时序数据库上的一个datapoint。
ii.地理坐标数据存储
根据时序数据库的规则,将单个对象的每一小时内的所有datapoint组合为一行数据,将时间戳、该对象的所有的tag集合、metric度量合并作为索引进行存储,压缩数据量,减少存储占用的空间。
iii.基本数据处理
基本数据是对非定点对象的属性进行补充的数据,当实时数据流接入后,非定点对象的基本属性可能会比较少,可以将所有属性结合作为一条数据。
iv.基本数据的存储
将所有的对象基本数据存入hbase集群环境,并当其他应用收集到用户基本数据后需要对基本数据进行补充丰富。
最后可以对单个对象某个时间的地理坐标查询以及附近非定点对象分析;
i.单个对象的地理坐标查询
根据已知的对象标识,时间戳、以及区域大块,查询对象的地理坐标信息。地理坐标查询在时序数据库的性能优化上可以得到很好的应用体现,可以快速响应用户请求。
ii.对象地理坐标的附近非定点对象分析
根据上一步获取单个对象某个时刻的地理坐标数据,以该地理坐标数据为条件、利用geohash算法获取该地理坐标数据的geohash值,拆分该geohash值为两位、三位、四位、五位、六位、七位、八位长度的字符串,可以以某一长度作为tag值(即标签值)、加上时间戳、大块区域作为条件检索时序数据库,查询出所有符合条件的数据;先返回该数据可以得到附近的对象标识,利用对象标识可以去对象基础信息库(即基本数据库)查询对象基本信息数据(即基本信息),并异步响应给用户,达到快速响应的目的。
其中,整体查询过程可以概括如下:
查询单个对象的地理坐标,然后判断是否有结果返回,若有则将地理坐标数据进行geohash算法转译;否则,结束。进行转译后,可以根据geohash值拆分的字符串查询时序数据库,然后判断是否有结果返回,若没有则结束,否则,获取查询出的对象标识并将对象标识返回用户。在此基础上,根据对象标识查询对象基本信息(即对象标识对应的基本数据),并返回给用户。
本发明实施例二提供的一种非定点对象查询方法,优化增加了构建时序数据库的操作、形成基本数据库的操作和查询基本数据的操作,此外还具体化了第一索引值确定操作。利用该方法,能够基于geohash算法和时序数据库的规则将接入的数据包进行优化存储,形成时序数据库和基本数据库,然后基于查询请求查询时序数据库确定第一地理坐标数据,然后基于该第一地理坐标数据转译后的geohash值和距离参数确定第一索引值。基于第一索引值、第一时间戳和第一监控项检索时序数据库确定第二对象标识。确定出第二对象标识后能够进一步基于基本数据库确定对应的基本数据,从而实现了对时序数据的有效存储和快速查询,提升海量数据下获取附近点位对象信息查询性能。
实施例三
图3为本发明实施例三提供的一种非定点对象查询装置的结构示意图,该装置可适用于在非定点对象地理坐标范围内查询附近对象的情况,具体地,该方法可适用于在非定点对象地理坐标范围内查询附近非定点对象的情况。其中该装置可由软件和/或硬件实现,并一般集成在终端设备上。
如图3所示,该非定点对象查询装置包括:请求查询模块31、第一索引值确定模块32和对象标识确定模块33;
其中,请求查询模块31,用于根据查询请求查询预存的时序数据库,确定第一地理坐标数据,所述查询请求包括第一对象标识、第一时间戳、第一监控项和距离参数;
第一索引值确定模块32,用于根据所述第一地理坐标数据和距离参数确定第一索引值;
对象标识确定模块33,用于根据所述第一索引值、第一时间戳和第一监控项检索所述时序数据库,确定第二对象标识。
在本实施例中,该装置首先通过请求查询模块31根据查询请求查询预存的时序数据库,确定第一地理坐标数据,所述查询请求包括第一对象标识、第一时间戳、第一监控项和距离参数;其次通过第一索引值确定模块32根据所述第一地理坐标数据和距离参数确定第一索引值;最后通过对象标识确定模块33根据所述第一索引值、第一时间戳和第一监控项检索所述时序数据库,确定第二对象标识。
本实施例提供了一种非定点对象查询装置,能够根据查询请求中的第一对象标识、第一时间戳和第一监控项查询时序数据库,确定第一地理坐标数据;然后基于第一地理坐标数据和距离参数确定第一索引值,以基于第一索引值、第一时间戳和第一监控项检索时序数据库确定第二对象标识,实现了对非定点对象的快速查询,将检索范围控制在较小范围内,提高了非定点对象查询的响应速度,提升了用户体验。
进一步地,非定点对象查询装置,优化包括了:
点位数据确定模块,用于解析接入的数据包,确定地理坐标点位数据,所述地理坐标点位数据包括第二对象标识、第二时间戳和第二地理坐标;
第一转换模块,用于将所述第二地理坐标转换为geohash值;
构建模块,用于根据所述地理坐标点位数据和geohash值,构建时序数据库。
在上述优化的基础上,构建模块,具体用于:将所述geohash值按长度拆分,确定预设个数的第二索引值;以各第二索引值和第二对象标识为标签,第二时间戳为索引,第二地理坐标中的坐标名称为第二监控项,第二地理坐标中的地理坐标数据为监控值,构建时序数据库。
基于上述技术方案,非定点对象查询装置,优化包括了:
基本数据确定模块,用于解析接入的数据包,确定基本数据,所述基本数据包括第二对象标识和对象基本属性信息;
形成模块,用于将所述基本数据存入hbase集群形成基本数据库。
进一步地,第一索引值确定模块32,具体用于:将所述第一地理坐标数据转换为geohash值;根据所述距离参数从geohash值中拆分出对应的第一索引值。
基于上述技术方案,非定点对象查询装置,优化包括了:
基本数据查询模块,用于查询基本数据库确定所述第二对象标识对应的基本数据。
上述非定点对象查询装置可执行本发明任意实施例所提供的非定点对象查询方法,具备执行方法相应的功能模块和有益效果。
实施例四
图4为本发明实施例四提供的一种终端设备的结构示意图。如图4所示,本发明实施例四提供的终端设备包括:一个或多个处理器41和存储装置42;该终端设备中的处理器41可以是一个或多个,图4中以一个处理器41为例;存储装置42用于存储一个或多个程序;所述一个或多个程序被所述一个或多个处理器41执行,使得所述一个或多个处理器41实现如本发明实施例中任一项所述的非定点对象查询方法。
所述终端设备还可以包括:输入装置43和输出装置44。
终端设备中的处理器41、存储装置42、输入装置43和输出装置44可以通过总线或其他方式连接,图4中以通过总线连接为例。
该终端设备中的存储装置42作为一种计算机可读存储介质,可用于存储一个或多个程序,所述程序可以是软件程序、计算机可执行程序以及模块,如本发明实施例一或二所提供非定点对象查询方法对应的程序指令/模块(例如,附图3所示的非定点对象查询装置中的模块,包括:请求查询模块31、第一索引值确定模块32和对象标识确定模块33)。处理器41通过运行存储在存储装置42中的软件程序、指令以及模块,从而执行终端设备的各种功能应用以及数据处理,即实现上述方法实施例中非定点对象查询方法。
存储装置42可包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端设备的使用所创建的数据等。此外,存储装置42可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储装置42可进一步包括相对于处理器41远程设置的存储器,这些远程存储器可以通过网络连接至设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置43可用于接收输入的数字或字符信息,以及产生与终端设备的用户设置以及功能控制有关的键信号输入。输出装置44可包括显示屏等显示设备。
并且,当上述终端设备所包括一个或者多个程序被所述一个或者多个处理器41执行时,程序进行如下操作:
根据查询请求查询预存的时序数据库,确定第一地理坐标数据,所述查询请求包括第一对象标识、第一时间戳、第一监控项和距离参数;根据所述第一地理坐标数据和距离参数确定第一索引值;根据所述第一索引值、第一时间戳和第一监控项检索所述时序数据库,确定第二对象标识。
实施例五
本发明实施例五提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时用于执行非定点对象查询方法,该方法包括:
根据查询请求查询预存的时序数据库,确定第一地理坐标数据,所述查询请求包括第一对象标识、第一时间戳、第一监控项和距离参数;根据所述第一地理坐标数据和距离参数确定第一索引值;根据所述第一索引值、第一时间戳和第一监控项检索所述时序数据库,确定第二对象标识。
可选的,该程序被处理器执行时还可以用于执行本发明任意实施例所提供的非定点对象查询方法。
本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(Random AccessMemory,RAM)、只读存储器(Read Only Memory,ROM)、可擦式可编程只读存储器(ErasableProgrammable Read Only Memory,EPROM)、闪存、光纤、便携式CD-ROM、光存储器件、磁存储器件、或者上述的任意合适的组合。计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于:电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、无线电频率(Radio Frequency,RF)等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)——连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (10)
1.一种非定点对象查询方法,其特征在于,包括:
根据查询请求查询预存的时序数据库,确定第一地理坐标数据,所述查询请求包括第一对象标识、第一时间戳、第一监控项和距离参数;
根据所述第一地理坐标数据和距离参数确定第一索引值;
根据所述第一索引值、第一时间戳和第一监控项检索所述时序数据库,确定第二对象标识。
2.根据权利要求1所述的方法,其特征在于,还包括:
解析接入的数据包,确定地理坐标点位数据,所述地理坐标点位数据包括第二对象标识、第二时间戳和第二地理坐标;
将所述第二地理坐标转换为geohash值;
根据所述地理坐标点位数据和geohash值,构建时序数据库。
3.根据权利要求2所述的方法,其特征在于,所述根据所述地理坐标点位数据和geohash值,构建时序数据库,包括:
将所述geohash值按长度拆分,确定预设个数的第二索引值;
以各第二索引值和第二对象标识为标签,第二时间戳为索引,第二地理坐标中的坐标名称为第二监控项,第二地理坐标中的第二地理坐标数据为监控值,构建时序数据库。
4.根据权利要求1所述的方法,其特征在于,还包括:
解析接入的数据包,确定基本数据,所述基本数据包括第二对象标识和对象基本属性信息;
将所述基本数据存入hbase集群形成基本数据库。
5.根据权利要求1所述的方法,其特征在于,所述根据所述第一地理坐标数据和距离参数确定第一索引值,包括:
将所述第一地理坐标数据转换为geohash值;
根据所述距离参数从geohash值中拆分出对应的第一索引值。
6.根据权利要求1所述的方法,其特征在于,还包括:
查询基本数据库确定所述第二对象标识对应的基本数据。
7.一种非定点对象查询装置,其特征在于,包括:
请求查询模块,用于根据查询请求查询预存的时序数据库,确定第一地理坐标数据,所述查询请求包括第一对象标识、第一时间戳、第一监控项和距离参数;
第一索引值确定模块,用于根据所述第一地理坐标数据和距离参数确定第一索引值;
对象标识确定模块,用于根据所述第一索引值、第一时间戳和第一监控项检索所述时序数据库,确定第二对象标识。
8.根据权利要求7所述的装置,其特征在于,还包括:
点位数据确定模块,用于解析接入的数据包,确定地理坐标点位数据,所述地理坐标点位数据包括第二对象标识、第二时间戳和第二地理坐标;
第一转换模块,用于将所述第二地理坐标转换为geohash值;
构建模块,用于根据所述地理坐标点位数据和geohash值,构建时序数据库。
9.一种终端设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-6中任一所述的非定点对象查询方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-6中任一所述的非定点对象查询方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811177498.3A CN109325089A (zh) | 2018-10-10 | 2018-10-10 | 一种非定点对象查询方法、装置、终端设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811177498.3A CN109325089A (zh) | 2018-10-10 | 2018-10-10 | 一种非定点对象查询方法、装置、终端设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109325089A true CN109325089A (zh) | 2019-02-12 |
Family
ID=65261663
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811177498.3A Pending CN109325089A (zh) | 2018-10-10 | 2018-10-10 | 一种非定点对象查询方法、装置、终端设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109325089A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111144696A (zh) * | 2019-11-28 | 2020-05-12 | 国电南瑞科技股份有限公司 | 一种基于大数据的轨道交通数据分析方法 |
CN112788524A (zh) * | 2020-12-28 | 2021-05-11 | 中国移动通信集团江苏有限公司 | 对象查询方法、装置、设备及存储介质 |
CN113254480A (zh) * | 2020-02-13 | 2021-08-13 | 中国移动通信集团广东有限公司 | 一种数据查询方法及装置 |
CN113326264A (zh) * | 2021-06-11 | 2021-08-31 | 深圳前海微众银行股份有限公司 | 数据处理方法、服务器及存储介质 |
CN115936331A (zh) * | 2022-11-01 | 2023-04-07 | 中科雨辰科技有限公司 | 一种基于距离获取目标任务对象的数据处理系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104008212A (zh) * | 2014-06-23 | 2014-08-27 | 中国科学院重庆绿色智能技术研究院 | 一种地理位置信息相关联的物联网时间序列数据存取方法 |
CN106126575A (zh) * | 2016-06-17 | 2016-11-16 | 厦门美图之家科技有限公司 | 一种地理位置服务方法、服务器和系统 |
CN107169128A (zh) * | 2017-06-05 | 2017-09-15 | 游密科技(深圳)有限公司 | 一种给通用数据模型绑定地理位置信息的方法 |
US20180080794A1 (en) * | 2016-04-12 | 2018-03-22 | Beijing Didi Infinity Technology And Development C O., Ltd. | Systems and methods for determining a point of interest |
-
2018
- 2018-10-10 CN CN201811177498.3A patent/CN109325089A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104008212A (zh) * | 2014-06-23 | 2014-08-27 | 中国科学院重庆绿色智能技术研究院 | 一种地理位置信息相关联的物联网时间序列数据存取方法 |
US20180080794A1 (en) * | 2016-04-12 | 2018-03-22 | Beijing Didi Infinity Technology And Development C O., Ltd. | Systems and methods for determining a point of interest |
CN106126575A (zh) * | 2016-06-17 | 2016-11-16 | 厦门美图之家科技有限公司 | 一种地理位置服务方法、服务器和系统 |
CN107169128A (zh) * | 2017-06-05 | 2017-09-15 | 游密科技(深圳)有限公司 | 一种给通用数据模型绑定地理位置信息的方法 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111144696A (zh) * | 2019-11-28 | 2020-05-12 | 国电南瑞科技股份有限公司 | 一种基于大数据的轨道交通数据分析方法 |
CN113254480A (zh) * | 2020-02-13 | 2021-08-13 | 中国移动通信集团广东有限公司 | 一种数据查询方法及装置 |
CN113254480B (zh) * | 2020-02-13 | 2024-04-19 | 中国移动通信集团广东有限公司 | 一种数据查询方法及装置 |
CN112788524A (zh) * | 2020-12-28 | 2021-05-11 | 中国移动通信集团江苏有限公司 | 对象查询方法、装置、设备及存储介质 |
CN113326264A (zh) * | 2021-06-11 | 2021-08-31 | 深圳前海微众银行股份有限公司 | 数据处理方法、服务器及存储介质 |
CN115936331A (zh) * | 2022-11-01 | 2023-04-07 | 中科雨辰科技有限公司 | 一种基于距离获取目标任务对象的数据处理系统 |
CN115936331B (zh) * | 2022-11-01 | 2023-10-27 | 中科雨辰科技有限公司 | 一种基于距离获取目标任务对象的数据处理系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109325089A (zh) | 一种非定点对象查询方法、装置、终端设备及存储介质 | |
US11550826B2 (en) | Method and system for generating a geocode trie and facilitating reverse geocode lookups | |
EP3602351B1 (en) | Apparatus and method for distributed query processing utilizing dynamically generated in-memory term maps | |
CN104657362B (zh) | 数据存储、查询方法和装置 | |
CN110599490B (zh) | 一种遥感影像数据存储方法和系统 | |
US9719790B2 (en) | Mapping uncertain geometries to graticules | |
CN108197226A (zh) | Mptc账户状态树以及mptc区块链快速检索方法 | |
CN108733317B (zh) | 数据存储方法和装置 | |
CN110019575A (zh) | 对地理地址进行标准化的方法和装置 | |
CN105303456A (zh) | 电力传输设备监控数据处理方法 | |
CN108804602A (zh) | 一种基于spark的分布式空间数据存储计算方法 | |
CN107741982B (zh) | 一种坐标与行政区域匹配系统及方法 | |
US9442949B2 (en) | System and method for compressing data in a database | |
CN111258978A (zh) | 一种数据存储的方法 | |
CN104539750A (zh) | 一种ip定位方法和装置 | |
CN113568995A (zh) | 基于检索条件的动态瓦片地图制作方法及瓦片地图系统 | |
CN114398567A (zh) | 一种多时态电网拓扑图数据管理方法、装置及计算机设备 | |
US9602129B2 (en) | Compactly storing geodetic points | |
CN110895591A (zh) | 一种定位自提点的方法和装置 | |
CN113688193A (zh) | 轨迹数据的存储与索引方法、装置、电子设备及可读介质 | |
CN110020001A (zh) | 字符串数据的存储、查询方法以及相应的设备 | |
CN111460012A (zh) | 基于Spark的气象历史台站沿革数据可视化方法及系统 | |
Bakalov et al. | A network model for the utility domain | |
CN110930101A (zh) | 确定订单的配送时间的方法、装置、电子设备和可读介质 | |
Khot et al. | Road network compression techniques in spatiotemporal embedded systems: A survey |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190212 |
|
RJ01 | Rejection of invention patent application after publication |