数据查询的方法及装置制造方法及图纸

技术编号:19140559 阅读:18 留言:0更新日期:2018-10-13 08:44
本说明书实施例提供一种数据查询的方法和装置,根据该方法,在接收查询请求后,检测缓存区域内是否存在与查询请求中所包含的查询参数相对应的缓存对象,在存在与上述查询参数相对应的缓存对象的情况下,获取第一版本信息和第二版本信息,其中,第一版本信息是缓存对象对应的数据表版本信息,第二版本信息是数据库中当前数据表的版本信息,数据库中至少存储的第一数据表和第二数据表,被配置为一个作为当前数据表,其余作为备份数据表;然后,判断第一版本信息和第二版本信息的一致性,在第一版本信息和第二版本信息一致的情况下,将缓存对象作为查询结果。如此,可以提高数据查询的有效性。

Data query method and device

The embodiment of this specification provides a method and apparatus for data query, according to which, after receiving a query request, it detects whether there is a cache object in the cache area corresponding to the query parameters contained in the query request, and obtains the first edition in the presence of a cache object corresponding to the query parameters described above. This information and the second version information, in which the first version information is the data table version information corresponding to the cache object, the second version information is the version information of the current data table in the database, the database at least stored in the first data table and the second data table, configured as a current data table, the rest as a backup Then, the consistency of the first version information and the second version information is judged, and the cache object is regarded as the query result when the first version information and the second version information are consistent. In this way, the validity of data query can be improved.

【技术实现步骤摘要】
数据查询的方法及装置
本说明书一个或多个实施例涉及计算机
,尤其涉及通过计算机进行数据查询的方法和装置。
技术介绍
在大数据分析业务中,通常会定时将收集到的业务数据预先处理好,然后通过数据同步工具同步到线上存储系统。在数据量巨大的情况下,一个数据表的全量或增量同步可能需要较长时间(例如四五个小时)才能完成。为了在这个过程中保证线上存储系统的正常工作,线上存储系统的数据表往往采用AB表的方法实现,即:对于一个线上的逻辑表,对应底层的两张物理表,例如逻辑表tb,对应两个物理表tb_0、tb_1。两张数据表可以交替使用,一个作为当前数据表,供线上存储系统提供查询等业务,另一个作为备份数据表,可以通过数据同步工具同步预先处理好的业务数据。实际使用中,在数据量较大的情况下,例如高并发业务系统中,为了提高查询效率,往往通过增加缓存的方式来提高查询率QPS和查询响应时间RT。这就带来缓存数据与当前数据表数据的一致性的问题。一方面,备份数据表可以按照预定的切换原则切换为当前数据表,另一方面,由于对数据的验证无法全面模拟线上的真实场景,当前数据表的数据有可能存在质量问题,在这样的情况下,需要临时切换回原来的数据,即将备份数据表切换为当前数据表。换而言之,在多种情况下都会出现备份数据表和当前数据表之间的切换。此时,缓存数据和由备份数据表切换来的当前数据表的数据可能出现不一致的情况。因此,希望能有改进的方案,能够验证缓存数据和当前数据表数据的一致性,以确保从缓存中获取的数据是正确的,从而进一步提高数据查询的有效性。
技术实现思路
本说明书一个或多个实施例描述了一种方法和装置,能够验证缓存数据和当前数据表数据的一致性,以确保从缓存中获取的数据是正确的,从而进一步提高数据查询的有效性。根据第一方面,提供了一种数据查询的方法,包括:接收查询请求,其中,所述查询请求包括查询参数;检测缓存区域内是否存在与所述查询参数相对应的缓存对象;在存在与所述查询参数相对应的缓存对象的情况下,获取第一版本信息和第二版本信息,所述第一版本信息是所述缓存对象对应的数据表版本信息,所述第二版本信息是数据库中当前数据表的版本信息,其中所述数据库中至少存储有第一数据表和第二数据表,所述第一数据表和第二数据表被配置为一个作为所述当前数据表,其余作为备份数据表;判断第一版本信息和第二版本信息的一致性;在所述第一版本信息和第二版本信息一致的情况下,将所述缓存对象作为查询结果。根据一方面的实施方式,所述方法还包括:在不存在与所述查询参数相对应的缓存对象,或者所述第一版本信息和第二版本信息不一致的情况下,根据所述查询参数向所述数据库查询所述当前数据表;根据从所述数据库返回的数据,生成查询结果。在一个可能的设计中,生成查询结果之后,还包括:根据所生成的查询结果更新缓存区域内的缓存对象。进一步地,在一个实施例中,根据所生成的查询结果更新缓存区域内的缓存对象包括:将生成的查询结果作为缓存对象添加到所述缓存区域内;将所述当前数据表的版本信息保存为该缓存对象的版本信息。在一种实施方式中,所述方法还包括:按照第一时间间隔从数据库中获取当前数据表的版本信息;将当前数据表的版本信息保存在本地配置表中。在一个实施例中,所述获取第一版本信息和第二版本信息包括:从所述本地配置表中获取所述第二版本信息。根据一种可能的设计,将当前数据表的版本信息保存在本地配置表中包括:检测所获取的当前数据表的版本信息与本地配置表中保存的当前数据表的版本信息是否一致;以及在不一致的情况下,按照所获取的当前数据表的版本信息更新本地配置表中当前数据表的版本信息。在一个实施例中,所述数据库包括数据表配置库,所述数据表配置库用于,当预定条件满足时,切换第一数据表和第二数据表的当前数据表和备份数据表状态;所述按照第一时间间隔从数据库中获取当前数据表的版本信息包括:从所述数据表配置库获取当前数据表的版本信息。根据一些实施方式,所述预定条件包括以下中的至少一项:完成备份数据表的更新;满足数据表切换的第二时间间隔;当前数据表出现预定错误。在一些可能的设计中,当前数据表的版本信息包括以下中的一项或多项:版本标识、时间戳。根据第二方面,提供一种数据查询的装置,包括:接收单元,配置为接收查询请求,其中,所述查询请求包括查询参数;检测单元,配置为检测缓存区域内是否存在与所述查询参数相对应的缓存对象;获取单元,配置为在存在与所述查询参数相对应的缓存对象的情况下,获取第一版本信息和第二版本信息,所述第一版本信息是所述缓存对象对应的数据表版本信息,所述第二版本信息是数据库中当前数据表的版本信息,其中所述数据库中至少存储有第一数据表和第二数据表,所述第一数据表和第二数据表被配置为一个作为所述当前数据表,其余作为备份数据表;对比单元,配置为判断第一版本信息和第二版本信息的一致性;确定单元,配置为在所述第一版本信息和第二版本信息一致的情况下,将所述缓存对象作为查询结果。根据第三方面,提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行第一方面的方法。根据第四方面,提供了一种计算设备,包括存储器和处理器,其特征在于,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第一方面的方法。通过本说明书实施例提供的方法和装置,在接收查询请求后,检测缓存区域内是否存在与查询请求中所包含的查询参数相对应的缓存对象,在存在与上述查询参数相对应的缓存对象的情况下,获取第一版本信息和第二版本信息,其中,第一版本信息是缓存对象对应的数据表版本信息,第二版本信息是数据库中当前数据表的版本信息,数据库中至少存储的第一数据表和第二数据表,被配置为一个作为当前数据表,其余作为备份数据表;然后,判断第一版本信息和第二版本信息的一致性,在第一版本信息和第二版本信息一致的情况下,将缓存对象作为查询结果。如此,可以验证缓存数据和当前数据表数据的一致性,以确保从缓存中获取的数据是正确的,从而提高数据查询的有效性。附图说明为了更清楚地说明本专利技术实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。图1示出本说明书披露的一个实施例的实施场景示意图;图2示出根据一个实施例的数据查询的方法流程图;图3示出数据库的一个具体例子;图4示出根据一个实施例的用于数据查询的装置的示意性框图。具体实施方式下面结合附图,对本说明书提供的方案进行描述。图1为本说明书披露的一个实施例的实施场景示意图。如图所示,在查询平台中可以通过客户端来接收和处理用户的查询请求。查询平台中还包括数据库,数据库中至少保存两份数据表,一个作为当前数据表,另一个作为备份数据表,当前数据表作为查询用的有效数据表,用于为客户端的查询提供服务,备份数据表可以接收新采集到的数据。数据表的数据更新时,可以通过不同的版本信息(例如更新时间等)进行标识。实践中,数据库可以设在客户端,也可以设在为客户端提供支持的服务器端,还可以设在存储平台(例如区块链、云存储等),本申请对此不作限定。在实际应用中,查询客户端在处理用本文档来自技高网...

【技术保护点】
1.一种数据查询的方法,包括:接收查询请求,其中,所述查询请求包括查询参数;检测缓存区域内是否存在与所述查询参数相对应的缓存对象;在存在与所述查询参数相对应的缓存对象的情况下,获取第一版本信息和第二版本信息,所述第一版本信息是所述缓存对象对应的数据表版本信息,所述第二版本信息是数据库中当前数据表的版本信息,其中所述数据库中至少存储有第一数据表和第二数据表,所述第一数据表和第二数据表被配置为一个作为所述当前数据表,其余作为备份数据表;判断第一版本信息和第二版本信息的一致性;在所述第一版本信息和第二版本信息一致的情况下,将所述缓存对象作为查询结果。

【技术特征摘要】
1.一种数据查询的方法,包括:接收查询请求,其中,所述查询请求包括查询参数;检测缓存区域内是否存在与所述查询参数相对应的缓存对象;在存在与所述查询参数相对应的缓存对象的情况下,获取第一版本信息和第二版本信息,所述第一版本信息是所述缓存对象对应的数据表版本信息,所述第二版本信息是数据库中当前数据表的版本信息,其中所述数据库中至少存储有第一数据表和第二数据表,所述第一数据表和第二数据表被配置为一个作为所述当前数据表,其余作为备份数据表;判断第一版本信息和第二版本信息的一致性;在所述第一版本信息和第二版本信息一致的情况下,将所述缓存对象作为查询结果。2.根据权利要求1所述的方法,所述方法还包括:在不存在与所述查询参数相对应的缓存对象,或者所述第一版本信息和第二版本信息不一致的情况下,根据所述查询参数向所述数据库查询所述当前数据表;根据从所述数据库返回的数据,生成查询结果。3.根据权利要求2所述的方法,其中,生成查询结果之后,还包括:根据所生成的查询结果更新缓存区域内的缓存对象。4.根据权利要求3所述的方法,其中,根据所生成的查询结果更新缓存区域内的缓存对象包括:将生成的查询结果作为缓存对象添加到所述缓存区域内;将所述当前数据表的版本信息保存为该缓存对象的版本信息。5.根据权利要求1所述的方法,其中,所述方法还包括:按照第一时间间隔从数据库中获取当前数据表的版本信息;将当前数据表的版本信息保存在本地配置表中。6.根据权利要求5所述的方法,其中,所述获取第一版本信息和第二版本信息包括:从所述本地配置表中获取所述第二版本信息。7.根据权利要求5所述的方法,其中,将当前数据表的版本信息保存在本地配置表中包括:检测所获取的当前数据表的版本信息与本地配置表中保存的当前数据表的版本信息是否一致;以及在不一致的情况下,按照所获取的当前数据表的版本信息更新本地配置表中当前数据表的版本信息。8.根据权利要求5所述的方法,其中,所述数据库包括数据表配置库,所述数据表配置库用于,当预定条件满足时,切换第一数据表和第二数据表中当前数据表和备份数据表状态;所述按照第一时间间隔从数据库中获取当前数据表的版本信息包括:从所述数据表配置库获取当前数据表的版本信息。9.根据权利要求8所述的方法,其中,所述预定条件包括以下中的至少一项:完成备份数据表的更新;满足数据表切换的第二时间间隔;当前数据表出现预定错误。10.根据权利要求1所述的方法,其中,当前数据表的版本信息包括以下中的一项或多项:版本标识、时间戳。11.一种数据查询的装置,包括:接收单元,配置为接收查询请求,其中,所述查询请求包括查询参数;检测单元,配置为检测缓存区域内是否存在与所述查询参数相对应的缓存对象;获取单元,配置为在存在与所...

【专利技术属性】
技术研发人员:韩杰
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛,KY

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1