地理信息数据查询方法、装置及系统的制作方法_2

文档序号:8282324阅读:来源:国知局
集用户的地理信息数据,将地理信息数据写入数据库,接收终端设备发送的查询请求,根据查询请求中的查询条件,查询数据库,获取与查询条件对应的目标地理信息数据,对目标地理信息数据进行处理,将处理结果作为查询结果返回给终端设备,可提供一个从地理信息数据收集到地理信息数据查询的较为完备的查询平台,由于收集到的地理信息数据包含多个用户的历史地理信息数据与实时地理信息数据,因此可扩大查询范围,从而可提高地理信息数据查询的效率。
[0037]第二实施例
[0038]本发明第二实施例所提供的地理信息数据查询方法可应用于如图4所示的应用环境中,实现对地理信息数据的查询。如图4所示,终端设备100、查询服务器200以及数据存储服务器300位于无线网络或有线网络中,通过该无线网络或有线网络,终端设备100、查询服务器200以及数据存储服务器300进行数据交互。
[0039]查询服务器200的内部查询系统可包括:数据收集模块210、内存存储模块220、外存存储模块230、实时数据计算模块240以及历史数据计算模块250。
[0040]其中,数据收集模块210可用于收集用户的地理信息数据。
[0041]内存存储模块220可用于将数据收集模块210收集的用户的地理信息数据写入本地的内存存储器(内存或CPU缓存)中,或者根据数据查询请求,访问内存存储器中存储的数据。其中,内存存储器可以位于查询服务器200本地,也可以位于其他远程服务器中,当内存存储器位于其他远程服务器时,内存存储模块200可通过网络访问该内存存储器中存储的数据。
[0042]外存存储模块230可用于将内存存储器中存储的超过预置存储时长(例如:5分钟)的用户的地理信息数据作为历史数据写入外存存储器中,或根据数据查询请求,访问外存存储器中存储的历史数据。外存储存储器是指除计算机内存或CPU缓存以外的存储器,此类存储器一般断电后仍然能保存数据。优选地,外存存储器可位于数据存储服务器300 中。
[0043]实时数据计算模块240可用于向内存存储模块220发送数据查询请求包,以查询设置于内存存储器中的第一数据库,获取具有非常实时性(例如:粒度是I秒)的目标地理信息数据,根据该目标地理信息数据,执行相关计算(例如关键字过滤等),并返回查询结果O
[0044]历史数据计算模块250可向数据存储服务器300发送数据查询请求包,获取具有一般实时性(例如:粒度是I天)或历史性的数据(例如:粒度是I个月)的目标地理信息数据,根据该目标地理信息数据,执行相关计算,并返回查询结果。
[0045]可以理解的,上述模块的功能也可以由独立的服务器或服务器集群构成的系统实现。例如:历史数据计算模块250可以是由多个服务器构成的历史数据计算系统,该历史数据计算系统可提供一个历史数据计算框架,支持丰富的编程接口,比如:bash、java、c/c++、scala等。进一步地,该历史数据计算系统可使用开源框架,包括:Hadoop、hive、spark和graphchi。数据分析人员可以通过编程接口编写程序从数据存储服务器300查询获取满足给定条件的历史地理信息数据(也即图4中所示的历史数据,或可称之为离线数据),并将获取的历史地理信息数据发送给实时数据计算系统,以便实时数据计算系统基于历史地理信息数据,提供地理信息数据查询服务。
[0046]优选地,查询服务器200可以为多个查询服务器构成的服务器集群,数据存储服务器300可以为多个数据存储服务器构成的HDFS (Hadoop Distributed File System,分布式文件系统)服务器集群。
[0047]图5为本发明第二实施例提供的地理信息数据查询方法的流程图。如图5所示,本实施例的地理信息数据查询方法包括以下步骤:
[0048]步骤S21,收集用户的地理信息数据,将所述地理信息数据写入第一数据库,所述第一数据库设置于内存存储器中。
[0049]于本实施例一【具体实施方式】中,地理信息数据可以包括:用户的帐号、IP地址、位置信息以及该位置信息的采集时刻。查询服务器200通过数据收集模块210收集的用户的地理信息数据可以来自:用户的登录日志,或业务服务器发送的业务服务器在为用户提供预置业务时获取的地理信息。具体地,查询服务器200可以通过数据收集模块210从登录服务器获取用户的登录日志,提取该登录日志中记载的该用户在登录时所使用的帐号、登录时间、登录地、IP地址等信息,并将提取的上述信息作为用户的地理信息数据通过内存存储模块220写入第一数据库;或者,查询服务器200可以通过数据收集模块210获取定位服务器上报的该定位服务器在为用户提供定位服务时获取的用户的地理信息数据,例如:用户发送定位请求的时间、用户的帐号、GPS(Global Posit1ning System,全球定位系统)等信息,并将上述信息通过内存存储模块220写入位于内存存储器的第一数据库。
[0050]步骤S22,获取所述第一数据库中存储的超过预置时长的地理信息数据,将所述超过预置时长的地理信息数据写入第二数据库,所述第二数据库设置于数据存储服务器中;
[0051]具体地,查询服务器200通过外存存储模块230获取第一数据库中存储的超过预置时长(例如:存储时间超过5分钟)的地理信息数据,将获取的该地理信息数据写入设置于数据存储服务器300中的第二数据库,也就是说采集到的用户的地理信息数据写入内存存储器后只保存预置时长,供实时数据计算模块240查询使用,超过预置时长,该地理信息数据就会落地存储到数据存储服务器300中,供历史数据计算模块250查询使用。换而言之,内存存储器中的第一数据库中存储的是实时地理信息数据,数据存储服务器中的第二数据库中存储的是历史地理信息数据。
[0052]步骤S23,接收终端设备发送的查询请求;
[0053]查询请求中包含查询条件,用于查询满足该查询条件的地理信息数据。具体地,该查询条件可以包括:第一查询条件、第二查询条件以及第三查询条件。其中,第一查询条件可以包括:待查用户的帐号以及待查时刻,用于查询待查用户的帐号对应的用户在待查时刻的地理位置;第二查询条件可以包括:待查位置信息、查询范围以及待查时刻,用于查询在该待查时刻,位于该待查位置的该查询范围内的用户的列表;第三查询条件可以包括:IP地址,用于查询与该IP地址对应的地理信息,其中与该IP地址对应的地理信息至少可以包括:与该IP地址对应的城市名称、全球定位系统信息、以及POI信息中的一种。
[0054]POI是“Point of Interest”的缩写,中文可以翻译为“兴趣点”。在地理信息系统中,一个POI可以是一栋房子、一个商铺、一个邮筒、一个公交站等。每个POI包含四方面信息:名称、类别、经度以及纬度。
[0055]于本实施其他【具体实施方式】中,查询服务器200也可以通过第三方服务器,接收终端设备100发送查询请求,并可以通过第三方服务器,将查询结果返回给终端设备100。
[0056]步骤S24,当所述查询请求中的查询条件为第一查询条件时,获取与所述第一查询条件对应的目标地理信息数据,对所述目标地理信息数据进行处理,将处理结果作为查询结果返回给所述终端设备。
[0057]具体地,如图6所示,本步骤可包括以下步骤:
[0058]步骤S241,当所述查询请求中的查询条件为第一查询条件时,获取当前系统时刻,将所述待查时刻与所述当前系统时刻进行比较;
[0059]具体地,当查询请求中的查询条件为第一查询条件时,也即该查询请求请求查询的是待查用户的帐号对应的用户在待查时刻的地理位置时,查询服务器200获取当前系统时刻,将第一查询条件中的待查时刻与当前系统时刻进行比较。
[0060]步骤S242,当所述待查时刻小于或等于所述当前系统时刻时,获取与所述待查用户的帐号以及所述待查时刻对应的第一目标地理信息数据,将所述第一目标地理信息数据作为所述查询结果发送给所述终端设备;以及
[0061]具体地,当待查时刻小于或等于(早于或等于)当前系统时刻时,若待查时刻与当前系统时刻的差值小于或等于预置时长,则可确定该查询请求为请求查询实时地理信息的第一查询请求,查询服务器200通过调用实时数据计算模块240查询内存存储器中的第一数据库,获取与待查用户的帐号以及待查时刻对应的地理位置作为第一目标地理信息数据,然后将该第一目标地理信息数据作为查询结果发送给终端设备100 ;若待查时刻与当前系统时刻的差值大于预置时长,则可确定该查询请求为请求查询历史地理信息的第二查询请求,查询服务器200通过调用历史数据计算模块250查询数据存储服务器300中的第二数据库,获取与待查用户的帐号以及待查时刻对应的地理位置作为第一目标地理信息数据,然后将该第一目标地理信息数据作为查询结果发送给终端设备100 ;若查询条件中包含多个待查时刻,且部分待查时刻与当前系统时刻的差值大于预置时长,部分待查时刻与当前系统时刻的差值小于或等于预置时长,也就是说查询的是某个时间段内与待查用户的帐号以及待查时刻对应的地理位置,例如:查询某个用户在包含当前系统时间在内的30天内的地理信息,则可确定该查询请求为请求查询实时地理信息以及历史地理信息的第三查询请求,查询服务器200通过分别调用实时数据计算模块240以及历史数据计算模块250,查询内存存储器中的第一数据库以及数据存储服务器300中的第二数据库,获取与待查用户的帐号以及多个待查时刻对应的多个地理位置,然后将多个地理位置整合后作为查询结果发送给终端设备100。
[0062]步骤S243,当所述待查时刻大于所述当前系统时刻时,获取与所述待查用户的帐号对应的第二目标地理信息数据,根据所述第二目标地理信息数据以及预置的第一算法测算所述待查用户的帐号对应的用户在所述待查时刻的地理位置,将测算结果作为所述查询结果发送给所述终端设备。
[0063]具体地,当待查时刻大于(迟于)当前系统时刻时,也就是查询请求请求查询的是待查用户在未来待查时刻的位置,则可确定该查询请求为请求查询实时地理信息以及历史地理信息的第三查询请求,查询服务器200通过分别调用实时数据计算模块240以及历史数据计算模块250,查询内存存储器中的第一数据库以及数据存储服务器300中的第
当前第2页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1