掌桥专利:专业的专利平台
掌桥专利
首页

一种数据查询系统以及数据查询方法、装置和服务器

文献发布时间:2023-06-19 09:51:02


一种数据查询系统以及数据查询方法、装置和服务器

技术领域

本发明实施例涉及数据处理技术领域,尤其涉及一种数据查询系统以及数据查询方法、装置和服务器。

背景技术

随着互联网技术的快速发展,在互联网领域中存在大量不同业务场景下的互联网数据,以向其他用户进行优质内容推荐,例如线上发布的动态、视频和音频等多媒体资源的推送。目前,在推荐系统中,通常会采用键值对(key-value)的方式,将各个推荐候选项的候选项标识(如候选项ID号等)作为key值,并将该推荐候选项的所有描述信息(如推荐候选项的发布者、发布时间、当前浏览或观看数等)作为该key值下的具体value内容,从而生成对应的正排数据集,后续通过查询该正排数据集,能够准确实现推荐内容的召回、过滤和排序。

现有的数据查询系统中通常是分离出独立的查询服务,该查询服务具备数据同步和更新的机制,此时外部设备统一通过访问该查询服务,以通过网络访问该查询服务中的各正排数据集,来获取相应的正排数据进行相应推荐条件下的查询。

然而,随着业务的不断发展,查询服务对于正排数据的访问量也不断增大,此时由于网络带宽的硬件限制,无法满足在低延迟下成功访问大量正排数据的要求,从而在正排数据访问量过大时会导致相应的查询性能瓶颈。

发明内容

本发明实施例提供了一种数据查询系统以及数据查询方法、装置和服务器,避免由于网络带宽限制导致的查询性能瓶颈,提高数据查询的高效性和准确性。

第一方面,本发明实施例提供了一种数据查询系统,该系统包括:在线查询库、数据更新队列和在线查询服务,所述在线查询库存储待查询的在线数据集,并部署于所述在线查询服务的本地内存中,所述数据更新队列存储所述在线数据集的更新日志;其中,

所述在线查询服务根据所述数据更新队列中的更新日志对应更新所述在线查询库中的在线数据集,并在接收到数据查询指令时,通过本地内存查询所述在线查询库中的在线数据集。

第二方面,本发明实施例提供了一种数据查询方法,应用于上述第一方面所述的数据查询系统中,该方法包括:

根据数据更新队列面向待查询的在线数据集存储的更新日志,对应更新在线查询库中的在线数据集,所述在线查询库部署于在线查询服务的本地内存中;

如果通过所述在线查询服务接收到数据查询指令,则通过本地内存查询所述在线查询库中的在线数据集。

第三方面,本发明实施例提供了一种数据查询装置,配置于上述第一方面所述的数据查询系统中,该装置包括:

数据更新模块,用于根据数据更新队列面向待查询的在线数据集存储的更新日志,对应更新在线查询库中的在线数据集,所述在线查询库部署于在线查询服务的本地内存中;

数据查询模块,用于如果通过所述在线查询服务接收到数据查询指令,则通过本地内存查询所述在线查询库中的在线数据集。

第四方面,本发明实施例提供了一种服务器,该服务器包括:

一个或多个处理器;

存储装置,用于存储一个或多个程序;

当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明任意实施例所述的数据查询方法。

第五方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明任意实施例所述的数据查询方法。

本发明实施例提供的一种数据查询系统以及数据查询方法、装置和服务器,在在线查询服务的本地内存上部署在线查询库,用于存储待查询的在线数据集,并通过数据更新队列存储该在线数据集的更新日志,使得在线查询服务能够通过实时读取数据更新队列中增加的更新日志,来对应更新在线查询库中的在线数据集,从而保证在线查询库中的查询数据准确性,同时在线查询服务在接收到数据查询指令时,能够通过本地内存来直接查询在线查询库中的在线数据集,避免通过网络访问待查询的数据时由于网络带宽限制而产生查询性能瓶颈的问题,将网络访问查询转换为本地内存访问查询,极大降低了数据查询的访问延时,从而提高了数据查询的高效性。

附图说明

通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:

图1为本发明实施例一提供的一种数据查询系统的原理架构图;

图2为本发明实施例二提供的一种数据查询系统的结构示意图;

图3为本发明实施例三提供的一种数据查询方法的流程图;

图4为本发明实施例四提供的一种数据查询方法的流程图;

图5为本发明实施例五提供的一种数据查询装置的结构示意图;

图6为本发明实施例六提供的一种服务器的结构示意图。

具体实施方式

下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。此外,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。

实施例一

图1为本发明实施例一提供的一种数据查询系统的原理架构图。本实施例可适用于对任一种业务场景下的发布数据进行查询的情况中,如资源推荐服务中需要查询各个用户已经发布的各类多媒体资源等。具体的,参照图1,该数据查询系统可以包括:在线查询库110、数据更新队列120和在线查询服务130。

其中,在线查询库110存储待查询的在线数据集,并部署于在线查询服务130的本地内存中,数据更新队列120存储在线数据集的更新日志;具体的,在线查询服务130根据数据更新队列120中的更新日志对应更新在线查询库110中的在线数据集,并在接收到数据查询指令时,通过本地内存查询在线查询库110中的在线数据集。

可选的,随着各类多媒体资源在网络上的广泛传播,在不同业务场景下会存在对相应的多媒体资源进行查询的需求,例如在视频推荐场景下,需要对网络中已发布的多媒体资源进行相应的推荐查询等,此时本实施例会专门分离出独立的在线查询服务130,后续通过该在线查询服务130执行对应的数据查询操作。

此时,为了保证数据查询的高效性和准确性,本实施例中的数据查询系统需要满足如下的基本条件:1)由于现在的大型数据查询服务都是分布式的,每一个查询请求可能由一个机器集群中的不同机器进行处理,因此要求不同机器通过该数据查询系统所查询到的数据具备一致性;2)由于资源数据的具体内容会随着用户执行的各项资源操作不断变化,因此要求待查询的在线数据集在存储后是支持动态更新的,并且需要保证动态更新的实时性;3)要求能够满足在低延时下成功访问大量待查询的在线数据的需求。

然而,现有的数据查询方式通常会将待查询的数据统一存储在redis集群中,该在线查询服务130在执行数据查询操作时,需要通过网络来访问该redis集群,以获取相应的待查询数据进行目标查询条件下的查询,此时由于网络带宽的硬件限制,无法满足在低延迟下成功访问大量待查询数据的要求,因此本实施例需要解决由网络带宽限制而产生查询性能瓶颈的问题。

具体的,为了避免由于网络带宽限制而导致的查询性能瓶颈,本实施例会在分离出的在线查询服务130所在机器的本地内存中部署一个相应的在线查询库110,利用该在线查询库110来存储各类资源数据,作为本实施例中待查询的在线数据集。此时,在通过在线查询服务130执行相应的数据查询操作时,能够从本地内存中直接访问到大量待查询的在线数据集,从而将通过网络访问转换为通过本地内存访问,避免通过网络来访问待查询的在线数据集,同时利用本地内存具备的低延时性能,保证数据查询的高效性。

需要说明的是,为了保证数据查询的高效性,本实施例的在线查询库110可以采用键值对(key-value)的方式来存储待查询的每一在线数据,将待查询的每一在线数据的数据标识作为该在线数据的key值,并将该在线数据的所有描述信息(如该在线数据的发布者、发布时间、当前浏览或观看数和点赞转发量等)作为该key值下的具体value内容,使得在线查询库110中的在线数据集能够以正排数据的方式被查询,保证数据查询的全面性。

此外,由于待查询的每一在线数据的具体value内容中类似于当前浏览或观看数和点赞转发量等此类数据,会随着用户执行的相应资源操作而不断发生变化,因此在线查询库110中的在线数据集是动态存储的,此时保证在线数据集的动态存储准确性,本实施例还会额外设置一个对应的数据更新队列120,在用户对某一在线数据执行对应的资源更新操作时,通过该数据更新队列120来存储为该在线数据所生成的更新日志,该更新日志中记录有当前更新的在线数据的标识,以及当前更新的具体操作信息,以便后续对在线查询库110中的在线数据集进行准确更新。

需要说明的是,本实施例中的数据更新队列可以采用Kafka消息中间件来设置,以保证更新日志的有序写入和高效读取。

在本实施例中,根据不同业务场景下的数据查询需求,首先会查找出该业务场景下大量需要执行查询处理的资源数据,并采用键值对的方式生成相应的正排数据集,作为本实施例中待查询的在线数据集,存储于在线查询服务130的本地内存中所部属的在线查询库110中,同时根据用户面向各个在线数据所执行的各项资源操作,例如点赞转发等,判断在线查询库110中的在线数据集是否需要发生变化,在由用户所执行的某一项资源操作而导致某一在线数据发生改变时,会生成该在线数据的更新日志,对应写入到本实施例的数据更新队列120中,因此为了保证待查询的在线数据的及时更新,本实施例会通过在线查询服务130实时从该数据更新队列120中读取相应的更新日志,并按照该更新日志对在本地内存中部署的在线数据库110中指向的在线数据进行对应更新,从而保证在线数据库110中的在线数据集的准确性。同时,由于外部设备会统一通过访问该在线查询服务130,来执行对应的数据查询操作,因此在通过在线查询服务130接收到对应的数据查询指令时,本实施例可以直接从本地内存中部署的在线查询库110中读取相应的在线数据集,并按照该数据查询指令中的查询条件对每一在线数据进行查询分析,从而得到对应的查询结果。此时,在数据查询流程中,将通过网络访问转换为通过本地内存访问,避免通过网络访问待查询的数据时由于网络带宽限制而产生查询性能瓶颈的问题,极大降低了数据查询的访问延时。

同时,由于对数据查询时通常会针对当前查询的业务场景对应设置各种查询条件,以对在线查询库110中的在线数据集进行过滤,此时不断增多的查询条件会使查询流程的执行代码的可读性变得较差,而且由于该执行代码在架构层面来说是黑盒,难以支持执行代码的维护、复用和代码优化,因此本实施例会预先对各类查询条件进行拆分,以得到最低单元下的各个查询子条件,并为每一查询子条件分别设置对应的查询算子,该查询算子仅支持符合对应一项查询子条件下的数据查询,并将各类查询子条件下的查询算子分别注册到本实施例的在线查询服务130中,使得该在线查询服务130中预先注册有各类查询子条件下的查询算子,后续在需要执行查询操作时,可以通过该查询算子之间的不同组合逻辑来生成对应的查询总条件,进而执行在线数据集的相应查询。

具体的,本实施例可以在在线查询服务130上开发对应的算子配置接口131,查询方在每次执行查询操作时,首先会通过该算子配置接口131设置当前查询需要采用的目标查询算子以及该目标查询算子之间的组合逻辑,从而生成与当前查询适配的算子配置信息,此时在线查询服务130可以通过其上开发的算子配置接口131来接收当前查询适配的算子配置信息,并通过解析该算子配置信息,确定当前查询采用的目标查询算子以及目标查询算子之间的组合逻辑,以便后续利用该目标查询算子以及目标查询算子之间的组合逻辑,来执行在线查询库110中的数据准确查询;此时,本实施例中通过动态配置查询算子的方式,能够自由组合需要执行的查询逻辑,从而提高数据查询代码的复用性和可维护性。

示例性的,通过在线查询服务130执行对应的数据查询操作时,首先会创建一个FilterPipeline对象,然后通过解析当前查询适配的算子配置信息,确定出当前查询采用的目标查询算子以及目标查询算子之间的组合逻辑,此时首先通过select()来读取在线查询库110中待查询的每一在线数据的数据标识,然后通过filter()来添加一系列目标查询算子,每个目标查询算子会根据所读取的每一在线数据的数据标识作为key值对应查询出该在线数据的具体value内容,然后利用目标查询算子之间的组合逻辑判断该在线数据是否需要过滤,最终通过export()将通过查询条件的在线数据对应的正排信息全部导出,得到对应的查询结果。

需要说明的是,本实施例中的在线查询服务130可支持任一中查询子条件下的算子注册,保证查询算子的丰富性,同时查询算子的设计和语义可以参照大数据处理流水线中一些常用的算子类型,对此不作限定。

本实施例提供的技术方案,在在线查询服务的本地内存上部署在线查询库,用于存储待查询的在线数据集,并通过数据更新队列存储该在线数据集的更新日志,使得在线查询服务能够通过实时读取数据更新队列中增加的更新日志,来对应更新在线查询库中的在线数据集,从而保证在线查询库中的查询数据准确性,同时在线查询服务在接收到数据查询指令时,能够通过本地内存来直接查询在线查询库中的在线数据集,避免通过网络访问待查询的数据时由于网络带宽限制而产生查询性能瓶颈的问题,将网络访问查询转换为本地内存访问查询,极大降低了数据查询的访问延时,从而提高了数据查询的高效性。

实施例二

图2为本发明实施例二提供的一种数据查询系统的结构示意图。本实施例是在上述实施例提供的技术方案的基础上进行优化。参照图2,该数据查询系统可以包括在线查询库210、数据更新队列220和在线查询服务230。

其中,在线查询库210存储待查询的在线数据集,并部署于在线查询服务230的本地内存中,数据更新队列220存储在线数据集的更新日志;具体的,在线查询服务230根据数据更新队列220中的更新日志对应更新在线查询库210中的在线数据集,并在接收到数据查询指令时,通过本地内存查询在线查询库210中的在线数据集。

此外,在线查询服务230内预先注册有各类查询子条件下的查询算子,以通过查询算子的不同组合逻辑实现在线数据集的查询。在线查询服务230上开发有算子配置接口231,以接收当前查询适配的算子配置信息,该算子配置信息中记录有当前查询采用的目标查询算子以及目标查询算子之间的组合逻辑。

同时,本实施例中的数据查询系统除了包括在线查询库210、数据更新队列220和在线查询服务230之外,还可以包括离线数据源端240和离线构建进程250。

其中,离线数据源端240用于存储待查询的离线数据集;具体的,离线数据源端240在离线数据集发生更新时,生成对应的更新日志并写入到数据更新队列220中;离线构建进程250定期从离线数据源端中读取相应的离线数据集来构建在线数据集,并将所构建的在线数据集分发给在线查询服务230,以存储至在线查询库210中。

可选的,为了保证互联网上发布的各类资源数据的存储性能,本实施例会专门设置一个离线数据源端240,来对已发布的各类资源数据进行存储,也就是本实施例中的离线数据集,此时该离线数据集可以采用键值对的方式来生成对应的正排数据进行存储。

具体的,离线数据源端240上会离线维护一张宽表,该宽表中的每一行对应存储一个离线数据的正排信息(如离线数据的发布者、发布时间、当前观看或浏览数和点赞转发量等),并作为本实施例中在线查询库210中存储的在线数据集的数据源,本实施例仅要求离线数据源端240具备高存储能力即可,而不需要具备在线查询服务230所在机器要求的高并发读取性能。示例性的,本实施例中的离线数据源端240可以采用tidb数据库进行离线数据集存储。

此外,当用户面向离线数据集中的任一离线数据执行对应的资源操作时,可能会引起该离线数据在离线数据源端240中的正排信息改变,因此在检测到离线数据源端240内存储的离线数据集中的某一离线数据发生更新时,会生成该离线数据的更新日志,例如tidb数据库对于更新的离线数据会生成对应的binlog日志,并将该更新日志写入到本实施例的数据更新队列220中,以便后续执行在线查询库210中在线数据集的实时更新。

同时,为了保证在线查询库210中存储的在线数据集的动态更新,本实施例会通过离线构建进程250定期触发执行一个批量读取任务,以定期从离线数据源端240中存储的离线数据集中读取出相应的离线数据集,并对所读取出的离线数据集进行符合查询高性能下的格式转换,从而构建成对应的在线数据集,并将所构建的在线数据集分发给在线查询服务230,由在线查询服务230将所构建的在线数据集存储至部署于本地内存的在线查询库210中。

具体的,离线构建进程250所构建的在线数据集可以采用哈希表的数据结构进行存储,并在存储格式中采用数据偏移来代替内存地址的指针,使整个在线数据集可以被存储为文件,此时还可以标记出在线数据集的构建时间戳,以采用数据更新队列220中在该构建时间戳之后写入的更新日志,来对在线查询库210中的在线数据集进行及时更新,从而保证在线数据集的更新效率。

进一步的,为了保证在线查询库210中在线数据集的更新准确性,本实施例还会在在线查询服务230上配置对应的在线加载进程232和在线更新进程233;具体的,在线加载进程232加载离线构建进程250分发的在线数据集,并存储至在线查询库210中;在线更新进程233按照在线数据集的构建时间戳,实时从数据更新队列中读取在线数据集的更新日志,并在在线查询库210中对应更新该在线数据集。

示例性的,通过在线加载进程232不断从离线构建进程250中获取离线构建的数据集文件,也就是本实施例中离线构建进程250分发的在线数据集,并采用一种内存映射文件的方式(如mmap方法),将在线数据集加载并存储到本地内存中的在线查询库210中;同时,由于在线查询库210中的在线数据集会动态更新,因此需要通过在线更新进程233按照该在线数据集被离线构建进程250构建时标记的构建时间戳,从数据更新队列220中实时读取在该构建时间戳之后写入的各个在线数据的更新日志,也就是持续读取最新的更新日志,并在读取过程中根据所读取的更新日志对应更新在线查询库210中指向的在线数据集的正排内容,从而采用离线构建的全量在线数据集与在线通过数据更新队列220进行的增量更新相结合的方式,保证在线查询库210中在线数据集的可持久化以及实时更新。

本实施例提供的技术方案,采用离线构建的全量在线数据集和在线通过数据更新队列进行增量更新两者相结合的方式,对在线查询库中的在线数据集进行及时更新,保证本地内存中在线数据集的全面性和准确性,同时在线查询服务利用本地内存独立存储,并维护完整的在线数据集,以本地内存访问替代网络访问,极大降低了数据查询的访问延时,从而提高了数据查询的高效性。

实施例三

图3为本发明实施例三提供的一种数据查询方法的流程图,本实施例可适用于对任一种业务场景下的发布数据进行查询的情况中,如资源推荐服务中需要查询各个用户已经发布的各类多媒体资源等,可应用于本发明任意实施例提供的数据查询系统中。本实施例提供的一种数据查询方法可以由本发明实施例提供的数据查询装置来执行,该装置可以通过软件和/或硬件的方式来实现,并集成在执行本方法的服务器中。

具体的,参考图3,该方法可以包括如下非顺序执行的步骤:

S310,根据数据更新队列面向待查询的在线数据集存储的更新日志,对应更新在线查询库中的在线数据集。

可选的,为了避免由于网络带宽限制而导致的查询性能瓶颈,本实施例会在分离出的在线查询服务所在机器的本地内存中部署一个相应的在线查询库,利用该在线查询库来存储各类资源数据,作为本实施例中待查询的在线数据集。此时,在通过在线查询服务执行相应的数据查询操作时,能够从本地内存中直接访问到大量待查询的在线数据集,从而将通过网络访问转换为通过本地内存访问,避免通过网络来访问待查询的在线数据集,同时利用本地内存具备的低延时性能,保证数据查询的高效性。

此时,由于待查询的每一在线数据的具体内容中类似于当前浏览或观看数和点赞转发量等此类数据,会随着用户执行的相应资源操作而不断发生变化,因此在线查询库中的在线数据集是动态存储的,此时保证在线数据集的动态存储准确性,本实施例还会额外设置一个对应的数据更新队列,在用户对某一在线数据执行对应的资源更新操作时,通过该数据更新队列来存储为该在线数据所生成的更新日志,该更新日志中记录有当前更新的在线数据的标识,以及当前更新的具体操作信息,以便后续对在线查询库中的在线数据集进行准确更新。

具体的,本实施例根据用户面向各个在线数据所执行的各项资源操作,例如点赞转发等,判断在线查询库中的在线数据集是否需要发生变化,在由用户所执行的某一项资源操作而导致某一在线数据发生改变时,会生成该在线数据的更新日志,对应写入到本实施例的数据更新队列中,因此为了保证待查询的在线数据的及时更新,需要通过在线查询服务实时从该数据更新队列中读取相应的更新日志,然后按照该更新日志从在本地内存中部署的在线数据库中存储的在线数据集中查找出该更新日志指向的在线数据,并进行对应更新,从而保证在线数据库中的在线数据集的准确性。

S320,如果通过在线查询服务接收到数据查询指令,则通过本地内存查询在线查询库中的在线数据集。

可选的,由于外部设备会统一通过访问该在线查询服务,来执行对应的数据查询操作,因此在通过在线查询服务接收到对应的数据查询指令时,本实施例可以直接从本地内存中部署的在线查询库中读取相应的在线数据集,并按照该数据查询指令中的查询条件对每一在线数据进行查询分析,从而得到对应的查询结果。此时,在数据查询流程中,将通过网络访问转换为通过本地内存访问,避免通过网络访问待查询的数据时由于网络带宽限制而产生查询性能瓶颈的问题,极大降低了数据查询的访问延时。

示例性的,由于对数据查询时通常会针对当前查询的业务场景对应设置各种查询条件,以对在线查询库中的在线数据集进行过滤,此时不断增多的查询条件会使查询流程的执行代码的可读性变得较差,而且由于该执行代码在架构层面来说是黑盒,难以支持执行代码的维护、复用和代码优化,因此本实施例会预先对各类查询条件进行拆分,以得到最低单元下的各个查询子条件,并为每一查询子条件分别设置对应的查询算子,该查询算子仅支持符合对应一项查询子条件下的数据查询,并将各类查询子条件下的查询算子分别注册到本实施例的在线查询服务中,使得该在线查询服务中预先注册有各类查询子条件下的查询算子,后续在需要执行查询操作时,可以通过该查询算子之间的不同组合逻辑来生成对应的查询总条件,进而执行在线数据集的相应查询。

因此,本实施例中的如果通过在线查询服务接收到数据查询指令,则通过本地内存查询所述在线查询库中的在线数据集,具体可以包括:如果通过在线查询服务接收到数据查询指令,则从数据查询指令中解析出当前查询适配的算子配置信息;按照算子配置信息,从在线查询服务内已注册的查询算子中查找当前查询采用的目标查询算子,并确定目标查询算子之间的组合逻辑;利用目标查询算子以及组合逻辑,通过本地内存对在线数据集中的每一在线数据进行查询,得到对应的查询结果。

具体的,本实施例可以在在线查询服务上开发对应的算子配置接口,查询方在每次执行查询操作时,首先会通过该算子配置接口设置当前查询需要采用的目标查询算子以及该目标查询算子之间的组合逻辑,从而生成与当前查询适配的算子配置信息,此时如果通过在线查询服务接收到数据查询指令,则通过在线查询服务可以利用其上开发的算子配置接口来接收当前查询适配的算子配置信息,并通过解析该算子配置信息,确定当前查询采用的目标查询算子以及目标查询算子之间的组合逻辑,并读取在线查询库中待查询的每一在线数据的数据标识,然后利用每一目标查询算子根据所读取的每一在线数据的数据标识作为key值对应查询出该在线数据的具体value内容,并利用目标查询算子之间的组合逻辑判断该在线数据是否需要过滤,最终将通过查询条件的在线数据对应的正排信息全部导出,得到对应的查询结果,从而实现在线查询库中的数据准确查询;此时,本实施例中通过动态配置查询算子的方式,能够自由组合需要执行的查询逻辑,从而提高数据查询代码的复用性和可维护性。

本实施例提供的技术方案,在在线查询服务的本地内存上部署在线查询库,用于存储待查询的在线数据集,并通过数据更新队列存储该在线数据集的更新日志,使得在线查询服务能够通过实时读取数据更新队列中增加的更新日志,来对应更新在线查询库中的在线数据集,从而保证在线查询库中的查询数据准确性,同时在线查询服务在接收到数据查询指令时,能够通过本地内存来直接查询在线查询库中的在线数据集,避免通过网络访问待查询的数据时由于网络带宽限制而产生查询性能瓶颈的问题,将网络访问查询转换为本地内存访问查询,极大降低了数据查询的访问延时,从而提高了数据查询的高效性。

实施例四

图4为本发明实施例四提供的一种数据查询方法的流程图。本实施例是在上述实施例的基础上进行优化。具体的,如图4所示,本实施例主要对于在线查询库中在线数据集的具体更新过程进行详细的解释说明。

可选的,如图4所示,本实施例中可以包括如下步骤:

S410,将从离线数据源端的离线数据集中构建的在线数据集加载并存储至本地内存上部署的在线查询库中。

可选的,为了保证互联网上发布的各类资源数据的存储性能,本实施例会专门设置一个离线数据源端,来对已发布的各类资源数据进行存储,也就是本实施例中的离线数据集,此时该离线数据集可以采用键值对的方式来生成对应的正排数据进行存储。

同时,为了保证在线查询库中存储的在线数据集的动态更新,本实施例会通过离线构建进程定期触发执行一个批量读取任务,以定期从离线数据源端中存储的离线数据集中读取出相应的离线数据集,并对所读取出的离线数据集进行符合查询高性能下的格式转换,从而构建成对应的在线数据集,并将所构建的在线数据集分发给在线查询服务,由在线查询服务将所构建的在线数据集存储至部署于本地内存的在线查询库中。

具体的,本实施例通过在线查询服务上配置的在线加载进程不断从离线构建进程中获取离线构建的数据集文件,也就是本实施例中离线构建进程分发的在线数据集,并采用一种内存映射文件的方式(如mmap方法),将在线数据集加载并存储到本地内存中的在线查询库中。

S420,按照在线数据集的构建时间戳,实时从数据更新队列中读取对应的更新日志,并在在线查询库中对应更新该更新日志指向的在线数据。

具体的,由于在线查询库中的在线数据集会动态更新,因此需要通过在线查询服务上配置的在线更新进程按照该在线数据集被离线构建进程构建时标记的构建时间戳,从数据更新队列中实时读取在该构建时间戳之后写入的各个在线数据的更新日志,也就是持续读取最新的更新日志,并在读取过程中根据所读取的更新日志对应更新在线查询库中指向的在线数据集的正排内容,从而采用离线构建的全量在线数据集与在线通过数据更新队列进行的增量更新相结合的方式,保证在线查询库中在线数据集的可持久化以及实时更新。

S430,如果通过在线查询服务接收到数据查询指令,则通过本地内存查询在线查询库中的在线数据集。

S440,将在线数据集的查询结果提交给对应的推荐服务。

可选的,在通过本地内存查询在线查询库中的在线数据集后,会得到符合查询条件的查询结果,此时如果在资源推荐场景下,可以将该查询结果提交给对应的推荐服务,由该推荐服务进行准确推送,保证数据推荐的高效性。

本实施例提供的技术方案,采用离线构建的全量在线数据集和在线通过数据更新队列进行增量更新两者相结合的方式,对在线查询库中的在线数据集进行及时更新,保证本地内存中在线数据集的全面性和准确性,同时在线查询服务利用本地内存独立存储,并维护完整的在线数据集,以本地内存访问替代网络访问,极大降低了数据查询的访问延时,从而提高了数据查询的高效性。

实施例五

图5为本发明实施例五提供的一种数据查询装置的结构示意图,可配置于本发明任意实施例提供的数据查询系统中。具体的,如图5所示,该装置可以包括:

数据更新模块510,用于根据数据更新队列面向待查询的在线数据集存储的更新日志,对应更新在线查询库中的在线数据集,所述在线查询库部署于在线查询服务的本地内存中;

数据查询模块520,用于如果通过所述在线查询服务接收到数据查询指令,则通过本地内存查询所述在线查询库中的在线数据集。

本实施例提供的技术方案,在在线查询服务的本地内存上部署在线查询库,用于存储待查询的在线数据集,并通过数据更新队列存储该在线数据集的更新日志,使得在线查询服务能够通过实时读取数据更新队列中增加的更新日志,来对应更新在线查询库中的在线数据集,从而保证在线查询库中的查询数据准确性,同时在线查询服务在接收到数据查询指令时,能够通过本地内存来直接查询在线查询库中的在线数据集,避免通过网络访问待查询的数据时由于网络带宽限制而产生查询性能瓶颈的问题,将网络访问查询转换为本地内存访问查询,极大降低了数据查询的访问延时,从而提高了数据查询的高效性。

本实施例提供的数据查询装置可适用于上述任意实施例提供的数据查询方法,具备相应的功能和有益效果。

实施例六

图6为本发明实施例六提供的一种服务器的结构示意图,如图6所示,该服务器包括处理器60、存储装置61和通信装置62;服务器中处理器60的数量可以是一个或多个,图6中以一个处理器60为例;服务器中的处理器60、存储装置61和通信装置62可以通过总线或其他方式连接,图6中以通过总线连接为例。

本实施例提供的一种服务器可用于执行上述任意实施例提供的数据查询方法,具备相应的功能和有益效果。

实施例七

本发明实施例七还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时可实现上述任意实施例中的数据查询方法。该方法可应用于本发明任意实施例提供的数据查询系统中,具体可以包括如下非顺序执行的步骤:

根据数据更新队列面向待查询的在线数据集存储的更新日志,对应更新在线查询库中的在线数据集,所述在线查询库部署于在线查询服务的本地内存中;

如果通过所述在线查询服务接收到数据查询指令,则通过本地内存查询所述在线查询库中的在线数据集。

当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的数据查询方法中的相关操作。

通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

值得注意的是,上述数据查询装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。

以上所述仅为本发明的优选实施例,并不用于限制本发明,对于本领域技术人员而言,本发明可以有各种改动和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

相关技术
  • 服务器数据查询方法、云端服务器及数据查询系统
  • 一种数据查询方法、数据查询插件和数据查询服务器
技术分类

06120112326757