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

数据查询方法、装置、电子设备和存储介质

文献发布时间:2024-04-18 20:00:50


数据查询方法、装置、电子设备和存储介质

技术领域

本申请涉及数据库处理技术领域,尤其涉及一种数据查询方法、装置、电子设备和存储介质。

背景技术

二进制日志文件(Binlog)是数据库记录变更操作的文件,Binlog查询可用于数据变更查询、数据变更统计、变更回滚等场景。目前的Binlog查询方法一般使用Binlog查询工具(例如mysqldump)或者结构化查询语言(Structured Query Language,SQL)中的show语法进行查询,然而该方法的使用不够灵活和便捷,查询效率较低。

发明内容

本申请提供一种数据查询方法、装置、电子设备和存储介质,可以简化查询操作,提高查询效率。

第一方面,本申请实施例提供了一种数据查询方法,所述方法包括:

接收查询请求,所述查询请求中包括数据库标识和筛选条件;

将所述数据库标识对应的数据库确定为目标数据库,从所述目标数据库中获取目标二进制日志文件;

根据所述筛选条件对所述目标二进制日志文件中记录的变更数据进行查询,获得符合所述筛选条件的目标数据集。

通过上述实施例,在二进制日志文件查询中支持筛选功能,用户使用起来更为灵活和便捷,只需用户提供数据库标识和筛选条件,查询服务器便可从该数据库标识对应的目标数据库中获取符合该筛选条件的变更数据,简化了查询操作,减少了查询结果中的冗余信息,有助于提高查询效率。

在第一方面的一种可能的实施方式中,所述筛选条件包括预设时间范围;所述从所述目标数据库中获取目标二进制日志文件,包括:

从所述目标数据库中获取二进制日志文件名列表;

按照时间顺序从所述二进制日志文件名列表中逐个选取二进制日志文件名,根据选取的二进制日志文件名从所述目标数据库中逐个获取对应的二进制日志文件;

每获取一个二进制日志文件,对所述二进制日志文件进行解析获得所述二进制日志文件的记录时间,当所述记录时间满足所述预设时间范围时,将所述二进制日志文件确定为一个所述目标二进制日志文件。

通过上述实施方式,在筛选条件中引入了预设时间范围,通过判断二进制日志文件的记录时间是否在该预设时间范围内来锁定目标二进制日志文件,据此有利于快速查询符合该预设时间范围的变更数据。

在第一方面的一种可能的实施方式中,所述查询请求中还包括查询结束条件;所述根据所述筛选条件对所述目标二进制日志文件中记录的变更数据进行查询,获得符合所述筛选条件的目标数据集,包括:

逐个解析所述目标二进制日志文件,获得所述目标二进制日志文件中记录的变更数据;

每获得一条符合所述筛选条件的变更数据,将所述符合所述筛选条件的变更数据确定为一条目标数据,当满足所述查询结束条件时停止解析,将所述目标数据的集合作为所述目标数据集。

通过上述实施方式,引入了查询结束条件,当满足查询结束条件时,可以停止从数据库中获取目标二进制日志文件以及从目标二进制日志文件中筛选目标数据,据此有利于减少对数据库的影响。

在第一方面的一种可能的实施方式中,所述查询结束条件包括预设数据条数;所述方法还包括:

当所述目标数据的条数达到所述预设数据条数时,确定满足所述查询结束条件。

通过上述实施方式,引入了限数机制,当目标数据的条数达到预设数据条数时可以结束查询,据此有利于减少对数据库的影响。

在第一方面的一种可能的实施方式中,所述查询结束条件包括预设超时时间;所述方法还包括:

当查询时间达到所述预设超时时间时,确定满足所述查询结束条件。

通过上述实施方式,引入了限时机制,当查询时间达到预设超时时间时可以结束查询,据此有利于减少对数据库的影响。

在第一方面的一种可能的实施方式中,所述筛选条件包括预设变更类型和/或预设列值。

通过上述实施方式,在筛选条件中引入了预设变更类型和/或预设列值,有利于快速查询符合该预设变更类型和/或预设列值的变更数据。

在第一方面的一种可能的实施方式中,所述方法还包括:

获取所述查询请求对应的表结构信息;

根据所述表结构信息对所述目标数据集进行封装。

通过上述实施方式,根据表结构信息对目标数据集进行封装,可以增强查询结果的可读性,使得查询结果更加直观,有利于降低理解门槛。

第二方面,本申请实施例提供了一种数据查询方法,所述方法包括:

接收查询指令,所述查询指令中包括数据库标识和筛选条件;

向查询服务器发送查询请求,所述查询请求中包括所述数据库标识和所述筛选条件,用于请求从目标数据库中的二进制日志文件中获取符合所述筛选条件的目标数据集,所述目标数据库为所述数据库标识对应的数据库;

展示所述目标数据集。

通过上述实施例,在二进制日志文件查询中支持筛选功能,用户使用起来更为灵活和便捷,用户只需通过查询终端输入据库标识和筛选条件并发起查询指令,查询终端便可获得并展示该数据库标识对应的目标数据库中符合该筛选条件的变更数据,简化了查询操作,减少了查询结果中的冗余信息,有助于提高查询效率。

在第二方面的一种可能的实施方式中,所述筛选条件包括预设时间范围。

通过上述实施方式,在筛选条件中引入了预设时间范围,有利于快速查询符合该预设时间范围的变更数据。

在第二方面的一种可能的实施方式中,所述查询指令中还包括查询结束条件,所述查询请求中还包括所述查询结束条件。

通过上述实施方式,引入了查询结束条件,当满足查询结束条件时可以停止从数据库中查询符合筛选条件的变更数据,据此有利于减少对数据库的影响。

在第二方面的一种可能的实施方式中,所述查询结束条件包括预设数据条数。

通过上述实施方式,引入了限数机制,当符合筛选条件的变更数据的条数达到预设数据条数时可以结束查询,据此有利于减少对数据库的影响。

在第二方面的一种可能的实施方式中,所述查询结束条件包括预设超时时间。

通过上述实施方式,引入了限时机制,当查询时间达到预设超时时间时可以结束查询,据此有利于减少对数据库的影响。

在第二方面的一种可能的实施方式中,所述筛选条件包括预设变更类型和/或预设列值。

通过上述实施方式,在筛选条件中引入了预设变更类型和/或预设列值,有利于快速查询符合该预设变更类型和/或预设列值的变更数据。

第三方面,本申请实施例提供了一种数据查询装置,所述装置包括:

接收单元,用于接收查询请求,所述查询请求中包括数据库标识和筛选条件;

获取单元,用于将所述数据库标识对应的数据库确定为目标数据库,从所述目标数据库中获取目标二进制日志文件;

查询单元,用于根据所述筛选条件对所述目标二进制日志文件中记录的变更数据进行查询,获得符合所述筛选条件的目标数据集。

通过上述实施例,在二进制日志文件查询中支持筛选功能,用户使用起来更为灵活和便捷,只需用户提供数据库标识和筛选条件,查询服务器便可从该数据库标识对应的目标数据库中获取符合该筛选条件的变更数据,简化了查询操作,减少了查询结果中的冗余信息,有助于提高查询效率。

在第三方面的一种可能的实施方式中,所述筛选条件包括预设时间范围;所述获取单元在从所述目标数据库中获取目标二进制日志文件时,具体用于:

从所述目标数据库中获取二进制日志文件名列表;

按照时间顺序从所述二进制日志文件名列表中逐个选取二进制日志文件名,根据选取的二进制日志文件名从所述目标数据库中逐个获取对应的二进制日志文件;

每获取一个二进制日志文件,对所述二进制日志文件进行解析获得所述二进制日志文件的记录时间,当所述记录时间满足所述预设时间范围时,将所述二进制日志文件确定为一个所述目标二进制日志文件。

通过上述实施方式,在筛选条件中引入了预设时间范围,通过判断二进制日志文件的记录时间是否在该预设时间范围内来锁定目标二进制日志文件,据此有利于快速查询符合该预设时间范围的变更数据。

在第三方面的一种可能的实施方式中,所述查询请求中还包括查询结束条件;所述查询单元在根据所述筛选条件对所述目标二进制日志文件中记录的变更数据进行查询,获得符合所述筛选条件的目标数据集时,具体用于:

逐个解析所述目标二进制日志文件,获得所述目标二进制日志文件中记录的变更数据;

每获得一条符合所述筛选条件的变更数据,将所述符合所述筛选条件的变更数据确定为一条目标数据,当满足所述查询结束条件时停止解析,将所述目标数据的集合作为所述目标数据集。

通过上述实施方式,引入了查询结束条件,当满足查询结束条件时,可以停止从数据库中获取目标二进制日志文件以及从目标二进制日志文件中筛选目标数据,据此有利于减少对数据库的影响。

在第三方面的一种可能的实施方式中,所述查询结束条件包括预设数据条数;所述查询单元还用于:当所述目标数据的条数达到所述预设数据条数时,确定满足所述查询结束条件。

通过上述实施方式,引入了限数机制,当目标数据的条数达到预设数据条数时结束查询,据此可以减少对数据库的影响。

在第三方面的一种可能的实施方式中,所述查询结束条件包括预设超时时间;所述查询单元还用于:当查询时间达到所述预设超时时间时,确定满足所述查询结束条件。

通过上述实施方式,引入了限时机制,当查询时间达到预设超时时间时结束查询,据此可以减少对数据库的影响。

在第三方面的一种可能的实施方式中,所述筛选条件包括预设变更类型和/或预设列值。

通过上述实施方式,在筛选条件中引入了预设变更类型和/或预设列值,有利于快速查询符合该预设变更类型和/或预设列值的变更数据。

在第三方面的一种可能的实施方式中,所述查询单元还用于:获取所述查询请求对应的表结构信息;根据所述表结构信息对所述目标数据集进行封装。

通过上述实施方式,根据表结构信息对目标数据集进行封装,可以增强查询结果的可读性,使得查询结果更加直观,有利于降低理解门槛。

第四方面,本申请实施例提供了一种数据查询装置,所述装置包括:

接收单元,用于接收查询指令,所述查询指令中包括数据库标识和筛选条件;

发送单元,用于向查询平台服务器发送查询请求,所述查询请求中包括所述数据库标识和所述筛选条件,用于请求从目标数据库中的二进制日志文件中获取符合所述筛选条件的目标数据集,所述目标数据库为所述数据库标识对应的数据库;

展示单元,用于展示所述目标数据集。

通过上述实施例,在二进制日志文件查询中支持筛选功能,用户使用起来更为灵活和便捷,用户只需通过查询终端输入据库标识和筛选条件并发起查询指令,查询终端便可获得并展示该数据库标识对应的目标数据库中符合该筛选条件的变更数据,简化了查询操作,减少了查询结果中的冗余信息,有助于提高查询效率。

在第四方面的一种可能的实施方式中,所述筛选条件包括预设时间范围。

通过上述实施方式,在筛选条件中引入了预设时间范围,有利于快速查询符合该预设时间范围的变更数据。

在第四方面的一种可能的实施方式中,所述查询指令中还包括查询结束条件,所述查询请求中还包括所述查询结束条件。

通过上述实施方式,引入了查询结束条件,当满足查询结束条件时可以停止从数据库中查询符合筛选条件的变更数据,据此有利于减少对数据库的影响。

在第四方面的一种可能的实施方式中,所述查询结束条件包括预设数据条数。

通过上述实施方式,引入了限数机制,当符合筛选条件的变更数据的条数达到预设数据条数时可以结束查询,据此有利于减少对数据库的影响。

在第四方面的一种可能的实施方式中,所述查询结束条件包括预设超时时间。

通过上述实施方式,引入了限时机制,当查询时间达到预设超时时间时可以结束查询,据此有利于减少对数据库的影响。

在第四方面的一种可能的实施方式中,所述筛选条件包括预设变更类型和/或预设列值。

通过上述实施方式,在筛选条件中引入了预设变更类型和/或预设列值,有利于快速查询符合该预设变更类型和/或预设列值的变更数据。

第五方面,本申请实施例提供了一种电子设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述第一方面至第二方面中任一方面及其任意一种可能的实施方式中的方法。

第六方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面至第二方面中任一方面及其任意一种可能的实施方式中的方法。

第七方面,本申请实施例提供了一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现上述第一方面至第二方面中任一方面及其任意一种可能的实施方式中的方法。

上述第五方面至第七方面带来的有益效果,可以参考第一方面至第二方面中有益效果的描述,此处不再赘述。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,而非限制本申请的技术方案。

附图说明

为了更清楚地说明本申请实施例或背景技术中的技术方案,下面将对本申请实施例或背景技术中所需要使用的附图进行说明。

此处的附图被并入说明书中并构成本说明书的一部分,这些附图示出了符合本申请的实施例,并与说明书一起用于说明本申请的技术方案。

图1是本申请实施例提供的一种数据查询方法的应用环境示意图;

图2是本申请实施例提供的一种数据查询方法的流程示意图;

图3是本申请实施例提供的另一种数据查询方法的流程示意图;

图4是本申请实施例提供的一种Binlog查询平台的查询页面的示意图;

图5是本申请实施例提供的又一种数据查询方法的流程示意图;

图6是本申请实施例提供的一种数据查询装置的结构示意图;

图7是本申请实施例提供的另一种数据查询装置的结构示意图;

图8是本申请实施例提供的一种电子设备的结构示意图。

具体实施方式

为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

本申请实施例中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。

应当理解,在本申请中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上,“至少两个(项)”是指两个或三个及三个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:只存在A,只存在B以及同时存在A和B三种情况,其中A,B可以是单数或者复数。字符“/”可表示前后关联对象是一种“或”的关系,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。

在本申请中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。

二进制日志文件(Binlog)是数据库记录变更操作的文件,Binlog查询可用于数据变更查询、数据变更统计、变更回滚等场景。目前的Binlog查询方法一般使用Binlog查询工具(例如mysqldump)或者结构化查询语言(Structured Query Language,SQL)中的show语法进行查询,然而该方法的使用不够灵活和便捷,查询效率较低。

基于此,本申请实施例提供了一种数据查询方法,可以更加灵活便捷地实现二进制日志文件查询,提高查询效率。

数据查询方法的执行主体可以是数据查询装置,例如,数据查询方法可以由终端设备或服务器或其它处理设备执行,其中,终端设备可以但不限于是各种个人计算机、笔记本电脑、平板电脑、智能手机和便携式可穿戴设备,服务器可以用独立的服务器或者是多个服务器组成的服务器集群来实现。在一些可能的实现方式中,该数据查询方法可以通过处理器调用存储器中存储的计算机可读指令的方式来实现。

请参阅图1,图1是本申请实施例提供的一种数据查询方法的应用环境示意图。该应用环境涉及查询终端101、查询服务器102和数据库103。其中,查询终端101可以与查询服务器102通信连接,查询服务器102可以与数据库103通信连接。

示例性的,用户可以通过查询终端101访问能够提供Binlog查询服务的平台(记为Binlog查询平台),查询服务器102可以是该Binlog查询平台所在的服务器。用户可以通过查询终端101向查询服务器102发起针对数据库103的查询请求,查询服务器102可以响应于该查询请求,从数据库103中查询获得相应的变更数据。

请参阅图2,图2是本申请实施例提供的一种数据查询方法的流程示意图,该数据查询方法可以应用于图1中的查询服务器102。如图2所示,该数据查询方法包括以下步骤S201至步骤S203。

S201,接收查询请求,查询请求中包括数据库标识和筛选条件。

其中,数据库标识用于指示待查询的数据库,筛选条件用于指示待查询的变更数据所要符合的条件,查询请求用于请求从该数据库标识所指示的数据库中获取符合该筛选条件的变更数据。

S202,将数据库标识对应的数据库确定为目标数据库,从目标数据库中获取目标二进制日志文件。

数据库标识与数据库之间的对应关系可以预定义或者预配置,查询服务器可以根据该对应关系以及查询请求中的数据库标识,获得该数据库标识对应的数据库,记为目标数据库,该目标数据库也即待查询的数据库。

目标数据库中可能存储有多个二进制日志文件,每个二进制日志文件中可以记录多条变更数据。目标二进制日志文件可以理解为目标数据库中待查询的二进制日志文件,目标二进制日志文件的数量可以是一个或者多个。

在一种可能的实现方式中,查询服务器从目标数据库中获取目标二进制日志文件之前,先与目标数据库建立连接。示例性的,查询服务器可以确定目标数据库的连接参数,例如网络协议(Internet Protocol,IP)地址、端口、用户名和密码信息,并使用该连接参数与目标数据库建立连接。

应理解,上述密码信息可以统一授权给Binlog查询平台,用户不感知密码信息,用户只需在Binlog查询平台输入数据库标识,查询服务器便可自动实现与目标数据库的连接,据此有助于减少可能存在的信息安全隐患。

S203,根据筛选条件对目标二进制日志文件中记录的变更数据进行查询,获得符合筛选条件的目标数据集。

查询服务器获得目标二进制日志文件之后,可以对目标二进制日志文件进行解析,获得目标二进制日志文件中记录的变更数据,并从中筛选出符合筛选条件的变更数据,根据筛选出来的变更数据获得目标数据集,从而获得查询结果。

通过上述实施例,在二进制日志文件查询中支持筛选功能,用户使用起来更为灵活和便捷,只需用户提供数据库标识和筛选条件,查询服务器便可从该数据库标识对应的目标数据库中获取符合该筛选条件的变更数据,简化了查询操作,减少了查询结果中的冗余信息,有助于提高查询效率。

在一种可能的实施方式中,筛选条件包括预设时间范围;从目标数据库中获取目标二进制日志文件,具体可以包括:从目标数据库中获取二进制日志文件名列表;按照时间顺序从二进制日志文件名列表中逐个选取二进制日志文件名,根据选取的二进制日志文件名从目标数据库中逐个获取对应的二进制日志文件;每获取一个二进制日志文件,对二进制日志文件进行解析获得二进制日志文件的记录时间,当记录时间满足预设时间范围时,将二进制日志文件确定为一个目标二进制日志文件。

其中,预设时间范围是指待查询的时间范围,也可以理解为待查询的变更数据的记录时间所要满足的时间范围。示例性的,预设时间范围为[T1,T2],其中,T1表示开始日期,T2表示结束日期。应理解,预设时间范围具体可以根据实际需求进行设置,本申请实施例对此不做限定。

二进制日志文件名列表可以是由目标数据库中的全部或部分二进制日志文件名构成的列表。可选的,目标数据库中包括多个二进制日志文件名列表,查询请求中还可以包括列表标识,用于指示待查询的二进制日志文件名列表(记为目标二进制日志文件名列表),此时查询服务器从目标数据库中获取的二进制日志文件名列表即为该目标二进制日志文件名列表。

二进制日志文件名列表中可以包括多个二进制日志文件名。可选的,该二进制日志文件名列表中的多个二进制日志文件名按照时间顺序进行排列,例如按照由近及远的时间顺序进行排序,越晚生成的二进制日志文件名在二进制日志文件名列表中越靠前。

查询服务器从目标数据库中获取二进制日志文件名列表之后,按照时间顺序从二进制日志文件名列表中逐个选取二进制日志文件名,例如可以是按照由近及远的时间顺序逐个选取二进制日志文件名。

查询服务器每选取一个二进制日志文件名,可向目标数据库的服务器发送备份(Dump)请求,用以从目标数据库中获取与该二进制日志文件名对应的二进制日志文件。查询服务器每获取一个二进制日志文件,对该二进制日志文件进行初步解析,例如解析该二进制日志文件中的头部内容,可以获得该二进制日志文件的记录时间。

示例性的,该二进制日志文件的记录时间可以是该二进制日志文件的最近记录时间,即该二进制日志文件中最近一条变更数据的记录时间。该二进制日志文件的记录时间满足预设时间范围,可以理解为该最近记录时间处于该预设时间范围内。该二进制日志文件的记录时间不满足预设时间范围,可以理解为该最近记录时间早于该预设时间范围中的最早时间。

可选的,当该二进制日志文件的记录时间满足预设时间范围时,可认为该二进制日志文件记录的变更数据中存在满足预设时间范围的变更数据,因此将该二进制日志文件确定为一个目标二进制日志文件。

可选的,当该二进制日志文件的记录时间不满足预设时间范围时,可认为该二进制日志文件记录的变更数据中不存在满足预设时间范围的变更数据,继而可认为二进制日志文件名列表中未被选取的二进制日志文件名所对应的二进制日志文件记录的变更数据中也不存在满足预设时间范围的变更数据,因此查询服务器可以停止从二进制日志文件名列表中选取二进制日志文件名,以及停止从目标数据库中获取二进制日志文件,从而无需遍历二进制日志文件名列表中的每个二进制日志文件名及其对应的二进制日志文件,据此可以减少查询时间。

通过上述实施方式,在筛选条件中引入了预设时间范围,通过判断二进制日志文件的记录时间是否在该预设时间范围内来锁定目标二进制日志文件,据此有利于快速查询符合该预设时间范围的变更数据。

在一种可能的实施方式中,查询请求中还包括查询结束条件;根据筛选条件对目标二进制日志文件中记录的变更数据进行查询,获得符合筛选条件的目标数据集,具体可以包括:逐个解析目标二进制日志文件,获得目标二进制日志文件中记录的变更数据;每获得一条符合筛选条件的变更数据,将符合筛选条件的变更数据确定为一条目标数据,当满足查询结束条件时停止解析,将目标数据的集合作为目标数据集。

其中,查询结束条件是指结束查询所要满足的条件,该查询结束条件可以包括一个或多个条件。可选的,在查询结束条件包括多个条件的情况下,当满足该多个条件中的任意一个条件时,判定满足该查询结束条件。应理解,查询结束条件具体可以根据实际需求进行设置,本申请实施例对此不做限定。

查询服务器每确定一个目标二进制日志文件,对该目标二进制日志文件进行解析,例如解析该目标二进制日志文件的主体内容,可以获得该目标二进制日志文件中记录的变更数据。查询服务器每获得一条变更数据,可以判断该条变更数据是否符合筛选条件,每获得一条符合筛选条件的变更数据,可以将该条符合筛选条件的变更数据确定为一条目标数据。当满足查询结束条件时,查询服务器可以停止对目标二进制日志文件的解析,并将确定的目标数据的集合作为目标数据集。

通过上述实施方式,引入了查询结束条件,当满足查询结束条件时,可以停止从数据库中获取目标二进制日志文件以及从目标二进制日志文件中筛选目标数据,据此有利于减少对数据库的影响。

在一种可能的实施方式中,查询结束条件包括预设数据条数;当目标数据的条数达到预设数据条数时,确定满足查询结束条件。

其中,预设数据条数是指目标数据的最大限制条数,应理解,预设数据条数具体可以根据实际需求进行设置,本申请实施例对此不做限定。

示例性的,查询服务器可以对目标数据的条数进行计数,计数从零开始,每确定一条目标数据后计数加一,当计数达到预设数据条数时,确定满足查询结束条件。

通过上述实施方式,引入了限数机制,当目标数据的条数达到预设数据条数时可以结束查询,据此有利于减少对数据库的影响。

在一种可能的实施方式中,查询结束条件包括预设超时时间;当查询时间达到预设超时时间时,确定满足查询结束条件。

其中,预设超时时间是指查询的最大限制时长,也即查询时间的最大限制值,该查询时间可以是从查询服务器接收到查询请求时起开始计时的时长。应理解,预设超时时间具体可以根据实际需求进行设置,本申请实施例对此不做限定。

示例性的,查询服务器从接收到查询请求时起开始计时,当计时时长达到预设超时时间时,确定满足查询结束条件。

通过上述实施方式,引入了限时机制,当查询时间达到预设超时时间时可以结束查询,据此有利于减少对数据库的影响。

在一种可能的实施方式中,筛选条件包括预设变更类型和/或预设列值。

其中,预设变更类型是指要查询的变更类型,例如可以包括插入、修改和删除中的一种或多种。预设列值是指要查询的列值,例如,对于“城市”这一列,要查询的列值可以包括一个或多个具体的城市名称。

通过上述实施方式,在筛选条件中引入了预设变更类型和/或预设列值,有利于快速查询符合该预设变更类型和/或预设列值的变更数据。

在一种可能的实施方式中,查询服务器在获得目标数据集之后,还可以:获取查询请求对应的表结构信息;根据表结构信息对目标数据集进行封装。

表结构信息用于构建查询结果,该查询结果可以理解为利用该表结构信息对目标数据集进行封装后得到的结果。示例性的,表结构信息可以包括列名、变更前的值、变更后的值等字段名,允许用户自定义修改,以应对表结构发生变更的场景。

通过上述实施方式,根据表结构信息对目标数据集进行封装,可以增强查询结果的可读性,使得查询结果更加直观,有利于降低理解门槛。

请参阅图3,图3是本申请实施例提供的另一种数据查询方法的流程示意图,该数据查询方法可以应用于图1中的查询终端101。如图3所示,该数据查询方法包括以下步骤S301至步骤S303。

S301,接收查询指令,查询指令中包括数据库标识和筛选条件。

示例性的,用户可以通过查询终端登录Binlog查询平台,继而可以在Binlog查询平台的查询页面输入相关信息,例如可以输入数据库标识和筛选条件,可选的,还可以输入查询结束条件和/或列表标识。用户在查询页面输入相关信息后,可通过触发查询控件以发起查询指令,相应地,查询终端接收用户发起的查询指令,该查询指令中可以携带用户在该查询页面输入的相关信息。

其中,筛选条件可以包括预设时间范围、预设变更类型和预设列值中的任意一种或多种,查询结束条件可以包括预设数据条数和/或预设超时时间。

请参阅图4,图4是本申请实施例提供的一种Binlog查询平台的查询页面的示意图。该查询页面中包括库输入框、表输入框、时间范围输入框、事件类型输入框、限制条数(Limit)输入框和超时(TimeOut)输入框,用户可以在上述输入框中输入相关信息,分别对应前文实施例中的数据库标识、列表标识、预设时间范围、预设变更类型、预设数据条数和预设超时时间。据此可以实现白屏流程化操作,更加标准化,有利于降低误操作风险。

可选的,用户还可以在Binlog查询平台查看Binlog文件列表(例如包括文件名、文件大小)、Binlog的相关参数列表、Binlog起止时间、最早Binlog时间等。

S302,向查询服务器发送查询请求,查询请求中包括数据库标识和筛选条件,用于请求从目标数据库中的二进制日志文件中获取符合筛选条件的目标数据集,目标数据库为数据库标识对应的数据库。

查询终端响应于查询指令,向查询服务器发送查询请求,该查询请求中可以包括用户在上述查询页面输入的相关信息,例如可以包括数据库标识和筛选条件,可选的,还可以包括查询结束条件和/或列表标识。

其中,筛选条件可以包括预设时间范围、预设变更类型和预设列值中的任意一种或多种,查询结束条件可以包括预设数据条数和/或预设超时时间。

查询服务器响应于查询请求,从目标数据库中的二进制日志文件中获取符合筛选条件的目标数据集,并将目标数据集返回给查询终端。

S303,展示目标数据集。

查询终端接收到查询服务器返回的目标数据集之后,可以展示该目标数据集,以便用户查看。可选的,查询服务器还可以利用表结构信息对目标数据集进行封装,并将封装后的目标数据集返回给查询终端,查询终端展示封装后的目标数据集。

应理解,关于上述步骤S301至步骤S303中未做具体描述的内容,可以对应参考前文实施例中的相关描述,此处不再赘述。

通过上述实施例,在二进制日志文件查询中支持筛选功能,用户使用起来更为灵活和便捷,用户只需通过查询终端输入据库标识和筛选条件并发起查询指令,查询终端便可获得并展示该数据库标识对应的目标数据库中符合该筛选条件的变更数据,简化了查询操作,减少了查询结果中的冗余信息,有助于提高查询效率。

请参阅图5,图5是本申请实施例提供的又一种数据查询方法的流程示意图,该数据查询方法以查询终端、查询服务器和目标数据库之间的交互为例进行说明,示例性的,该查询终端可以是图1中的查询终端101,该查询服务器可以是图1中的查询服务器102,该目标数据库可以是图1中的数据库103。如图5所示,该数据查询方法包括以下步骤S501至步骤S516。

S501,查询终端向查询服务器发送查询请求,相应的,查询服务器接收来自查询终端的查询请求。

该查询请求中包括数据库标识、筛选条件和查询结束条件。其中,筛选条件包括预设时间范围,可选的,筛选条件还包括预设变更类型和/或预设列值。查询结束条件包括预设数据条数和/或预设超时时间。

S502,查询服务器确定目标数据库。

查询服务器接收到来自查询终端的查询请求之后,可以从该查询请求中获取数据库标识,并将该数据库标识对应的数据库确定为目标数据库。

S503,查询服务器向目标数据库发送连接请求,相应的,目标数据库接收来自查询服务器的连接请求。

查询服务器确定目标数据库之后,可以进一步确定该目标数据库的连接参数(记为目标连接参数),该目标连接参数用于与该目标数据库建立连接。具体的,查询服务器中可以预先存储数据库标识与连接参数之间的对应关系,查询服务器可以根据该对应关系以及目标数据库的标识,获得该目标数据库对应的目标连接参数。

查询服务器向目标数据库发送的连接请求中可以包括该目标连接参数,用于与该目标数据库建立连接。具体的,该目标连接参数可以包括该目标数据库的IP地址和端口、以及用于连接该目标数据库的用户名和密码信息。

S504,目标数据库向查询服务器发送确认信息,相应的,查询服务器接收来自目标数据库的确认信息。

目标数据库接收到来自查询服务器的连接请求之后,可以对该连接请求中的目标连接参数进行验证,如果验证通过,则可以向查询服务器发送确认信息,从而查询服务器成功连接到目标数据库。

S505,查询服务器向目标数据库发送用于获取二进制日志文件名列表的请求,相应的,目标数据库接收来自查询服务器的用于获取二进制日志文件名列表的请求。

查询服务器成功连接到目标数据库之后,可以向目标数据库请求获取二进制日志文件名列表。可选的,查询终端向查询服务器发送的查询请求中还包括列表标识,查询服务器接收到来自查询终端的查询请求之后,还可以从该查询请求中获取列表标识,并向目标数据库请求获取该列表标识所指示的二进制日志文件名列表。

S506,目标数据库向查询服务器返回二进制日志文件名列表,相应的,查询服务器接收来自目标数据库的二进制日志文件名列表。

目标数据库接收到来自查询服务器的用于获取二进制日志文件名列表的请求之后,可以向查询服务器返回该二进制日志文件名列表。

S507,查询服务器从二进制日志文件名列表中选取当前二进制日志文件名。

查询服务器获得来自目标数据库的二进制日志文件名列表之后,可以从该二进制日志文件名列表中选取当前二进制日志文件名。其中,当前二进制日志文件名是指二进制日志文件名列表中未被选取的二进制日志文件名中的最近二进制日志文件名,该最近二进制日志文件名可以理解为最晚生成的二进制日志文件名。

例如,该二进制日志文件名列表包括n个二进制日志文件名,该二进制日志文件名列表中的n个二进制日志文件名可以按照由近及远的时间顺序进行排序,时间越近的二进制日志文件名在该二进制日志文件名列表中越靠前,按照由近及远的时间顺序排序后的n个二进制日志文件名依次为二进制日志文件名D

假设查询服务器第一次从该二进制日志文件名列表中选取当前二进制日志文件名,则此时的未被选取的二进制日志文件名包括二进制日志文件名D

S508,查询服务器向目标数据库发送用于获取当前二进制日志文件的请求,相应的,目标数据库接收来自查询服务器的用于获取当前二进制日志文件的请求。

其中,当前二进制日志文件是指当前二进制日志文件名对应的二进制日志文件。查询服务器选取当前二进制日志文件名之后,可以向目标数据库请求获取当前二进制日志文件名对应的二进制日志文件,即请求获取当前二进制日志文件。

S509,目标数据库向查询服务器返回当前二进制日志文件,相应的,查询服务器接收来自目标数据库的当前二进制日志文件。

目标数据库接收到来自查询服务器的用于获取当前二进制日志文件的请求之后,可以向查询服务器返回该当前二进制日志文件。

S510,查询服务器对当前二进制日志文件进行解析,获得当前二进制日志文件的记录时间。

查询服务器获得来自目标数据库的当前二进制日志文件之后,可以对该当前二进制日志文件进行初步解析,例如解析该当前二进制日志文件中的头部内容,获得该当前二进制日志文件的记录时间。该当前二进制日志文件的记录时间,可以是该当前二进制日志文件的最近记录时间,即最近一条变更数据的记录时间。

S511,查询服务器确定当前二进制日志文件的记录时间满足预设时间范围时,将当前二进制日志文件确定为当前目标二进制日志文件。

查询服务器获得当前二进制日志文件的记录时间之后,判断该当前二进制日志文件的记录时间是否满足预设时间范围。可选的,若查询服务器确定该当前二进制日志文件的记录时间满足预设时间范围,则将该当前二进制日志文件确定为一个当前目标二进制日志文件。可选的,若查询服务器确定该当前二进制日志文件的记录时间不满足预设时间范围,则停止查询。

S512,查询服务器从当前目标二进制日志文件中读取当前变更数据。

查询服务器确定当前目标二进制日志文件之后,可以对该当前目标二进制日志文件进行解析,例如解析该当前目标二进制日志文件的主体内容,从而可以依次读取该当前目标二进制日志文件中的变更数据。其中,当前变更数据是指当前目标二进制日志文件中未被读取的变更数据中的最近变更数据,该最近变更数据可以理解为最晚生成的变更数据。

例如,该当前目标二进制日志文件中包含m条变更数据,按照由近及远的时间顺序依次为变更数据J

假设查询服务器第一次从当前目标二进制日志文件中读取当前变更数据,则此时的未被读取的变更数据包括变更数据J

S513,查询服务器确定当前变更数据符合筛选条件时,将当前变更数据确定为目标数据。

查询服务器读取当前变更数据之后,判断该当前变更数据是否符合筛选条件。可选的,若查询服务器确定该当前变更数据是否符合筛选条件,则将该当前变更数据确定为一条目标数据。可选的,若查询服务器确定该当前变更数据不符合筛选条件,则返回至步骤S512,循环执行步骤S512至步骤S513。

可选的,若在当前目标二进制日志文件中变更数据全部读取完时还未满足查询结束条件,则返回至步骤S507,循环执行步骤S507至步骤S513,直至满足查询结束条件时停止查询。可选的,若在当前目标二进制日志文件中变更数据全部读取完之前满足查询结束条件,则在满足查询结束条件时停止查询。

S514,查询服务器将确定的目标数据的集合作为目标数据集。

查询服务器确定全部目标数据之后,可以将全部目标数据的集合作为目标数据集,也即得到查询结果。

S515,查询服务器向查询终端返回目标数据集,相应的,查询终端接收来自查询服务器的目标数据集。

查询服务器得到目标数据集之后,可以将该目标数据集返回给查询终端,以便用户查看。

S516,查询终端展示目标数据集。

查询终端接收到来自查询服务器的目标数据集之后,可以展示该目标数据集,以便用户查看。可选的,查询服务器还可以利用表结构信息对目标数据集进行封装,并将封装后的目标数据集返回给查询终端,查询终端可以展示该封装后的目标数据集。

应理解,关于上述步骤S501至步骤S516中未做具体描述的内容,可以对应参考前文实施例中的相关描述,此处不再赘述。

通过上述实施例,在二进制日志文件查询中支持筛选功能,用户使用起来更为灵活和便捷,用户只需通过查询终端输入据库标识、筛选条件和查询结束条件并发起查询指令,查询服务器便可从该数据库标识对应的目标数据库中获取符合该筛选条件的变更数据,以及在满足查询结束条件时结束查询,并将符合该筛选条件的变更数据返回给查询终端,查询终端便可获得并展示符合该筛选条件的变更数据,简化了查询操作,减少了查询结果中的冗余信息,有助于提高查询效率。

本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。

上文对各个实施例的描述倾向于强调各个实施例之间的不同之处,其相同或相似之处可以互相参考,为了简洁,本文不再赘述。

请参阅图6,图6是本申请实施例提供的一种数据查询装置的结构示意图,该数据查询装置600包括:接收单元601、获取单元602和查询单元603,其中:

接收单元601,用于接收查询请求,查询请求中包括数据库标识和筛选条件;

获取单元602,用于将数据库标识对应的数据库确定为目标数据库,从目标数据库中获取目标二进制日志文件;

查询单元603,用于根据筛选条件对目标二进制日志文件中记录的变更数据进行查询,获得符合筛选条件的目标数据集。

在一些可能的实施方式中,筛选条件包括预设时间范围;获取单元602在从目标数据库中获取目标二进制日志文件时,具体用于:从目标数据库中获取二进制日志文件名列表;按照时间顺序从二进制日志文件名列表中逐个选取二进制日志文件名,根据选取的二进制日志文件名从目标数据库中逐个获取对应的二进制日志文件;每获取一个二进制日志文件,对二进制日志文件进行解析获得二进制日志文件的记录时间,当记录时间满足预设时间范围时,将二进制日志文件确定为一个目标二进制日志文件。

在一些可能的实施方式中,查询请求中还包括查询结束条件;查询单元603在根据筛选条件对目标二进制日志文件中记录的变更数据进行查询,获得符合筛选条件的目标数据集时,具体用于:逐个解析目标二进制日志文件,获得目标二进制日志文件中记录的变更数据;每获得一条符合筛选条件的变更数据,将符合筛选条件的变更数据确定为一条目标数据,当满足查询结束条件时停止解析,将目标数据的集合作为目标数据集。

在一些可能的实施方式中,查询结束条件包括预设数据条数;查询单元603还用于:当目标数据的条数达到预设数据条数时,确定满足查询结束条件。

在一些可能的实施方式中,查询结束条件包括预设超时时间;查询单元603还用于:当查询时间达到预设超时时间时,确定满足查询结束条件。

在一些可能的实施方式中,筛选条件包括预设变更类型和/或预设列值。

在一些可能的实施方式中,查询单元603还用于:获取查询请求对应的表结构信息;根据表结构信息对目标数据集进行封装。

请参阅图7,图7是本申请实施例提供的另一种数据查询装置的结构示意图,该数据查询装置700包括:接收单元701、发送单元702和展示单元703,其中:

接收单元701,用于接收查询指令,查询指令中包括数据库标识和筛选条件;

发送单元702,用于向查询平台服务器发送查询请求,查询请求中包括数据库标识和筛选条件,用于请求从目标数据库中的二进制日志文件中获取符合筛选条件的目标数据集,目标数据库为数据库标识对应的数据库;

展示单元703,用于展示目标数据集。

关于数据查询装置的具体限定可以参见上文中对于数据查询方法的限定,在此不再赘述。上述数据查询装置中的各个单元可全部或部分通过软件、硬件及其组合来实现。上述各单元可以以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个单元对应的操作。

请参阅图8,图8是本申请实施例提供的一种电子设备的结构示意图。该电子设备800包括存储器801和处理器802。可选地,该电子设备800还包括通信接口803以及总线804。存储器801、处理器802以及通信接口803通过总线804实现彼此之间的通信连接。存储器801存储有计算机程序,处理器802用于执行存储器801存储的计算机程序,以实现上述各方法实施例中的方法。

在一种可能的设计中,该电子设备800可以对应于上述方法实施例中的查询服务器,该电子设备800可以包括用于执行上述方法实施例中由查询服务器所执行的操作的部件,并且,该电子设备800中的各部件分别为了实现上述方法实施例中查询服务器所执行的操作,处理器802调用存储器801中存储的计算机程序,以执行上述数据查询方法,具体可以如下所示:

接收查询请求,查询请求中包括数据库标识和筛选条件;将数据库标识对应的数据库确定为目标数据库,从目标数据库中获取目标二进制日志文件;根据筛选条件对目标二进制日志文件中记录的变更数据进行查询,获得符合筛选条件的目标数据集。

在一种可能的实施方式中,筛选条件包括预设时间范围;从目标数据库中获取目标二进制日志文件,包括:从目标数据库中获取二进制日志文件名列表;按照时间顺序从二进制日志文件名列表中逐个选取二进制日志文件名,根据选取的二进制日志文件名从目标数据库中逐个获取对应的二进制日志文件;每获取一个二进制日志文件,对二进制日志文件进行解析获得二进制日志文件的记录时间,当记录时间满足预设时间范围时,将二进制日志文件确定为一个目标二进制日志文件。

在一种可能的实施方式中,查询请求中还包括查询结束条件;根据筛选条件对目标二进制日志文件中记录的变更数据进行查询,获得符合筛选条件的目标数据集,包括:逐个解析目标二进制日志文件,获得目标二进制日志文件中记录的变更数据;每获得一条符合筛选条件的变更数据,将符合筛选条件的变更数据确定为一条目标数据,当满足查询结束条件时停止解析,将目标数据的集合作为目标数据集。

在一种可能的实施方式中,查询结束条件包括预设数据条数;该方法还包括:当目标数据的条数达到预设数据条数时,确定满足查询结束条件。

在一种可能的实施方式中,查询结束条件包括预设超时时间;该方法还包括:当查询时间达到预设超时时间时,确定满足查询结束条件。

在一种可能的实施方式中,筛选条件包括预设变更类型和/或预设列值。

在一种可能的实施方式中,该方法还包括:获取查询请求对应的表结构信息;根据表结构信息对目标数据集进行封装。

在另一种可能的设计中,该电子设备800可以对应于上述方法实施例中的查询终端,该电子设备800可以包括用于执行上述方法实施例中由查询终端所执行的操作的部件,并且,该电子设备800中的各部件分别为了实现上述方法实施例中查询终端所执行的操作,处理器802调用存储器801中存储的计算机程序,以执行上述数据查询方法,具体可以如下所示:

接收查询指令,查询指令中包括数据库标识和筛选条件;向查询服务器发送查询请求,查询请求中包括数据库标识和筛选条件,用于请求从目标数据库中的二进制日志文件中获取符合筛选条件的目标数据集,目标数据库为数据库标识对应的数据库;展示目标数据集。

在一种可能的实施方式中,筛选条件包括预设时间范围。

在一种可能的实施方式中,查询指令中还包括查询结束条件,查询请求中还包括查询结束条件。

在一种可能的实施方式中,查询结束条件包括预设数据条数和/或预设超时时间。

在一种可能的实施方式中,筛选条件包括预设变更类型和/或预设列值。

本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的方法。

本申请实施例还提供了一种计算机程序产品,该计算机程序产品包括计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的方法。

应理解,本申请实施例中的存储器/可读存储介质可以是易失性存储器或非易失性存储器,或可包括易失性存储器和非易失性存储器两者。其中,非易失性存储器可以是硬盘(hard disk drive,HDD)、固态硬盘(solid-state drive,SSD)、只读存储器(read-onlymemory,ROM)或闪存等。易失性存储器可以是随机存取存储器(random access memory,RAM)或外部高速缓冲存储器,作为说明而非局限,RAM可以是多种形式,例如静态随机存取存储器(static random access memory,SRAM)或动态随机存取存储器(dynamic randomaccess memory,DRAM)等。

本申请实施例中的处理器可以是中央处理器(central processing unit,CPU)、显卡处理器(graphics processing unit,GPU)或微处理器(microprocessor unit,MPU)等处理模块中的一种或者多种的组合,还可以是其他通用处理器、数字信号处理器(digitalsignal processor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现成可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。

技术分类

06120116541557