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.一种数据查询的方法,包括:接收查询请求,其中,所述查询请求包括查询参数;检测缓存区域内是否存在与所述查询参数相对应的缓存对象;在存在与所述查询参数相对应的缓存对象的情况下,获取第一版本信息和第二版本信息,所述第一版本信息是所述缓存对象对应的数据表版本信息,所述第二版本信息是数据库中当前数据表的版本信息,其中所述数据库中至少存储有第一数据表和第二数据表,所述第一数据表和第二数据表被配置为一个作为所述当前数据表,其余作为备份数据表;判断第一版本信息和第二版本信息的一致性;在所述第一版本信息和第二版本信息一致的情况下,将所述缓存对象作为查询结果。
【技术特征摘要】
1.一种数据查询的方法,包括:接收查询请求,其中,所述查询请求包括查询参数;检测缓存区域内是否存在与所述查询参数相对应的缓存对象;在存在与所述查询参数相对应的缓存对象的情况下,获取第一版本信息和第二版本信息,所述第一版本信息是所述缓存对象对应的数据表版本信息,所述第二版本信息是数据库中当前数据表的版本信息,其中所述数据库中至少存储有第一数据表和第二数据表,所述第一数据表和第二数据表被配置为一个作为所述当前数据表,其余作为备份数据表;判断第一版本信息和第二版本信息的一致性;在所述第一版本信息和第二版本信息一致的情况下,将所述缓存对象作为查询结果。2.根据权利要求1所述的方法,所述方法还包括:在不存在与所述查询参数相对应的缓存对象,或者所述第一版本信息和第二版本信息不一致的情况下,根据所述查询参数向所述数据库查询所述当前数据表;根据从所述数据库返回的数据,生成查询结果。3.根据权利要求2所述的方法,其中,生成查询结果之后,还包括:根据所生成的查询结果更新缓存区域内的缓存对象。4.根据权利要求3所述的方法,其中,根据所生成的查询结果更新缓存区域内的缓存对象包括:将生成的查询结果作为缓存对象添加到所述缓存区域内;将所述当前数据表的版本信息保存为该缓存对象的版本信息。5.根据权利要求1所述的方法,其中,所述方法还包括:按照第一时间间隔从数据库中获取当前数据表的版本信息;将当前数据表的版本信息保存在本地配置表中。6.根据权利要求5所述的方法,其中,所述获取第一版本信息和第二版本信息包括:从所述本地配置表中获取所述第二版本信息。7.根据权利要求5所述的方法,其中,将当前数据表的版本信息保存在本地配置表中包括:检测所获取的当前数据表的版本信息与本地配置表中保存的当前数据表的版本信息是否一致;以及在不一致的情况下,按照所获取的当前数据表的版本信息更新本地配置表中当前数据表的版本信息。8.根据权利要求5所述的方法,其中,所述数据库包括数据表配置库,所述数据表配置库用于,当预定条件满足时,切换第一数据表和第二数据表中当前数据表和备份数据表状态;所述按照第一时间间隔从数据库中获取当前数据表的版本信息包括:从所述数据表配置库获取当前数据表的版本信息。9.根据权利要求8所述的方法,其中,所述预定条件包括以下中的至少一项:完成备份数据表的更新;满足数据表切换的第二时间间隔;当前数据表出现预定错误。10.根据权利要求1所述的方法,其中,当前数据表的版本信息包括以下中的一项或多项:版本标识、时间戳。11.一种数据查询的装置,包括:接收单元,配置为接收查询请求,其中,所述查询请求包括查询参数;检测单元,配置为检测缓存区域内是否存在与所述查询参数相对应的缓存对象;获取单元,配置为在存在与所...
【专利技术属性】
技术研发人员:韩杰,
申请(专利权)人:阿里巴巴集团控股有限公司,
类型:发明
国别省市:开曼群岛,KY
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。