CN106815334A - 一种用于终端的数据查询方法及装置 - Google Patents
一种用于终端的数据查询方法及装置 Download PDFInfo
- Publication number
- CN106815334A CN106815334A CN201611259486.6A CN201611259486A CN106815334A CN 106815334 A CN106815334 A CN 106815334A CN 201611259486 A CN201611259486 A CN 201611259486A CN 106815334 A CN106815334 A CN 106815334A
- Authority
- CN
- China
- Prior art keywords
- equipment
- mark
- checked
- summary table
- attribute
- 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
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/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9535—Search customisation based on user profiles and personalisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/955—Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
- Mobile Radio Communication Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种用于终端的数据查询方法及装置,所述方法包括如下步骤:接收查询请求,所述查询请求包括待查询设备的标识;根据所述待查询设备的标识查询预设的设备总表,以判断所述待查询设备的标识是否包括在所述设备总表中,所述设备总表记录有全部设备的标识;若所述待查询设备的标识包括在所述设备总表中,则根据所述待查询设备的标识在统计表中查找所述待查询设备的属性,所述统计表记录有预设时间段内被查询的至少一个设备的标识和属性;其中,所述设备总表以及所述统计表存储于所述终端的本地。通过本发明提供的技术方案能够有效提高终端的数据查询效率,有利于对终端数据查询需求的快速响应,从而提高信息发布的成功率。
Description
技术领域
本发明涉及互联网技术领域,具体地涉及一种用于终端的数据查询方法及装置。
背景技术
随着互联网技术的日益发展,越来越多的用户通过互联网来获取日常咨询,在于互联网交互的过程中,用户的一些特征数据(例如,用户用于与互联网连接的移动设备的设备ID以及与该设备ID相关联的特征属性数据等)会被有意识的采集,以便信息发布方能够针对不同用户的特征数据提供个性化的信息服务。
在现有的业务模式中,由于特征数据的存储需求远超过单机容量,所以一般都是基于互联网信息发布***来存储全球用户的特征数据,信息发布方定期在服务端更新数据库,将数据库中的特征数据同步为互联网信息发布***中存储的内容。而在日常的信息发布过程中,信息发布终端根据本次接收到的信息发布请求中包含的设备ID,以联网的方式到数据库中远程查询获得与所述设备ID相关联的特征属性数据,从而根据该特征属性数据在后续的信息发布中做进一步处理。另一方面,现有的待发布信息位对于信息发布请求的延迟制定有小于40ms的设计要求,所以目前业务模式中对设备ID查询的要求是在20亿数据量级上进行低延迟快速查询,信息发布方需要构建一个庞大的查询集群来实现高并发低延迟的数据查询。
但是,这样的方案需要使用大量的服务端来支持信息发布方日常信息发布时的数据查询需求,资源消耗量大;另一方面,信息发布方在日常的信息发布过程中,需要通过互联网实时与服务端交互来获得数据查询结果,若当前互联网出现故障,则信息发布方将无法及时获得所需的数据查询结果,不利于对待发布信息位的快速响应,影响了信息发布的成功率。
发明内容
本发明解决的技术问题是现有技术无法以较为便捷、高效的方式响应终端的数据查询需求。
为解决上述技术问题,本发明实施例提供一种用于终端的数据查询方法,包括如下步骤:接收查询请求,所述查询请求包括待查询设备的标识;根据所述待查询设备的标识查询预设的设备总表,以判断所述待查询设备的标识是否包括在所述设备总表中,所述设备总表记录有全部设备的标识;若所述待查询设备的标识包括在所述设备总表中,则根据所述待查询设备的标识在统计表中查找所述待查询设备的属性,所述统计表记录有预设时间段内被查询的至少一个设备的标识和属性;其中,所述设备总表以及所述统计表存储于所述终端的本地。
可选的,若所述待查询设备的标识未包括在所述设备总表中,则拒绝所述查询请求。
可选的,所述数据查询方法还包括如下步骤:若未在所述统计表中查找到所述待查询设备的属性,则根据所述待查询设备的标识查找服务端,以获得所述待查询设备的属性,所述服务端存储有全部设备的标识和属性,所述服务端与所述终端耦接。
可选的,所述数据查询方法还包括如下步骤:若在所述服务端中查找获得所述待查询设备的属性,则将所述待查询设备的标识和属性更新至所述统计表。
可选的,所述设备总表为所述服务端中的全部设备的标识的压缩映射。
可选的,所述压缩映射基于哈希编码以及布隆过滤实现。
可选的,所述设备总表基于如下步骤建立:获取所述服务端存储的全部设备的标识;对所述全部设备的标识进行预设数量的哈希编码,以分别获得预设长度的标识集合;对所述标识集合进行布隆过滤,以获得所述设备总表。
可选的,根据所述待查询设备的标识查询预设的设备总表,以判断所述待查询设备的标识是否包括在所述设备总表中,包括如下步骤:对所述待查询设备的标识进行所述预设数量的哈希编码;判断编码后的待查询设备的标识在所述设备总表上对应的比特位是否均为有效;若所述编码后的待查询设备的标识在所述设备总表上对应的比特位均为有效,则确认所述待查询设备的标识包括在所述设备总表中。
可选的,在根据所述待查询设备的标识查询预设的设备总表之前,包括如下步骤:按照预设格式对所述待查询设备的标识进行处理,以使得所述待查询设备的标识的格式与所述设备总表中设备的标识的格式相同。
可选的,所述预设格式包括所述标识的预设位数,所述按照预设格式对所述待查询设备的标识进行处理,包括如下步骤:若所述待查询设备的标识的位数与预设位数不相同,则对所述待查询设备的标识进行编码,以将所述待查询设备的标识的位数转换为所述预设位数。
可选的,所述统计表包括:所述服务端存储的全部设备的标识和属性中,在所述预设时间段内被查询次数最高的至少一个设备的标识和属性。
可选的,所述统计表基于如下步骤建立:根据所述服务端存储的全部设备在所述预设时间段内的历史被查询次数,确定设备热点分布;根据所述设备热点分布确定频率统计表,所述频率统计表包括所述预设时间段内至少一个设备的标识以及所述设备的历史被查询次数;基于所述频率统计表获得所述预设时间段内历史被查询次数最高的预设数量的设备;查询所述服务端以获得所述预设数量的设备中各设备的属性;基于所述预设数量的设备和属性生成所述统计表。
本发明实施例还提供一种用于终端的数据查询装置,包括:接收模块,用于接收查询请求,所述查询请求包括待查询设备的标识;查询模块,用于根据所述待查询设备的标识查询预设的设备总表,以判断所述待查询设备的标识是否包括在所述设备总表中,所述设备总表记录有全部设备的标识;第一查找模块,若所述待查询设备的标识包括在所述设备总表中,则根据所述待查询设备的标识在统计表中查找所述待查询设备的属性,所述统计表记录有预设时间段内被查询的至少一个设备的标识和属性;其中,所述设备总表以及所述统计表存储于所述终端的本地。
可选的,所述数据查询装置还包括拒绝模块,若所述待查询设备的标识未包括在所述设备总表中,则拒绝所述查询请求。
可选的,所述数据查询装置还包括:第二查找模块,若未在所述统计表中查找到所述待查询设备的属性,则根据所述待查询设备的标识查找服务端,以获得所述待查询设备的属性,所述服务端存储有全部设备的标识和属性,所述服务端与所述终端耦接。
可选的,所述数据查询装置还包括:更新模块,若在所述服务端中查找获得所述待查询设备的属性,则将所述待查询设备的标识和属性更新至所述统计表。
可选的,所述设备总表为所述服务端中的全部设备的标识的压缩映射。
可选的,所述压缩映射基于哈希编码以及布隆过滤实现。
可选的,所述数据查询装置还包括用于建立所述设备总表的第一建立模块,所述第一建立模块包括:第一获取子模块,用于获取所述服务端存储的全部设备的标识;第一处理子模块,用于对所述全部设备的标识进行预设数量的哈希编码,以分别获得预设长度的标识集合;第二处理子模块,用于对所述标识集合进行布隆过滤,以获得所述设备总表。
可选的,所述查询模块包括:第三处理子模块,用于对所述待查询设备的标识进行所述预设数量的哈希编码;判断子模块,用于判断编码后的待查询设备的标识在所述设备总表上对应的比特位是否均为有效;确认子模块,若所述编码后的待查询设备的标识在所述设备总表上对应的比特位均为有效,则确认所述待查询设备的标识包括在所述设备总表中。
可选的,所述数据查询装置还包括:处理模块,用于在根据所述待查询设备的标识查询预设的设备总表之前,按照预设格式对所述待查询设备的标识进行处理,以使得所述待查询设备的标识的格式与所述设备总表中设备的标识的格式相同。
可选的,所述预设格式包括所述标识的预设位数,所述处理模块包括:第四处理子模块,若所述待查询设备的标识的位数与预设位数不相同,则对所述待查询设备的标识进行编码,以将所述待查询设备的标识的位数转换为所述预设位数。
可选的,所述统计表包括:所述服务端存储的全部设备的标识和属性中,在所述预设时间段内被查询次数最高的至少一个设备的标识和属性。
可选的,所述数据查询装置还包括用于建立所述统计表的第二建立模块,所述第二建立模块包括:第一确定子模块,用于根据所述服务端存储的全部设备在所述预设时间段内的历史被查询次数,确定设备热点分布;第二确定子模块,用于根据所述设备热点分布确定频率统计表,所述频率统计表包括所述预设时间段内至少一个设备的标识以及所述设备的历史被查询次数;第二获取子模块,用于基于所述频率统计表获得所述预设时间段内历史被查询次数最高的预设数量的设备;查询子模块,用于查询所述服务端以获得所述预设数量的设备中各设备的属性;生成子模块,用于基于所述预设数量的设备和属性生成所述统计表。
与现有技术相比,本发明实施例的技术方案具有以下有益效果:
通过查询设备总表,来判断接收到的待查询设备的标识是否包括在所述设备总表中,并且在确定所述待查询设备的标识包括在所述设备总表中后,再根据所述待查询设备的标识到统计表中查找所述待查询设备的属性,其中,所述设备总表记录有全部设备的标识,所述统计表记录有预设时间段内被查询的至少一个设备的标识和属性。较之现有技术中,终端需要通过互联网实时与服务端交互才能进行数据查询的技术方案,由于本发明实施例的技术方案中,所述设备总表以及统计表均存储于终端的本地,因此可以有效减少终端与服务端的交互次数,从而大幅提高终端的数据查询效率以及响应速度。进一步,本发明实施例的技术方案通过在所述终端上预先存储数据查询所需的关键信息,能够更好的满足高并发低延迟的终端数据查询要求,减轻因互联网故障等因素对终端数据查询可能造成的影响,同时还可以有效减少服务端的数量,避免资源浪费。
进一步,若查询结果表明所述待查询设备的标识未包括在所述设备总表中,则拒绝所述查询请求。在本发明实施例的技术方案中,所述设备总表包括了所述服务端所记录的全部设备的标识,则对于无法在所述设备总表中查找到所述待查询设备的标识的情形,可以确定所述服务端未记录所述待查询设备的属性,则直接拒绝所述查询请求,避免终端再到服务端进行无意义的查询,从而更好的节约资源。
进一步,若未在所述统计表中查找到所述待查询设备的属性,则根据所述待查询设备的标识查找所述服务端,以获得所述待查询设备的属性,所述服务端与所述终端耦接。在本发明实施例的技术方案中,由于所述统计表记录的是所述预设时间段内被查询的至少一个设备的标识和属性,又由于所述待查询设备的标识已经确定包括于所述设备总表中,有可能当前所述待查询设备的属性记录于所述服务端而未记录到所述统计表中,因而可以通过到所述服务端查找的方式获得所述待查询设备的属性。较之现有的对于每一待查询设备均需要到服务端查找其属性的技术方案,本发明实施例的技术方案能够有效减轻服务端的工作量,提高终端数据查询的查询效率。
附图说明
图1是本发明的第一实施例的一种用于终端的数据查询方法的流程图;
图2是本发明实施例建立的设备总表的应用场景示意图;
图3是本发明的第二实施例的一种用于终端的数据查询方法的流程图;
图4是本发明的第三实施例的一种用于终端的数据查询装置的结构示意图。
具体实施方式
本领域技术人员理解,现有的用于信息发布的终端针对接收到的查询请求进行数据查询时,仍局限于通过实时与服务端交互来获得查询结果。但是,这样的方案需要使用大量的服务端来支持信息发布方日常信息发布时的数据查询需求,资源消耗量大;另一方面,信息发布方在日常的信息发布过程中,需要通过互联网实时与服务端交互来获得数据查询结果,若当前互联网出现故障,则信息发布方将无法及时获得所需的数据查询结果,不利于对待发布信息位的快速响应,影响了信息发布的成功率。
为了解决这一技术问题,本发明所述技术方案通过查询设备总表,来判断接收到的待查询设备的标识是否包括在所述设备总表中,并且在确定所述待查询设备的标识包括在所述设备总表中后,再根据所述待查询设备的标识到统计表中查找所述待查询设备的属性,其中,所述设备总表记录有全部设备的标识,所述统计表记录有预设时间段内被查询的至少一个设备的标识和属性。
本领域技术人员理解,由于本发明实施例的技术方案中,所述设备总表以及统计表均存储于终端的本地,因此可以有效减少终端与服务端的交互次数,从而大幅提高终端的数据查询效率以及响应速度。进一步,本发明实施例的技术方案通过在所述终端上预先存储数据查询所需的关键信息,能够更好的满足高并发低延迟的终端数据查询要求,减轻因互联网故障等因素对终端数据查询可能造成的影响,同时还可以有效减少服务端的数量,避免资源浪费。
为使本发明的上述目的、特征和有益效果能够更为明显易懂,下面结合附图对本发明的具体实施例做详细的说明。
图1是本发明的第一实施例的一种用于终端的数据查询方法的流程图。其中,在互联网信息发布领域,所述终端可以是信息投放机,本发明实施例中的所述终端根据待查询设备的标识来查询所述待查询设备的属性,从而根据所述待查询设备的属性确定需要向所述待查询设备发布的信息。
具体地,在本实施例中,首先执行步骤S101,接收查询请求,所述查询请求包括待查询设备的标识。更为具体地,所述待查询设备可以是移动设备,例如,手机、IPAD等;还可以是其他终端设备。优选地,所述标识用于唯一表示所述待查询设备的身份信息,例如,所述标识可以是国际移动设备身份码(International Mobile Equipment Identity,简称IMEI)。
然后进入步骤S102执行,根据所述待查询设备的标识查询预设的设备总表,以判断所述待查询设备的标识是否包括在所述设备总表中,所述设备总表记录有全部设备的标识。具体地,所述设备总表存储于所述终端的本地。例如,所述设备总表可以以磁盘文件形式预先存储于所述终端的内存中。在一个优选例中,当查询结果表明所述待查询设备的标识包括在所述设备总表中,则所述步骤S102的判断结果是肯定的;否则,所述步骤S102的判断结果是否定的。进一步地,若所述步骤S102的判断结果是肯定的,则进入步骤S103执行;否则,即所述待查询设备的标识未包括在所述设备总表中,则进入步骤S104执行。
优选地,在所述步骤S103中,若所述待查询设备的标识包括在所述设备总表中,则根据所述待查询设备的标识在统计表中查找所述待查询设备的属性,所述统计表记录有预设时间段内被查询的至少一个设备的标识和属性。具体地,与所述设备总表类似,所述统计表也可以以磁盘文件形式预先存储于所述终端的本地。更为具体地,所述预设时间段可以根据用户设定产生。例如,在互联网信息发布领域,所述用户可以是信息发布方,所述预设时间段可以是由所述信息发布方设定的任意长度的时间段。优选地,所述属性可以包括所述待查询设备上的特征信息,例如,所述待查询设备的设备类型、归属地、应用程序安装信息等。优选地,所述统计表可以为热点缓存(cache)文件。
优选地,在所述步骤S104中,若所述待查询设备的标识未包括在所述设备总表中,则拒绝所述查询请求。本领域技术人员理解,在本发明实施例的技术方案中,所述设备总表优选地包括了所述服务端所记录的全部设备的标识,则对于无法在所述设备总表中查找到所述待查询设备的标识的情形,可以确定所述服务端未记录所述待查询设备的属性,则直接拒绝所述查询请求,避免终端再到服务端进行无意义的查询,从而更好的节约资源。
进一步地,所述设备总表和所述统计表可以根据预设周期定期更新,例如,每天更新一次,以确保所包括数据的及时性与准确性。
在本实施例的一个变化例中,所述步骤S103还包括步骤“若未在所述统计表中查找到所述待查询设备的属性,则根据所述待查询设备的标识查找服务端,以获得所述待查询设备的属性,所述服务端存储有全部设备的标识和属性,所述服务端与所述终端耦接”。优选地,与所述设备总表和所述统计表相类似,所述服务端也可基于预设周期定期更新,以确保其中记录的全部设备的标识和属性的及时性与准确性。
本领域技术人员理解,在本发明实施例的技术方案中,由于所述统计表记录的是所述预设时间段内被查询的至少一个设备的标识和属性,又由于所述待查询设备的标识已经经过所述步骤S102确定包括于所述设备总表中,有可能当前所述待查询设备的属性记录于所述服务端而未记录到所述统计表中,因而可以通过到所述服务端查找的方式获得所述待查询设备的属性。较之现有的对于每一待查询设备均需要到服务端查找其属性的技术方案,本发明实施例的技术方案能够有效减轻服务端的工作量,提高终端数据查询的查询效率。
进一步地,若在所述服务端中查找获得所述待查询设备的属性,则将所述待查询设备的标识和属性更新至所述统计表。本领域技术人员理解,由于所述统计表用于记录在所述预设时间段内被查询的至少一个设备的标识和属性,因而可以在实施本实施例的过程中不断更新所述统计表,以进一步减少需要到所述服务端查询所述待查询设备的属性的次数,更好的提高终端数据查询的响应速度。作为一个变化例,本发明实施例也可以根据所述终端的本地的存储空间来有选择性的更新所述统计表,以免因所述统计表过大反而影响到所述终端的响应速度。
在一个变化例中,若未在所述服务端中查找获得所述待查询设备的属性,则结束执行本发明实施例。例如,所述服务端中虽然存储有所述待查询设备的标识,但并未记录所述待查询设备的属性,则无法向所述终端返回查找结果,因而直接结束执行本发明实施例。又例如,还可能出现所述步骤S102中基于所述设备总表的判断出错的情形,即所述服务端中可能并未存储所述待查询设备的标识和属性,因而也需要结束执行本发明实施例。
进一步地,所述设备总表为所述服务端中的全部设备的标识的压缩映射。优选地,所述压缩映射基于哈希编码以及布隆过滤实现。
在图2示出的一个典型的应用场景中,所述设备总表的建立过程包括“获取所述服务端存储的全部设备的标识;对所述全部设备的标识进行预设数量的哈希编码,以分别获得预设长度的标识集合;对所述标识集合进行布隆过滤,以获得所述设备总表。”
进一步地,所述步骤S102包括步骤“对所述待查询设备的标识进行所述预设数量的哈希编码;判断编码后的待查询设备的标识在所述设备总表上对应的比特位是否均为有效;若所述编码后的待查询设备的标识在所述设备总表上对应的比特位均为有效,则确认所述待查询设备的标识包括在所述设备总表中。”
参照图2所示的应用场景,所述设备总表基于位数组的形式表示,通过预设数量的哈希编码(对应图2中的哈希函数r1至r4),将所述位数组中与所述哈希编码对应的值的比特位置1(对应图2中的比特位b1、b6、b8和b13),当执行所述步骤S102时,对所述待查询设备的标识也进行所述预设数量的哈希编码,若查询获得编码后的所述待查询设备的标识在所述位数组上对应的比特位均为1,则确定所述待查询设备的标识包括在所述设备总表中。
优选地,所述预设数量可以为6个,对于所述服务端中存储的全部设备的标识,每一标识在所述位数组中占10比特。在实际应用中,若通过所述布隆过滤和哈希编码构建一个20亿比特的布隆过滤器,则可以将一个160G比特的设备的标识的集合压缩映射为一个2.3G比特的位数组(即所述设备总表),这样的技术方案能够极大的节省所述设备总表在所述终端的本地的存储空间占用率。
本领域技术人员理解,所述布隆过滤用于实现数据字典,以进行数据的判重,构建所述布隆过滤器的手段属于现有技术,不是本发明实施例的重点,因而在此不予赘述。
进一步地,所述统计表包括所述服务端存储的全部设备的标识和属性中,在所述预设时间段内被查询次数最高的至少一个设备的标识和属性,以提高所述步骤S103的查询命中率。本领域技术人员理解,在本发明实施例的技术方案中,所述统计表可以包括两部分内容,一部分是基于前述变化例所述技术方案更新至所述统计表的,从所述服务端查找获得的所述待查询设备的属性和标识;另一部分,则是在所述预设时间段内所述设备总表中被查询次数最高的至少一个设备的标识和属性。本领域技术人员理解,后一部分信息可以定期更新,例如随着所述设备总表的更新而更新,以确保与所述设备总表中存储的信息的同步性。
在一个典型的应用场景中,所述统计表的建立包括步骤“根据所述服务端存储的全部设备在所述预设时间段内的历史被查询次数,确定设备热点分布;根据所述设备热点分布确定频率统计表,所述频率统计表包括所述预设时间段内至少一个设备的标识以及所述设备的历史被查询次数;基于所述频率统计表获得所述预设时间段内历史被查询次数最高的预设数量的设备;查询所述服务端以获得所述预设数量的设备中各设备的属性;基于所述预设数量的设备和属性生成所述统计表。”
表1
历史被查询次数(单位:次) | 标识 |
10000 | id1,id9,id10 |
998 | id31,id999 |
… | … |
5 | id2,id8888,id1000000 |
优选地,所述频率统计表可以以倒排索引的方式记录。结合表1所示按倒排索引记录的所述频率统计表,其中,所述频率统计表的键(key)为所述设备在所述预设时间段内的历史被查询次数,所述频率统计表的值(value)为所述设备的标识。相应的,所述预设时间段内历史被查询次数最高的预设数量的设备,可以对应于表1中排序最靠前的所述预设数量的设备。
优选地,所述统计表中记录的设备的预设数量可以根据所述终端的内存大小确定。
表2
例如,若所述统计表中记录的设备的预设数量为4个,则结合表1的频率统计表获得的所述统计表表示为表2的形式。
进一步地,在建立获得所述设备总表以及所述统计表后,还可以将所述设备总表以及所述统计表序列化,以便所述终端的本地作为磁盘文件存储。
进一步地,基于http协议将所述设备总表以及统计表发送至所述终端。本领域技术人员还可根据实际需要变化出更多发送方式,这并不影响本发明的技术内容。
由上,采用第一实施例的方案,结合所述布隆过滤可能存在出错率的特性,当接收到查询请求后,通过查询预先建立的设备总表来优选地排除所述待查询设备的标识肯定未存储于所述服务端的情形(此时直接拒绝所述查询请求);若通过查询所述设备总表确定所述待查询设备的标识可能存储于所述服务端,则优选的在所述终端本地存储的统计表中进行查找,若无法在所述统计表中找到所述待查询设备的属性,则最后再基于互联网到所述服务端中进行查找。
本领域技术人员理解,本发明实施例根据所述设备的标识相对稳定的特点,将所述设备的标识预处理成合适大小的设备总表并存储至所述终端,使得所述终端可以不借助网络而直接基于本地缓存确定所述待查询设备的标识是否存在,从而有效减小了判断所述待查询设备的标识是否存在的时间消耗和空间消耗。进一步地,本发明实施例还根据所述预设时间段内被查询过的设备的标识可能频繁出现的特点,在预处理阶段先统计获得所述统计表并存储至所述终端,提高所述终端基于本地缓存查询获得所述待查询设备的属性的命中率,从而有效减少终端与服务端之间的交互次数,大幅提高终端的数据查询效率以及响应速度,缩短所述终端的查询时间。
图3是本发明的第二实施例的一种用于终端的数据查询方法的流程图。具体地,在本实施例中,首先执行步骤S201,接收查询请求,所述查询请求包括待查询设备的标识。更为具体地,本领域技术人员可以参考上述图1所示实施例中所述步骤S101,在此不予赘述。
然后进入步骤S202执行,按照预设格式对所述待查询设备的标识进行处理,以使得所述待查询设备的标识的格式与所述设备总表中设备的标识的格式相同。具体地,所述预设格式可以是基于消息摘要算法第五版(Message Digest Algorithm,简称MD5)确定的格式。本领域技术人员理解,处于保护用户隐私安全以及节约服务端内存等方面的考虑,所述存储于所述服务端中的设备的标识可能已经基于所述预设格式处理,导致所述设备总表中记录的所述设备的标识也是基于所述预设格式处理过的,则当所述步骤S201接收到所述查询请求后,可能需要对所述待查询设备的标识进行处理,使得所述待查询设备的标识的格式与所述设备总表中设备的标识的格式统一,以便执行本发明实施例后续步骤中的查找动作。
在一个优选例中,所述预设格式包括所述标识的预设位数,若所述待查询设备的标识的位数与预设位数不相同,则对所述待查询设备的标识进行编码,以将所述待查询设备的标识的位数转换为所述预设位数。例如,所述设备总表中记录的所述设备的标识基于所述MD5处理后均为32位,若所述待查询设备为ios***,由于ios***一般采用广告标识符(identifier For Identifier,简称IDFA)作为设备的标识,则所述步骤S201中接收到的所述待查询设备的标识可能为48位;又例如,若所述待查询设备为安卓***,则所述步骤S201中接收到的待查询设备的标识可能为36位,则需要执行本步骤,基于所述MD5处理所述待查询设备的标识,以将所述待查询设备的标识的位数转换为32位。
接下来执行步骤S203,根据所述待查询设备的标识查询预设的设备总表,以判断所述待查询设备的标识是否包括在所述设备总表中,所述设备总表记录有全部设备的标识。具体地,本领域技术人员可以参照上述图1所示实施例中所述步骤S102,在此不予赘述。在一个优选例中,当查询结果表明所述待查询设备的标识包括在所述设备总表中,则所述步骤S203的判断结果是肯定的;否则,所述步骤S203的判断结果是否定的。进一步地,若所述步骤S203的判断结果是肯定的,则进入步骤S204执行;否则,即所述待查询设备的标识未包括在所述设备总表中,则进入步骤S205执行。
优选地,在所述步骤S204中,若所述待查询设备的标识包括在所述设备总表中,则根据所述待查询设备的标识在统计表中查找所述待查询设备的属性,所述统计表记录有预设时间段内被查询的至少一个设备的标识和属性。具体地,本领域技术人员可以参照上述图1所示实施例中所述步骤S103,在此不予赘述。
优选地,在所述步骤S205中,若所述待查询设备的标识未包括在所述设备总表中,则拒绝所述查询请求。具体地,本领域技术人员可以参照上述图1所示实施例中所述步骤S104,在此不予赘述。
在本实施例的一个变化例中,所述步骤S201接收到的所述待查询设备的标识的格式与所述设备总表中记录的设备的标识的格式相同,则所述步骤S202可以被省略。
由上,采用第二实施例的方案,较之上述图1所示实施例的技术方案,本实施例通过增加所述步骤S202来进一步提高终端数据查询的成功率,避免因格式不符,导致接收到的待查询设备的标识无法与所述终端以及所述服务端记录的设备标识相匹配。
图4是本发明的第三实施例的一种用于终端的数据查询装置的结构示意图。本领域技术人员理解,本实施例所述数据查询装置4用于实施上述图1至图3所示实施例中的方法技术方案。具体地,在本实施例中,所述数据查询装置4包括接收模块43,用于接收查询请求,所述查询请求包括待查询设备的标识;查询模块45,用于根据所述待查询设备的标识查询预设的设备总表,以判断所述待查询设备的标识是否包括在所述设备总表中,所述设备总表记录有全部设备的标识;以及第一查找模块46,若所述待查询设备的标识包括在所述设备总表中,则根据所述待查询设备的标识在统计表中查找所述待查询设备的属性,所述统计表记录有预设时间段内被查询的至少一个设备的标识和属性;其中,所述设备总表以及所述统计表存储于所述终端的本地。
在一个变化例中,所述数据查询装置4还包括拒绝模块47,若所述待查询设备的标识未包括在所述设备总表中,则拒绝所述查询请求。
进一步地,所述数据查询装置4还包括第二查找模块48,若未在所述统计表中查找到所述待查询设备的属性,则根据所述待查询设备的标识查找服务端,以获得所述待查询设备的属性,所述服务端存储有全部设备的标识和属性,所述服务端与所述终端耦接。
进一步地,所述数据查询装置4还包括更新模块49,若在所述服务端中查找获得所述待查询设备的属性,则将所述待查询设备的标识和属性更新至所述统计表。
进一步地,所述设备总表为所述服务端中的全部设备的标识的压缩映射。
优选地,所述压缩映射基于哈希编码以及布隆过滤实现。
进一步地,所述数据查询装置4还包括用于建立所述设备总表的第一建立模块41,所述第一建立模块41包括第一获取子模块411,用于获取所述服务端存储的全部设备的标识;第一处理子模块412,用于对所述全部设备的标识进行预设数量的哈希编码,以分别获得预设长度的标识集合;以及第二处理子模块413,用于对所述标识集合进行布隆过滤,以获得所述设备总表。
进一步地,所述查询模块45包括第三处理子模块451,用于对所述待查询设备的标识进行所述预设数量的哈希编码;判断子模块452,用于判断编码后的待查询设备的标识在所述设备总表上对应的比特位是否均为有效;以及确认子模块453,若所述编码后的待查询设备的标识在所述设备总表上对应的比特位均为有效,则确认所述待查询设备的标识包括在所述设备总表中。
进一步地,所述数据查询装置4还包括处理模块44,用于在根据所述待查询设备的标识查询预设的设备总表之前,按照预设格式对所述待查询设备的标识进行处理,以使得所述待查询设备的标识的格式与所述设备总表中设备的标识的格式相同。
优选地,所述预设格式包括所述标识的预设位数,所述处理模块44包括第四处理子模块441,若所述待查询设备的标识的位数与预设位数不相同,则对所述待查询设备的标识进行编码,以将所述待查询设备的标识的位数转换为所述预设位数。
进一步地,所述统计表包括所述服务端存储的全部设备的标识和属性中,在所述预设时间段内被查询次数最高的至少一个设备的标识和属性。
优选地,所述数据查询装置4还包括用于建立所述统计表的第二建立模块42,所述第二建立模块包括第一确定子模块421,用于根据所述服务端存储的全部设备在所述预设时间段内的历史被查询次数,确定设备热点分布;第二确定子模块422,用于根据所述设备热点分布确定频率统计表,所述频率统计表包括所述预设时间段内至少一个设备的标识以及所述设备的历史被查询次数;第二获取子模块423,用于基于所述频率统计表获得所述预设时间段内历史被查询次数最高的预设数量的设备;查询子模块424,用于查询所述服务端以获得所述预设数量的设备中各设备的属性;以及生成子模块425,用于基于所述预设数量的设备和属性生成所述统计表。
关于所述数据查询装置4的工作原理、工作方式的更多内容,可以参照图1至图3中的相关描述,这里不再赘述。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于以计算机可读存储介质中,存储介质可以包括:ROM、RAM、磁盘或光盘等。
虽然本发明披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。
Claims (24)
1.一种用于终端的数据查询方法,其特征在于,包括如下步骤:
接收查询请求,所述查询请求包括待查询设备的标识;
根据所述待查询设备的标识查询预设的设备总表,以判断所述待查询设备的标识是否包括在所述设备总表中,所述设备总表记录有全部设备的标识;
若所述待查询设备的标识包括在所述设备总表中,则根据所述待查询设备的标识在统计表中查找所述待查询设备的属性,所述统计表记录有预设时间段内被查询的至少一个设备的标识和属性;
其中,所述设备总表以及所述统计表存储于所述终端的本地。
2.根据权利要求1所述的数据查询方法,其特征在于,若所述待查询设备的标识未包括在所述设备总表中,则拒绝所述查询请求。
3.根据权利要求1所述的数据查询方法,其特征在于,还包括如下步骤:
若未在所述统计表中查找到所述待查询设备的属性,则根据所述待查询设备的标识查找服务端,以获得所述待查询设备的属性,所述服务端存储有全部设备的标识和属性,所述服务端与所述终端耦接。
4.根据权利要求3所述的数据查询方法,其特征在于,还包括如下步骤:
若在所述服务端中查找获得所述待查询设备的属性,则将所述待查询设备的标识和属性更新至所述统计表。
5.根据权利要求3所述的数据查询方法,其特征在于,所述设备总表为所述服务端中的全部设备的标识的压缩映射。
6.根据权利要求5所述的数据查询方法,其特征在于,所述压缩映射基于哈希编码以及布隆过滤实现。
7.根据权利要求6所述的数据查询方法,其特征在于,所述设备总表基于如下步骤建立:
获取所述服务端存储的全部设备的标识;
对所述全部设备的标识进行预设数量的哈希编码,以分别获得预设长度的标识集合;
对所述标识集合进行布隆过滤,以获得所述设备总表。
8.根据权利要求7所述的数据查询方法,其特征在于,根据所述待查询设备的标识查询预设的设备总表,以判断所述待查询设备的标识是否包括在所述设备总表中,包括如下步骤:
对所述待查询设备的标识进行所述预设数量的哈希编码;
判断编码后的待查询设备的标识在所述设备总表上对应的比特位是否均为有效;
若所述编码后的待查询设备的标识在所述设备总表上对应的比特位均为有效,则确认所述待查询设备的标识包括在所述设备总表中。
9.根据权利要求1所述的数据查询方法,其特征在于,在根据所述待查询设备的标识查询预设的设备总表之前,包括如下步骤:
按照预设格式对所述待查询设备的标识进行处理,以使得所述待查询设备的标识的格式与所述设备总表中设备的标识的格式相同。
10.根据权利要求9所述的数据查询方法,其特征在于,所述预设格式包括所述标识的预设位数,所述按照预设格式对所述待查询设备的标识进行处理,包括如下步骤:
若所述待查询设备的标识的位数与预设位数不相同,则对所述待查询设备的标识进行编码,以将所述待查询设备的标识的位数转换为所述预设位数。
11.根据权利要求3所述的数据查询方法,其特征在于,所述统计表包括:所述服务端存储的全部设备的标识和属性中,在所述预设时间段内被查询次数最高的至少一个设备的标识和属性。
12.根据权利要求11所述的数据查询方法,其特征在于,所述统计表基于如下步骤建立:
根据所述服务端存储的全部设备在所述预设时间段内的历史被查询次数,确定设备热点分布;
根据所述设备热点分布确定频率统计表,所述频率统计表包括所述预设时间段内至少一个设备的标识以及所述设备的历史被查询次数;
基于所述频率统计表获得所述预设时间段内历史被查询次数最高的预设数量的设备;
查询所述服务端以获得所述预设数量的设备中各设备的属性;
基于所述预设数量的设备和属性生成所述统计表。
13.一种用于终端的数据查询装置,其特征在于,包括:
接收模块,用于接收查询请求,所述查询请求包括待查询设备的标识;
查询模块,用于根据所述待查询设备的标识查询预设的设备总表,以判断所述待查询设备的标识是否包括在所述设备总表中,所述设备总表记录有全部设备的标识;
第一查找模块,若所述待查询设备的标识包括在所述设备总表中,则根据所述待查询设备的标识在统计表中查找所述待查询设备的属性,所述统计表记录有预设时间段内被查询的至少一个设备的标识和属性;
其中,所述设备总表以及所述统计表存储于所述终端的本地。
14.根据权利要求13所述的数据查询装置,其特征在于,还包括拒绝模块,若所述待查询设备的标识未包括在所述设备总表中,则拒绝所述查询请求。
15.根据权利要求13所述的数据查询装置,其特征在于,还包括:
第二查找模块,若未在所述统计表中查找到所述待查询设备的属性,则根据所述待查询设备的标识查找服务端,以获得所述待查询设备的属性,所述服务端存储有全部设备的标识和属性,所述服务端与所述终端耦接。
16.根据权利要求15所述的数据查询装置,其特征在于,还包括:
更新模块,若在所述服务端中查找获得所述待查询设备的属性,则将所述待查询设备的标识和属性更新至所述统计表。
17.根据权利要求15所述的数据查询装置,其特征在于,所述设备总表为所述服务端中的全部设备的标识的压缩映射。
18.根据权利要求17所述的数据查询装置,其特征在于,所述压缩映射基于哈希编码以及布隆过滤实现。
19.根据权利要求18所述的数据查询装置,其特征在于,还包括用于建立所述设备总表的第一建立模块,所述第一建立模块包括:
第一获取子模块,用于获取所述服务端存储的全部设备的标识;
第一处理子模块,用于对所述全部设备的标识进行预设数量的哈希编码,
以分别获得预设长度的标识集合;
第二处理子模块,用于对所述标识集合进行布隆过滤,以获得所述设备总表。
20.根据权利要求19所述的数据查询装置,其特征在于,所述查询模块包括:
第三处理子模块,用于对所述待查询设备的标识进行所述预设数量的哈希编码;
判断子模块,用于判断编码后的待查询设备的标识在所述设备总表上对应的比特位是否均为有效;
确认子模块,若所述编码后的待查询设备的标识在所述设备总表上对应的比特位均为有效,则确认所述待查询设备的标识包括在所述设备总表中。
21.根据权利要求13所述的数据查询装置,其特征在于,还包括:
处理模块,用于在根据所述待查询设备的标识查询预设的设备总表之前,
按照预设格式对所述待查询设备的标识进行处理,以使得所述待查询设备的标识的格式与所述设备总表中设备的标识的格式相同。
22.根据权利要求21所述的数据查询装置,其特征在于,所述预设格式包括所述标识的预设位数,所述处理模块包括:
第四处理子模块,若所述待查询设备的标识的位数与预设位数不相同,则对所述待查询设备的标识进行编码,以将所述待查询设备的标识的位数转换为所述预设位数。
23.根据权利要求15所述的数据查询装置,其特征在于,所述统计表包括:所述服务端存储的全部设备的标识和属性中,在所述预设时间段内被查询次数最高的至少一个设备的标识和属性。
24.根据权利要求23所述的数据查询装置,其特征在于,还包括用于建立所述统计表的第二建立模块,所述第二建立模块包括:
第一确定子模块,用于根据所述服务端存储的全部设备在所述预设时间段内的历史被查询次数,确定设备热点分布;
第二确定子模块,用于根据所述设备热点分布确定频率统计表,所述频率统计表包括所述预设时间段内至少一个设备的标识以及所述设备的历史被查询次数;
第二获取子模块,用于基于所述频率统计表获得所述预设时间段内历史被查询次数最高的预设数量的设备;
查询子模块,用于查询所述服务端以获得所述预设数量的设备中各设备的属性;
生成子模块,用于基于所述预设数量的设备和属性生成所述统计表。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611259486.6A CN106815334A (zh) | 2016-12-30 | 2016-12-30 | 一种用于终端的数据查询方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611259486.6A CN106815334A (zh) | 2016-12-30 | 2016-12-30 | 一种用于终端的数据查询方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106815334A true CN106815334A (zh) | 2017-06-09 |
Family
ID=59110526
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611259486.6A Pending CN106815334A (zh) | 2016-12-30 | 2016-12-30 | 一种用于终端的数据查询方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106815334A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109067932A (zh) * | 2018-07-24 | 2018-12-21 | 广州贯行电能技术有限公司 | 一种数据采集终端无固定ip的数据传输方法及数据服务端 |
CN110309479A (zh) * | 2019-07-09 | 2019-10-08 | 西安点告网络科技有限公司 | 属性信息获取方法及装置 |
CN112182443A (zh) * | 2020-10-14 | 2021-01-05 | 北京理工大学 | 一种面向mes的标识查询***及方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102110132A (zh) * | 2010-12-08 | 2011-06-29 | 北京星网锐捷网络技术有限公司 | 统一资源定位符匹配查找方法、装置和网络侧设备 |
CN103150394A (zh) * | 2013-03-25 | 2013-06-12 | 中国人民解放军国防科学技术大学 | 面向高性能计算的分布式文件***元数据管理方法 |
CN103177005A (zh) * | 2011-12-21 | 2013-06-26 | 深圳市腾讯计算机***有限公司 | 一种数据访问的处理方法和*** |
US8504533B2 (en) * | 2011-12-20 | 2013-08-06 | Matthew Dewey | De-duplication reference tag reconciliation |
US9165124B1 (en) * | 2012-02-01 | 2015-10-20 | Convertro, Inc. | Systems and methods for identifying a returning web client |
CN105718455A (zh) * | 2014-12-01 | 2016-06-29 | 阿里巴巴集团控股有限公司 | 一种数据查询方法及装置 |
CN105843951A (zh) * | 2016-04-12 | 2016-08-10 | 北京小米移动软件有限公司 | 数据查询方法和装置 |
-
2016
- 2016-12-30 CN CN201611259486.6A patent/CN106815334A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102110132A (zh) * | 2010-12-08 | 2011-06-29 | 北京星网锐捷网络技术有限公司 | 统一资源定位符匹配查找方法、装置和网络侧设备 |
US8504533B2 (en) * | 2011-12-20 | 2013-08-06 | Matthew Dewey | De-duplication reference tag reconciliation |
CN103177005A (zh) * | 2011-12-21 | 2013-06-26 | 深圳市腾讯计算机***有限公司 | 一种数据访问的处理方法和*** |
US9165124B1 (en) * | 2012-02-01 | 2015-10-20 | Convertro, Inc. | Systems and methods for identifying a returning web client |
CN103150394A (zh) * | 2013-03-25 | 2013-06-12 | 中国人民解放军国防科学技术大学 | 面向高性能计算的分布式文件***元数据管理方法 |
CN105718455A (zh) * | 2014-12-01 | 2016-06-29 | 阿里巴巴集团控股有限公司 | 一种数据查询方法及装置 |
CN105843951A (zh) * | 2016-04-12 | 2016-08-10 | 北京小米移动软件有限公司 | 数据查询方法和装置 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109067932A (zh) * | 2018-07-24 | 2018-12-21 | 广州贯行电能技术有限公司 | 一种数据采集终端无固定ip的数据传输方法及数据服务端 |
CN110309479A (zh) * | 2019-07-09 | 2019-10-08 | 西安点告网络科技有限公司 | 属性信息获取方法及装置 |
CN112182443A (zh) * | 2020-10-14 | 2021-01-05 | 北京理工大学 | 一种面向mes的标识查询***及方法 |
CN112182443B (zh) * | 2020-10-14 | 2023-01-13 | 北京理工大学 | 一种面向mes的标识查询***及方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2021042923A1 (zh) | 数据分片存储方法、装置、终端及计算机可读存储介质 | |
JP6637620B2 (ja) | エージェント割振りの方法、装置、サーバーおよび記録媒体 | |
CN110399367B (zh) | 业务数据处理方法、装置、计算机设备及存储介质 | |
WO2021223662A1 (zh) | 基于扫码的页面访问 | |
CN106790552B (zh) | 一种基于内容分发网络的内容提供*** | |
CN109756584B (zh) | 域名解析方法、域名解析装置及计算机可读存储介质 | |
CN103458013A (zh) | 一种流媒体服务器集群负载均衡***及均衡方法 | |
US20030023605A1 (en) | Method and apparatus to facilitate fast network management protocol replies in large tables | |
CN106815334A (zh) | 一种用于终端的数据查询方法及装置 | |
WO2019179423A1 (zh) | 卡调用方法、装置、信息推送方法、装置及卡分配*** | |
CN105653473A (zh) | 基于二元标识的缓存数据访问方法及装置 | |
CN108154024B (zh) | 一种数据检索方法、装置及电子设备 | |
CN108632078B (zh) | 一种配置的获取方法 | |
CN110611937B (zh) | 数据分流方法、装置、边缘数据中心和可读存储介质 | |
US20100035592A1 (en) | Service processing method, service processing system, and service control point | |
CN112217653A (zh) | 策略下发方法、装置和*** | |
CN113067844B (zh) | 服务发现方法、装置及hnrf | |
CN101938383A (zh) | 多种业务的用户账号在线监控方法、***与监控服务*** | |
CN100407623C (zh) | 一种通信***中用户数据更新的方法及*** | |
CN113791733B (zh) | 信息的存储方法、装置、设备及存储介质 | |
CN104935953A (zh) | 一种基于实时转码的网络点播服务提供方法及*** | |
CN105025042A (zh) | 一种确定数据信息的方法及***、代理服务器 | |
EP1830538A1 (en) | A method for dynamic content delivery and a dynamic content transmission server | |
CN101494833B (zh) | 网络消息发送的方法、装置和*** | |
CN109460293B (zh) | 无线云计算***中分布式计算环境下的计算资源选择方法 |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170609 |