MySQL数据库备份文件的数据获取方法、装置和系统与流程

专利2022-06-29  84

本申请涉及数据库
技术领域
:,尤其是涉及一种mysql数据库备份文件的数据获取方法、装置和系统。
背景技术
::mysql是一种开放源代码的关系型数据库管理系统,属于中、小型关系型数据库管理系统,它将数据保存在不同的表中,而不是将所有数据放在一起,因此可以提高数据处理的速度和灵活性。mysql数据库具有开放源码、体积小、速度快、成本低等特点,这使得mysql数据库广泛应用于中小型网站的数据管理。在mysql数据库运维中,因为业务需要,运维人员需要经常访问数据库的历史备份文件,以对之前某天的某个表的备份数据在开发及测试环境进行数据读取及分析。在现有技术的mysql数据库运维中,运维人员为了解决以上需求,采用对数据库的历史备份文件拷贝还原的方式,运维人员首先将mysql数据库的某天的备份文件从备份服务器上拷贝到开发或测试环境,通过shell命令将整个数据库进行还原,根据权限删除开发及测试人员没有权限的数据表,然后开发及测试人员通过数据库工具对经过还原所得到的数据库中的某表的数据进行读取及分析。现有的mysql数据库运维方法中对历史备份文件拷贝还原的方式费时费力,当数据库备份文件较大时,从备份服务器上拷贝备份文件,以及通过shell命令还原整个数据库都需要耗费很长时间,当需要对多个日期的备份文件或者多个数据库的备份文件进行单表数据读取时,需要进行多次操作,耗费运维人员的大量精力,提高了数据库运维的人工成本,降低了数据获取的工作效率。技术实现要素:本申请的目的在于提供一种mysql数据库备份文件的数据获取方法、装置和系统,以缓解现有技术中存在的在对多个对备份文件进行表数据读取时数据获取的工作效率较低的技术问题。第一方面,实施例提供一种mysql数据库备份文件的数据获取方法,应用于存储mysql数据库备份文件的web服务器,所述方法包括:对web客户端待获取数据的目标备份文件进行文本分析,得到所述目标备份文件对应的数据表名称列表;基于所述数据表名称列表,确定目标数据表;对所述目标数据表进行解析,得到所述目标数据表的表结构及表数据;以及对所述目标数据表的表数据进行分析统计,获得数据分析统计结果;将所述分析统计结果发送至所述web客户端。在可选的实施方式中,在对web客户端待获取的目标备份文件进行文本分析的步骤之前,所述方法还包括:接收web客户端发送的查询请求;基于python的标准库的glob指令,获取本地备份文件目录中所有备份文件的名称;将所获取的备份文件的名称存储为备份文件名称列表;向所述web客户端发送所述备份文件名称列表,以便所述web客户端基于所述备份文件名称列表确定目标备份文件。在可选的实施方式中,还包括:获取每个备份文件对应的数据库的名称;将备份文件名称与该备份文件对应的数据库名称的对应关系存储至备份文件名称列表中。在可选的实施方式中,对web客户端待获取的目标备份文件进行文本分析,得到所述目标备份文件对应的数据表名称列表的步骤,包括:将所述目标备份文件读取到内存中;基于标准库gzip和第一预设规则对所述目标备份文件进行检索分析,获取到所述目标备份文件包括的所有数据表的名称,并将所述目标备份文件的所有数据表的名称存储为所述目标备份文件对应的数据表名称列表;在可选的实施方式中,所述第一预设规则通过re正则表达式表示。在可选的实施方式中,对所述目标数据表进行解析,得到所述目标数据表的表结构及表数据的步骤,包括:通过标准库gzip和第二预设规则对所述目标数据表进行解析,得到所述目标数据表的表结构及表数据;将解析得到的所述目标数据表的表结构及表数据存入python的第三方库的dataframe。在可选的实施方式中,所述第三方库为pandas库,所述第二预设规则通过re正则表达式表达。在可选的实施方式中,对所述目标数据表进行解析,得到所述目标数据表的表结构及表数据的步骤,包括:对所述目标备份文件进行解析,获取创建所述目标数据表表结构的第一sql文本;对所述第一sql文本进行解析,得到所述目标数据表的字段名称列表;使用python的第三方库创建dataframe;将所述目标数据表的字段名称作为dataframe的列名称,增加到dataframe列中;解析目标备份文件,获取目标数据表的表数据的第二sql文本;对所述第二sql文本进行解析,将解析得到的所述目标数据表的表数据存入所述dataframe列中。在可选的实施方式中,对所述目标数据表的表数据进行分析统计,获得数据分析统计结果的步骤,包括:接收所述web客户端发送的sql代码;将所述sql代码转换为所述dataframe的命令;基于所述dataframe的命令对所述dataframe中的所述目标数据表的表数据进行分析统计;在dataframe中更新数据分析统计结果。在可选的实施方式中,所述方法还包括:接收所述web客户端发送的还原命令,所述还原命令包括所述目标数据表的标识以及待还原数据库的标识;将所述目标数据表的数据分析统计结果还原至所述待还原数据库中。第二方面,实施例提供一种mysql数据库备份文件的数据获取方法,应用于web客户端,所述方法包括:根据用户输入操作确定查询命令,将所述查询命令发送至存储mysql数据库备份文件的web服务器;接收所述web服务器返回的查询结果;所述查询结果是所述web服务器基于所述查询命令对所述mysql数据库备份文件的数据表进行分析统计而得到的分析统计结果;对所述分析统计结果进行显示。第三方面,实施例提供一种mysql数据库备份文件的数据获取方法,所述方法包括:web客户端根据用户输入操作确定查询命令,将所述查询命令发送至存储所述mysql数据库备份文件的web服务器;所述web服务器基于所述查询命令对所述web客户端待获取数据的目标备份文件进行文本分析,得到所述目标备份文件对应的数据表名称列表;所述web服务器基于所述数据表名称列表,确定所述mysql数据库备份文件的目标数据表;所述web服务器对所述目标数据表进行解析,得到所述目标数据表的表结构及表数据;以及对所述目标数据表的表数据进行分析统计,获得数据分析统计结果;所述web服务器将所述分析统计结果发送至所述web客户端;所述web客户端接收所述分析统计结果,并对所述分析统计结果进行显示。第四方面,实施例提供一种mysql数据库备份文件的数据获取装置,应用于存储mysql数据库备份文件的web服务器,所述装置包括:分析模块,用于对web客户端待获取数据的目标备份文件进行文本分析,得到所述目标备份文件对应的数据表名称列表;确定模块,用于基于所述数据表名称列表,确定目标数据表;解析模块,用于对所述目标数据表进行解析,得到所述目标数据表的表结构及表数据;以及对所述目标数据表的表数据进行分析统计,获得数据分析统计结果;发送模块,用于将所述分析统计结果发送至所述web客户端。第五方面,实施例提供一种mysql数据库备份文件的数据获取装置,应用于web客户端,所述装置包括:确定单元,用于根据用户输入操作确定查询命令,将所述查询命令发送至存储mysql数据库备份文件的web服务器;接收单元,用于接收所述web服务器返回的查询结果;所述查询结果是所述web服务器基于所述查询命令对所述mysql数据库备份文件的数据表进行分析统计而得到的分析统计结果;显示单元,用于对所述分析统计结果进行显示。第六方面,实施例提供一种mysql数据库备份文件的数据获取系统,包括:通信连接的web客户端和web服务器,所述web客户端用于与用户以及所述web服务器进行交互,所述web服务器用于执行所述前述实施方式所述的方法。本申请实施例的有益效果包括:本申请实施例提供的mysql数据库备份文件的数据获取方法、装置和系统中,读取mysql数据库备份文件的数据的核心操作全部在内存中实现,通过内存操作的方式节省了数据库备份文件进行拷贝和还原、非相关表删除的大量时间。本发明实施例的有益效果对大数据文件,尤其是对多个日期的数据库备份文件的数据进行多次读取时尤其明显。通过本申请实施例提供的mysql数据库备份文件的数据获取方法、装置和系统,节省了数据库运维人员的大量重复性工作,减少了运维人员的操作时间,降低了数据库运维的人工成本,提高了数据获取的工作效率。附图说明为了更清楚地说明本申请具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本申请实施例提供的一种mysql数据库备份文件的数据获取方法的流程示意图;图2为本申请实施例提供的一种mysql数据库备份文件的数据获取方法的另一流程示意图;图3为本申请实施例提供的一种mysql数据库备份文件的数据获取方法的另一流程示意图;图4为本申请实施例提供的另一种mysql数据库备份文件的数据获取方法的流程示意图;图5为本申请实施例提供的另一种mysql数据库备份文件的数据获取方法的流程示意图;图6为本申请实施例提供的web客户端的界面示例图;图7为本申请实施例提供的web客户端的另一界面示例图;图8为本申请实施例提供的一种mysql数据库备份文件的数据获取装置的结构示意图;图9为本申请实施例提供的mysql数据库备份文件的数据获取装置中使用的框架图;图10为本申请实施例提供的另一种mysql数据库备份文件的数据获取装置的结构示意图;图11为本申请实施例提供的一种电子设备的结构示意图。具体实施方式为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。下面结合附图,对本申请的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。图1为本申请实施例提供的一种mysql数据库备份文件的数据获取方法的流程示意图。其中,该方法应用于存储mysql数据库备份文件的web服务器。如图1所示,该方法包括:步骤s110,对web客户端待获取数据的目标备份文件进行文本分析,得到目标备份文件对应的数据表名称列表。步骤s120,基于数据表名称列表,确定目标数据表。步骤s130,对目标数据表进行解析,得到目标数据表的表结构及表数据。步骤s140,对目标数据表的表数据进行分析统计,获得数据分析统计结果。步骤s150,将分析统计结果发送至web客户端。对于上述步骤s110,如图2所示,web服务器先访问备份文件目录,获取备份文件及数据库名称,以获取备份文件名称列表。然后,基于web客户端发送的查询请求,确定目标备份文件(也即,图2中的数据库备份文件),web服务器对目标备份文件进行文本分析,获取到目标备份文件的所有数据表名称,从而得到目标备份文件的数据表名称列表。对于上述步骤s130,如图2所示,web服务器确定目标数据表,对目标数据表进行解析得到目标数据表的表结构及表数据。对于上述步骤s140,如图2所示,web服务器基于接收的查询命令对目标数据表的表数据进行分析统计,获得数据分析统计结果。本申请实施例中,读取mysql数据库备份文件的数据的核心操作全部在内存中实现,通过内存操作的方式节省了数据库备份文件进行拷贝和还原、非相关表删除的大量时间,本申请实施例对大数据文件,尤其是对多个日期的数据库备份文件的数据进行多次读取时效果明显,因此,本申请实施例节省了数据库运维人员的大量重复性工作,减少了运维人员的操作时间,降低了数据库运维的人工成本,提高了数据获取的工作效率。下面对上述步骤进行详细介绍。在一些实施例中,在步骤s110之前,该方法还可以包括以下步骤:步骤a),接收web客户端发送的查询请求;步骤b),确定本地的备份文件名称列表;步骤c),向web客户端发送备份文件名称列表,以便web客户端基于备份文件名称列表确定目标备份文件。基于此,上述步骤b)可以包括如下步骤:步骤d),基于python的标准库的glob指令,获取本地备份文件目录中所有备份文件的名称;步骤e),将所获取的备份文件的名称存储为备份文件名称列表。通过获取备份文件名称列表并向web客户端发送这些备份文件名称列表,能够便于web客户端基于该文件名称列表来确定目标备份文件。在实际应用中,web服务器可以使用python的标准库glob获取备份文件目录中所有备份文件的名称,并将所获取的备份文件的名称存储为备份文件名称列表。基于上述步骤d)和步骤e),该方法还可以包括以下步骤:步骤f),获取每个备份文件对应的数据库的名称;步骤g),将备份文件名称与该备份文件对应的数据库名称的对应关系存储至备份文件名称列表中。通过将备份文件名称与该备份文件对应的数据库名称的对应关系存储至备份文件名称列表中,能够使名称相对应的备份文件和数据库能够便于查找,以提高数据查询效率。在一些实施例中,上述步骤s110可以包括如下步骤:步骤h),将目标备份文件读取到内存中;步骤i),基于标准库gzip和第一预设规则对目标备份文件进行检索分析,获取到目标备份文件包括的所有数据表的名称,并将目标备份文件的所有数据表的名称存储为目标备份文件对应的数据表名称列表。对于上述步骤h),示例性的,如图2所示,web服务器可以在确定目标备份文件后将目标备份文件读取到内存。对于上述步骤i),web服务器可以使用标准库gzip和第一预设规则对目标备份文件进行检索分析,获取到目标备份文件包括的所有数据表的名称,并将所有数据表的名称存储为数据表名称列表。其中,第一预设规则可以通过re正则表达式表示。通过将目标备份文件的所有数据表的名称存储为目标备份文件对应的数据表名称列表,能够使数据表更加便于查找,提高数据的查询效率。在一些实施例中,对目标数据表进行解析的方法可以通过不同的过程。作为一个示例,上述步骤s130可以包括如下步骤:步骤k),通过标准库gzip和第二预设规则对目标数据表进行解析,得到目标数据表的表结构及表数据;步骤m),将解析得到的目标数据表的表结构及表数据存入python的第三方库的dataframe。其中,第三方库为pandas库,第二预设规则通过re正则表达式表达。本实施例中,通过将解析得到的目标数据表的表结构及表数据存入python的第三方库的dataframe,能够使目标数据表的表结构及表数据能够长期存储,便于对目标数据表的表结构及表数据的查询。作为另一个示例,上述步骤s130可以包括如下步骤:步骤n),对目标备份文件进行解析,获取创建目标数据表表结构的第一sql文本;步骤o),对第一sql文本进行解析,得到目标数据表的字段名称列表;步骤p),使用python的第三方库创建dataframe;步骤q),将目标数据表的字段名称作为dataframe的列名称,增加到dataframe列中;步骤r),解析目标备份文件,获取目标数据表的表数据的第二sql文本;步骤s),对第二sql文本进行解析,将解析得到的目标数据表的表数据存入dataframe列中。基于上述步骤n),示例性的,web服务器可以解析目标备份文件,获取创建目标数据表表结构的sql文本,使用re正则表达式获取"createtable`" table "`.*?\;"的文本," table "为传入的表变量。基于上述步骤o),示例性的,如图3所示,web服务器可以对步骤n)获得的创建目标数据表的表结构的sql文本进行解析,使用r'.\n`(.*?)`'规则进行解析,解析出目标数据表包含的字段名称,将解析所得的字段名称存入字段名称列表。接下来,如图3所示,web服务器还可以对步骤n)获得的创建目标数据表表结构的sql文本进行解析,解析出目标数据表的每个字段的字段类型,将解析所得的字段类型存入字段类型列表。当然,web服务器可以对步骤n)获得的创建目标数据表表结构的sql文本进行解析,如图3所示,解析出目标数据表的每个字段的字段长度,将解析出的字段长度存入字段长度列表。基于上述步骤p)和步骤q),示例性的,web服务器使用python的第三方库创建一个dataframe,如图3所示,将目标数据的各个字段名称作为dataframe的列名称,增加到dataframe列中。基于上述步骤r),示例性的,web服务器解析目标备份文件,获取目标数据表表数据的sql文本,使用re正则表达式获取"insertinto`" table "`.*?\;"的文本," table "为传入的表变量。基于上述步骤s),示例性的,如图3所示,web服务器根据目标数据表的字段名称对上述步骤r)获取的目标数据表表数据的sql文本进行解析,使用re.findall(text_insert,text,flags=re.dotall re.multiline)解析,将解析的表数据存入上述步骤p)创建的dataframe列中。通过将目标数据表的字段名称作为dataframe的列名称而增加到dataframe列中,以及将解析得到的目标数据表的表数据也存入dataframe列中,能够使目标数据表的字段名称及其表数据能够同时从dataframe列中查找到,以提高数据查询效率。在一些实施例中,上述步骤s140可以包括如下步骤:步骤t),接收web客户端发送的sql代码;步骤u),将sql代码转换为dataframe的命令;步骤v),基于dataframe的命令对dataframe中的目标数据表的表数据进行分析统计;步骤w),在dataframe中更新数据分析统计结果。在实际应用中,用户可以在web客户端上输入sql代码,web客户端将接收的sql代码发送至服务器。当然,用户还可以在web客户端上输入查询关键字,web客户端根据查询关键字生成查询命令,并将该查询命令发送至web服务器。通过步骤t)至步骤w)的过程,能提高web服务器与web客户端之间的交互效率,有效的根据用户选择而快速在dataframe中更新数据分析统计结果,以提高响应效率。在一些实施例中,该方法还可以包括以下步骤:步骤x),接收web客户端发送的还原命令,还原命令包括目标数据表的标识以及待还原数据库的标识;步骤y),将目标数据表的数据分析统计结果还原至待还原数据库中。对于上述步骤y),例如,web服务器可以基于web客户端发送的还原命令,将目标数据表的数据分析统计结果还原至目标备份文件对应的数据库中。通过上述目标数据表数据分析统计结果的还原过程,能够使目标数据表的数据分析统计结果还原至待还原数据库,以及时有效的对用户的还原命令进行响应。图4为本申请实施例提供的另一种mysql数据库备份文件的数据获取方法的流程示意图。其中,该方法应用于web客户端。如图4所示,该方法包括:步骤s410,根据用户输入操作确定查询命令,将查询命令发送至存储mysql数据库备份文件的web服务器。步骤s420,接收web服务器返回的查询结果,其中,该查询结果是web服务器基于查询命令对mysql数据库备份文件的数据表进行分析统计而得到的分析统计结果。步骤s430,对分析统计结果进行显示。本实施例提供的mysql数据库备份文件的数据获取方法,与上述实施例提供的mysql数据库备份文件的数据获取方法具有相同的技术特征,所以也能解决相同的技术问题,达到相同的技术效果。图5为本申请实施例提供的另一种mysql数据库备份文件的数据获取方法的流程示意图。该方法可以应用于mysql数据库备份文件的数据管理系统,该数据管理系统包括web客户端和web服务器,web服务器用于存储mysql数据库备份文件。如图5所示,该方法包括:步骤s510,web客户端根据用户输入操作确定查询命令,将查询命令发送至存储mysql数据库备份文件的web服务器;步骤s520,web服务器基于查询命令对web客户端待获取数据的目标备份文件进行文本分析,得到目标备份文件对应的数据表名称列表;步骤s530,web服务器基于数据表名称列表,确定mysql数据库备份文件的目标数据表;步骤s540,web服务器对目标数据表进行解析,得到目标数据表的表结构及表数据,以及对目标数据表的表数据进行分析统计,获得数据分析统计结果;步骤s550,web服务器将分析统计结果发送至web客户端;步骤s560,web客户端接收分析统计结果,并对分析统计结果进行显示。作为本实施例提供的另一种实施方式,在web服务器分析出的备份文件名称列表等数据后,上述web客户端也可以对该数据进行展示,并基于用户的选择输入操作从中确定目标备份文件,下面以此情况为例进行说明。首先,web客户端向web服务器发送查询命令(例如备份文件展示命令),web服务器接收到该查询命令后,访问备份文件目录,获取备份文件名称列表,并将备份文件名称列表发送至web客户端,web客户端能够以如图6所示的界面形式展示该备份文件名称列表,并基于用户的选择输入确定目标备份文件,以及向web服务器发送目标备份文件的数据表查询命令。然后,web服务器接收到目标备份文件的数据表查询命令后,确定目标备份文件并将目标备份文件读取到内存,对目标备份文件进行文本分析,获取目标备份文件的数据表名称列表,并将目标备份文件的数据表名称列表发送至web客户端。接下来,web客户端能够以如图7所示的界面形式展示目标备份文件的数据表名称列表,并基于用户的选择输入确定目标数据表,以及向服务器发送目标数据表的数据查询命令(例如目标数据表的展示命令)。之后,web服务器接收到目标数据表的数据查询命令后,确定目标数据表,对目标数据表进行解析得到目标数据表的表结构及表数据,并将目标数据表的展示内容发送至web客户端。web客户端接收用户输入的查询命令,并将查询命令发送至web服务器;服务器基于用户的查询命令对目标数据表的数据进行分析统计,获得数据分析统计结果并将该数据分析统计结果发送至web客户端;web客户端展示数据分析统计结果。本实施例提供的mysql数据库备份文件的数据获取方法,与上述实施例提供的mysql数据库备份文件的数据获取方法具有相同的技术特征,所以也能解决相同的技术问题,达到相同的技术效果。图8提供了一种mysql数据库备份文件的数据获取装置的结构示意图。该装置应用于存储mysql数据库备份文件的web服务器。如图8所示,mysql数据库备份文件的数据获取装置800包括:分析模块801,用于对web客户端待获取数据的目标备份文件进行文本分析,得到目标备份文件对应的数据表名称列表;第一确定模块802,用于基于数据表名称列表,确定目标数据表;解析模块803,用于对目标数据表进行解析,得到目标数据表的表结构及表数据;以及对目标数据表的表数据进行分析统计,获得数据分析统计结果;发送模块804,用于将分析统计结果发送至web客户端。其中,作为一个示例,mysql数据库备份文件的数据获取装置800可以包括基础模块、文件读取模块、内存解析模块以及展示模块。基础模块用于对mysql数据库的备份文件进行管理,其中,该管理包括对使用自动化应用系统的开发及测试人员授予相关数据库备份文件及数据表的读取权限;具体的,基础模块主要通过系统的用户数据、配置数据和系统配置文件来实现备份文件管理;文件读取模块用于将基础模块的mysql数据库的备份文件读取到内存;具体的,文件读取模块主要是通过使用python的标准库glob,获取备份文件名称、文件大小、备份时间等数据,从获取的备份文件名称中使用正则表达式获取数据库名称;内存解析模块用于将文件读取模块获取到的数据库备份文件在内存模块中进行解析,解析出数据表、数据表的建表语句、数据表的数据,对数据表、数据表的建表语句、数据表的数据进行解析,获得数据表的每个字段的字段名称、字段对应的数据,将这些内容转存到dataframe;内存解析模块是整个自动化应用系统的核心模块,具体的,内存解析模块主要是通过使用python的标准库gzip、re正则表达式、list进行相关解析,使用python第三方库pandas创建dataframe来保存这些解析内容。由上述各模块的功能,结合图2可知,上述的分析模块801、第一确定模块802和解析模块803均设置于内存解析模块。展示模块,用于与用户终端交互,提供备份文件查询、数据库及表的查询、表数据展示、数据统计分析等功能。具体的,如图9所示,备份文件查询是通过读取文件读取模块的数据实现,数据库及表的查询是通过读取内存解析模块的list实现,表数据展示是通过读取内存解析模块的dataframe数据实现,数据统计分析是通过对内存解析模块的dataframe数据进行分析后实现;展示模块为使用python的第三方库flask创建的一个轻量级web框架来实现。结合图9和图2可知,发送模块804设置于展示模块。在一些实施例中,该装置还包括:接收模块,用于接收web客户端发送的查询请求;第二确定模块,用于确定本地的备份文件名称列表;发送模块还用于向web客户端发送备份文件名称列表,以便web客户端基于备份文件名称列表确定目标备份文件。在一些实施例中,第二确定模块具体用于:基于python的标准库的glob指令,获取本地备份文件目录中所有备份文件的名称;将所获取的备份文件的名称存储为备份文件名称列表。在一些实施例中,该装置还包括:获取模块,用于获取每个备份文件对应的数据库的名称;存储模块,用于将备份文件名称与该备份文件对应的数据库名称的对应关系存储至备份文件名称列表中。在一些实施例中,分析模块801具体用于:将目标备份文件读取到内存中;基于标准库gzip和第一预设规则对目标备份文件进行检索分析,获取到目标备份文件包括的所有数据表的名称,并将目标备份文件的所有数据表的名称存储为目标备份文件对应的数据表名称列表;其中,第一预设规则通过re正则表达式表示。在一些实施例中,分析模块801具体用于:通过标准库gzip和第二预设规则对目标数据表进行解析,得到目标数据表的表结构及表数据;将解析得到的目标数据表的表结构及表数据存入python的第三方库的dataframe;其中,第三方库为pandas库,第二预设规则通过re正则表达式表达。在一些实施例中,解析模块803具体用于:对目标备份文件进行解析,获取创建目标数据表表结构的第一sql文本;对第一sql文本进行解析,得到目标数据表的字段名称列表;使用python的第三方库创建dataframe;将目标数据表的字段名称作为dataframe的列名称,增加到dataframe列中;解析目标备份文件,获取目标数据表的表数据的第二sql文本;对第二sql文本进行解析,将解析得到的目标数据表的表数据存入dataframe列中。在一些实施例中,解析模块803还用于:接收web客户端发送的sql代码;将sql代码转换为dataframe的命令;基于dataframe的命令对dataframe中的目标数据表的表数据进行分析统计;在dataframe中更新数据分析统计结果。在一些实施例中,该装置还包括:接收模块还用于接收web客户端发送的还原命令,还原命令包括目标数据表的标识以及待还原数据库的标识;还原模块,用于将目标数据表的数据分析统计结果还原至待还原数据库中。本实施例提供的mysql数据库备份文件的数据获取装置,与上述实施例提供的mysql数据库备份文件的数据获取方法具有相同的技术特征,所以也能解决相同的技术问题,达到相同的技术效果。图10提供了一种mysql数据库备份文件的数据获取装置的结构示意图。该装置应用于web客户端。如图10所示,mysql数据库备份文件的数据获取装置1000包括:确定单元1001,用于根据用户输入操作确定查询命令,将查询命令发送至存储mysql数据库备份文件的web服务器;接收单元1002,用于接收web服务器返回的查询结果;其中,查询结果是web服务器基于查询命令对mysql数据库备份文件的数据表进行分析统计而得到的分析统计结果;显示单元1003,用于对分析统计结果进行显示。本实施例提供的mysql数据库备份文件的数据获取装置,与上述实施例提供的mysql数据库备份文件的数据获取方法具有相同的技术特征,所以也能解决相同的技术问题,达到相同的技术效果。本申请实施例还提供了一种mysql数据库备份文件的数据获取系统,包括:通信连接的web客户端和web服务器,web客户端用于与用户以及web服务器进行交互,web服务器用于执行上述实施例的方法。其中,web服务器可以包括上述实施例所述的mysql数据库备份文件的数据获取装置;web客户端可以用于接收用户输入的查询指令、向服务器的展示模块发送查询命令,以及接收服务器的展示模块返回的查询结果并显示查询结果。本实施例提供的mysql数据库备份文件的数据获取系统,与上述实施例提供的mysql数据库备份文件的数据获取方法及方法具有相同的技术特征,所以也能解决相同的技术问题,达到相同的技术效果。本申请实施例提供的一种电子设备,如图11所示,电子设备1100包括存储器1101、处理器1102,存储器1101中存储有可在所述处理器上运行的计算机程序,处理器1102执行所述计算机程序时实现上述实施例提供的方法的步骤。参见图11,电子设备还包括:总线1103和通信接口1104,处理器1102、通信接口1104和存储器1101通过总线1103连接;处理器1102用于执行存储器1101中存储的可执行模块,例如计算机程序。其中,存储器1101可能包含高速随机存取存储器(randomaccessmemory,简称ram),也可能还包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。通过至少一个通信接口1104(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。总线1103可以是isa总线、pci总线或eisa总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图11中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。其中,存储器1101用于存储程序,所述处理器1102在接收到执行指令后,执行所述程序,前述本申请任一实施例揭示的过程定义的装置所执行的方法可以应用于处理器1102中,或者由处理器1102实现。处理器1102可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器1102中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器1102可以是通用处理器,包括中央处理器(centralprocessingunit,简称cpu)、网络处理器(networkprocessor,简称np)等;还可以是数字信号处理器(digitalsignalprocessing,简称dsp)、专用集成电路(applicationspecificintegratedcircuit,简称asic)、现成可编程门阵列(field-programmablegatearray,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器1101,处理器1102读取存储器1101中的信息,结合其硬件完成上述方法的步骤。对应于上述mysql数据库备份文件的数据获取方法,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有机器可运行指令,所述计算机可运行指令在被处理器调用和运行时,所述计算机可运行指令促使所述处理器运行上述mysql数据库备份文件的数据获取方法的步骤。本申请实施例所提供的mysql数据库备份文件的数据获取装置可以为设备上的特定硬件或者安装于设备上的软件或固件等。本申请实施例所提供的装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,前述描述的系统、装置和单元的具体工作过程,均可以参考上述方法实施例中的对应过程,在此不再赘述。在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。另外,在本申请提供的实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述mysql数据库备份文件的数据获取方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,简称rom)、随机存取存储器(randomaccessmemory,简称ram)、磁碟或者光盘等各种可以存储程序代码的介质。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释,此外,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。当前第1页1 2 3 当前第1页1 2 3 
技术特征:

1.一种mysql数据库备份文件的数据获取方法,其特征在于,应用于存储mysql数据库备份文件的web服务器,所述方法包括:

对web客户端待获取数据的目标备份文件进行文本分析,得到所述目标备份文件对应的数据表名称列表;

基于所述数据表名称列表,确定目标数据表;

对所述目标数据表进行解析,得到所述目标数据表的表结构及表数据;以及对所述目标数据表的表数据进行分析统计,获得数据分析统计结果;

将所述分析统计结果发送至所述web客户端。

2.根据权利要求1所述的方法,其特征在于,在对web客户端待获取的目标备份文件进行文本分析的步骤之前,所述方法还包括:

接收web客户端发送的查询请求;

基于python的标准库的glob指令,获取本地备份文件目录中所有备份文件的名称;

将所获取的备份文件的名称存储为备份文件名称列表;

向所述web客户端发送所述备份文件名称列表,以便所述web客户端基于所述备份文件名称列表确定目标备份文件。

3.根据权利要求1所述的方法,其特征在于,对web客户端待获取的目标备份文件进行文本分析,得到所述目标备份文件对应的数据表名称列表的步骤,包括:

将所述目标备份文件读取到内存中;

基于标准库gzip和第一预设规则对所述目标备份文件进行检索分析,获取到所述目标备份文件包括的所有数据表的名称,并将所述目标备份文件的所有数据表的名称存储为所述目标备份文件对应的数据表名称列表。

4.根据权利要求1所述的方法,其特征在于,对所述目标数据表进行解析,得到所述目标数据表的表结构及表数据的步骤,包括:

通过标准库gzip和第二预设规则对所述目标数据表进行解析,得到所述目标数据表的表结构及表数据;

将解析得到的所述目标数据表的表结构及表数据存入python的第三方库的dataframe。

5.根据权利要求1所述的方法,其特征在于,对所述目标数据表进行解析,得到所述目标数据表的表结构及表数据的步骤,包括:

对所述目标备份文件进行解析,获取创建所述目标数据表的表结构的第一sql文本;

对所述第一sql文本进行解析,得到所述目标数据表的字段名称列表;

使用python的第三方库创建dataframe;

将所述目标数据表的字段名称作为dataframe的列名称,增加到dataframe列中;

解析目标备份文件,获取目标数据表的表数据的第二sql文本;

对所述第二sql文本进行解析,将解析得到的所述目标数据表的表数据存入所述dataframe列中。

6.根据权利要求4或5所述的方法,对所述目标数据表的表数据进行分析统计,获得数据分析统计结果的步骤,包括:

接收所述web客户端发送的sql代码;

将所述sql代码转换为所述dataframe的命令;

基于所述dataframe的命令对所述dataframe中的所述目标数据表的表数据进行分析统计;

在所述dataframe中更新数据分析统计结果。

7.一种mysql数据库备份文件的数据获取方法,其特征在于,应用于web客户端,所述方法包括:

根据用户输入操作确定查询命令,将所述查询命令发送至存储mysql数据库备份文件的web服务器;

接收所述web服务器返回的查询结果;所述查询结果是所述web服务器基于所述查询命令对所述mysql数据库备份文件的数据表进行分析统计而得到的分析统计结果;

对所述分析统计结果进行显示。

8.一种mysql数据库备份文件的数据获取装置,其特征在于,应用于存储mysql数据库备份文件的web服务器,所述装置包括:

分析模块,用于对web客户端待获取数据的目标备份文件进行文本分析,得到所述目标备份文件对应的数据表名称列表;

确定模块,用于基于所述数据表名称列表,确定目标数据表;

解析模块,用于对所述目标数据表进行解析,得到所述目标数据表的表结构及表数据;以及对所述目标数据表的表数据进行分析统计,获得数据分析统计结果;

发送模块,用于将所述分析统计结果发送至所述web客户端。

9.一种mysql数据库备份文件的数据获取装置,其特征在于,应用于web客户端,所述装置包括:

确定单元,用于根据用户输入操作确定查询命令,将所述查询命令发送至存储mysql数据库备份文件的web服务器;

接收单元,用于接收所述web服务器返回的查询结果;所述查询结果是所述web服务器基于所述查询命令对所述mysql数据库备份文件的数据表进行分析统计而得到的分析统计结果;

显示单元,用于对所述分析统计结果进行显示。

10.一种mysql数据库备份文件的数据获取系统,其特征在于,包括:通信连接的web客户端和web服务器,所述web客户端用于与用户以及所述web服务器进行交互,所述web服务器用于执行所述权利要求1-6任一项所述的方法。

技术总结
本申请提供了一种MySQL数据库备份文件的数据获取方法、装置和系统,涉及数据库的技术领域,包括:对web客户端待获取数据的目标备份文件进行文本分析,得到所述目标备份文件对应的数据表名称列表;基于所述数据表名称列表,确定目标数据表;对所述目标数据表进行解析,得到所述目标数据表的表结构及表数据;以及对所述目标数据表的表数据进行分析统计,获得数据分析统计结果;将所述分析统计结果发送至所述web客户端。缓解了现有技术中存在的在对多个对备份文件进行表数据读取时数据获取的工作效率较低的技术问题。

技术研发人员:董斌;李德逸;李洪明;曹孔强;李钢
受保护的技术使用者:山东新北洋信息技术股份有限公司
技术研发日:2020.01.22
技术公布日:2020.06.09

转载请注明原文地址: https://bbs.8miu.com/read-27292.html

最新回复(0)