数据文件部署方法、装置、计算机设备及存储介质与流程

文档序号:17762795发布日期:2019-05-24 21:51阅读:131来源:国知局
数据文件部署方法、装置、计算机设备及存储介质与流程

本发明涉及数据处理领域,尤其涉及一种数据文件部署方法、装置、计算机设备及存储介质。



背景技术:

随着社会经济的发展,一些集团公司业务范围越来越广,数据库中需要存储的数据也会越来越多,一般会将数据分别保存在开发库和生产库,也即,实现开发库和生产库分离,开发库是指开发人员用来开发测试使用的数据库,生产库是指业务运行所使用的数据库,生产库一般会进行很多业务数据处理,这往往需要耗费不少的系统资源,且在非预设维护时间一般需要保持开启。

在业务人员将数据文件部署到生产库时,需要在生产库中进行数据导入和数据检查,并在检查通过后根据数据关联生成数据库脚本,由于生产库本身的数据量大,且需要一直保持开启运行的状态,导致这些操作往往需要耗费大量时间,使得数据文件部署到生产库的效率低下,同时,在数据量较大和数据格式不统一的情况下,容易导致生产库资源不够,使得部署失败,这些严重影响了部署稳定性。



技术实现要素:

本发明实施例提供一种数据文件部署方法、装置、计算机设备和存储介质,以解决当前数据文件部署到生产库的部署效率低和稳定性差的问题。

一种数据文件部署方法,包括:

若接收到客户端发送的数据文件部署请求,则获取所述数据文件部署请求中包含的待处理文件;

将所述待处理文件写入到预设的开发库,并在所述预设的开发库中提取所述待处理文件中的数据作为基础数据;

按照预设条件,生成与所述基础数据相对应的数据库脚本;

对所述数据库脚本进行规范性校验,得到校验结果;

若所述校验结果为合格,则对所述基础数据进行预部署处理,得到目标数据;

建立所述预设的开发库与预设的生产库之间的联结,并通过预设的数据传输脚本,将所述目标数据和所述校验结果为合格的数据库脚本部署到所述预设的生产库中。

一种数据文件部署装置,包括:

文件接收模块,用于若接收到客户端发送的数据文件部署请求,则获取所述数据文件部署请求中包含的待处理文件;

数据提取模块,用于将所述待处理文件写入到预设的开发库,并在所述预设的开发库中提取所述待处理文件中的数据作为基础数据;

脚本生成模块,用于按照预设条件,生成与所述基础数据相对应的数据库脚本;

脚本校验模块,用于对所述数据库脚本进行规范性校验,得到校验结果;

目标数据获取模块,用于若所述校验结果为合格,则对所述基础数据进行预部署处理,得到目标数据;

数据部署模块,用于建立所述预设的开发库与预设的生产库之间的联结,并通过预设的数据传输脚本,将所述目标数据和所述校验结果为合格的数据库脚本部署到预设的生产库中。

一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述数据文件部署方法。

一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述数据文件部署方法。

本发明实施例提供的数据文件部署方法、装置、计算机设备及存储介质,在接收到客户端发送的数据文件部署请求时,获取数据文件部署请求中包含的待处理文件,进而将待处理文件写入到开发库,并通过开发库提取待处理文件中的数据作为基础数据,再按照预设条件,生成与基础数据相对应的数据库脚本,并对数据库脚本进行规范性校验,得到校验结果,在校验结果为合格时,对基础数据进行预部署处理,得到目标数据,进而建立开发库与生产库之间的联结,并通过预设的数据传输脚本,将目标数据和数据库脚本部署到预设的生产库中,实现了将数据文件先导入到开发库进行处理,由于开发库无需实时与应用数据连接,开发库中的系统资源被占用较少,使得开发库中可用于进行数据处理的空闲系统资源充足,有利于提高对数据文件进行数据处理的效率,且有效避免开发库或者生产库因资源不足导致的崩溃,提高了数据文件部署到生产库的稳定性,在开发库中对数据文件进行检查并生成对应的数据库脚本,再通过跨库数据导入的方式,部署到生产库中,提高了数据文件部署的效率和稳定性。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例提供的数据文件部署方法的应用环境示意图;

图2是本发明实施例提供的数据文件部署方法的实现流程图;

图3是本发明实施例提供的数据文件部署方法中步骤s20的实现流程图;

图4是本发明实施例提供的数据文件部署方法中步骤s21的实现流程图;

图5是本发明实施例提供的数据文件部署方法中步骤s30的实现流程图;

图6是本发明实施例提供的数据文件部署方法中步骤s40的实现流程图;

图7是本发明实施例提供的数据文件部署装置的示意图;

图8是本发明实施例提供的计算机设备的示意图。

具体实施方式

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

请参阅图1,图1示出本发明实施例提供的数据文件部署方法的应用环境。该数据文件部署方法应用在将业务数据文件中的数据部署到生产库的数据文件部署场景中。该数据文件部署场景包括客户端和服务端,其中,客户端和服务端之间通过网络进行连接,客户端向服务端发送包含待处理文件的数据文件部署请求,服务端接收该待处理文件并提取数据,并通过开发库对提取的数据进行分析处理,生成数据库脚本,并将处理后的数据和数据库脚本部署到生产库中,客户端具体可以但不限于是笔记本电脑、个人计算机、手机和便携式手持智能设备和可穿戴式智能设备等,服务端具体可以用独立的服务器或者多个服务器组成的服务器集群实现。

请参阅图2,图2示出本发明实施例提供的一种数据文件部署方法,以该方法应用在图1中的服务端为例进行说明,详述如下:

s10:若接收到客户端发送的数据文件部署请求,则获取数据文件部署请求中包含的待处理文件。

具体地,业务人员通过客户端,向服务端发送数据文件部署请求,服务器在接收到该数据文件部署请求时,通过网络传输协议,获取数据文件部署请求中包含的待处理文件。

其中,所述数据文件部署请求是指将数据文件进行部署的请求,在本实施例中,即将待处理文件中包含的数据部署到生产库,并在生产库中,生成可用于进行待处理文件中的数据之间关联查询的数据库脚本的请求。

其中,待处理文件是由业务人员搜集录入,并需要进行部署到生产库中的业务数据文件。

其中,网络传输协议包括但不限于:互联网控制报文协议(internetcontrolmessageprotocol,icmp)、简单网络管理协议(simplenetworkmanagementprotocol,snmp)地址解析协议(arpaddressresolutionprotocol,arp)、逆向地址解析协议(reversearpaddressresolutionprotocol,rarp)和文件传输协议(filetransferprotocol,ftp)等。

s20:将待处理文件写入到预设的开发库,并在预设的开发库中提取待处理文件中的数据作为基础数据。

具体地,服务端在接收完数据文件部署请求中包含的待处理文件后,将待处理文件写入到预设的开发库中,并在预设的开发库中,对待处理文件进行数据提取,得到待处理文件中包含的数据,作为基础数据。

其中,预设的开发库是指开发人员在进行程序编写测试过程中,所使用的库,在开发库中,可以预先编写并保存多种需要使用的函数和功能组件,开发库在进行任务时启用,在非任务时无需开启,也即,开发库在大多数时间处于空闲状态,拥有大量可用的系统资源。

在本实施例中,可以通过预先在开发库中编写并存储文件写入脚本,通过文件写入脚本,通过使用文件写入脚本读取待处理文件,并将待处理文件写入到开发库中。

其中,文件写入脚本的脚本类型具体可以是但不限于是:shell脚本、javascript、vbscript、sql脚本、lua脚本和python脚本等。

优选地,本实施例采用的文件写入脚本的脚本类型为shell脚本。

值得说明的是,在读取待处理文件中的数据后,需要对数据进行统一格式化,即对非预设格式的数据进行格式转换,并将格式转换之后的数据作为基础数据,以保证后续可通过基础数据进行生成数据库脚本。

s30:按照预设条件,生成与基础数据相对应的数据库脚本。

具体地,在当前,主要通过将待处理文件中的数据导入到生产库中,进而在生产库中根据数据之间的关联,生成数据库脚本文件,以便通过该数据库脚本文件快速对数据进行查询归类,为避免在生产库中执行该操作造成生产库资源紧张,导致生产库出现不稳定的情况,本实施例在预设的开发库中,执行通过从待处理文件中提取到的基础数据,生成基础数据相对应的数据库脚本。

其中,预设条件可以是基础数据的属性信息,也可以是基础数据之间的关联性,具体可依实际情况进行确定,此处不做限制。

s40:对数据库脚本进行规范性校验,得到校验结果。

具体地,在数据库脚本生成之后,对数据库脚本的规范性进行检查,得到校验结果,其中,校验结果包括合格和不合格。

其中,对数据库脚本的规范性进行校验所采用的方式包括但不限于:批处理、正则表达式、数据库查询分析器、触发器和预设脚本文件等,可根据实际需要进行选取,此处不作具体限制。

值得说明的是,对数据库脚本文件的规范性校验,不仅可以采用上述方式,也可以使用第三方工具来实现,例如,使用数据库脚本规范格式化工具sqlinform来对数据库脚本进行规范性检查。

优选地,本实施例采用数据库查询分析器来对数据库脚本的规范性进行校验,具体过程可参考步骤s41至步骤s43的描述,为避免重复,此处不再赘述。

s50:若校验结果为合格,则对基础数据进行预部署处理,得到目标数据。

具体地,在对数据库脚本的规范性检查结果为合格时,对基础数据进行预部署,得到目标数据。

其中,目标数据为符合生产库中数据存储标准的数据,具体可以是包含基础数据的数据表,也可以是通过基础数据生成的能反映基础数据之间的数据关系的空间数据,还可以根据实际需要进行设定,此处不做限制。

在本实施例中,由于生产库中的数据均以数据表的形式存储,在本实施例中,作为一种优选方式,将目标数据设定为与生产库中具有相同数据表模板的数据表的形式。

其中,进行预部署处理包括:获取预先存储的数据表模板;将每个基础数据按照其属性,存入到数据库模板中的相应位置;根据该数据库模板及数据库模板中存储的基础数据,得到目标数据。

s60:建立预设的开发库与预设的生产库之间的联结,并通过预设的数据传输脚本,将目标数据和校验结果为合格的数据库脚本部署到预设的生产库中。

具体地,在得到目标数据后,建立预设的开发库与预设的生产库之间的联结,并通过预设的数据传输脚本,将目标数据和数据库脚本部署到预设的生产库中。

其中,预设脚本用于快速地将开发库中生成的目标数据,部署到生产库中的对应位置,例如,在本实施例中,预设脚本具体可以为:

copyfromepciscde/cde6953@epcisdvpappendahs_mbank_info_tmpusingselect*fromahs_mbank_info_tmp

其中,“epciscde”为开发库的访问用户名,“cde6953”为开发库的访问用户名“epciscde”对应的访问密码,“epcisdvp”为开发库的实例名,“ahs_mbank_info_tmp”为目标数据的标识,在这个示例中,为目标数据对应的表名。

在本实施例中,在接收到客户端发送的数据文件部署请求时,获取数据文件部署请求中包含的待处理文件,进而将待处理文件写入到开发库,并通过开发库提取待处理文件中的数据作为基础数据,再按照预设条件,生成与基础数据相对应的数据库脚本,并对数据库脚本进行规范性校验,得到校验结果,在校验结果为合格时,对基础数据进行预部署处理,得到目标数据,进而建立开发库与生产库之间的联结,并通过预设的数据传输脚本,将目标数据和校验结果为合格的数据库脚本部署到预设的生产库中,实现了将数据文件先导入到开发库进行处理,由于开发库无需实时与应用数据连接,开发库中的系统资源被占用较少,使得开发库中可用于进行数据处理的空闲系统资源充足,有利于提高对数据文件进行数据处理的效率,且有效避免开发库或者生产库因资源不足导致的崩溃,提高了数据文件部署到生产库的稳定性,在开发库中对数据文件进行检查并生成对应的数据库脚本,再通过跨库数据导入的方式,部署到生产库中,提高了数据文件部署的效率和稳定性。

在图2对应的实施例的基础之上,下面通过一个具体的实施例来对步骤s20中所提及的在预设的开发库中提取待处理文件中的数据作为基础数据的具体实现方法进行详细说明。

请参阅图3,图3示出了本发明实施例提供的步骤s20的具体实现流程,详述如下:

s21:在预设的开发库中提取待处理文件中的数据,作为初始数据。

具体地,在预设的开发库中,对待处理文件进行数据提取,得到待处理文件中包含的数据,作为初始数据。

s22:按照预设的数据分割方法,对初始数据进行数据分割操作,得到至少一个分割数据。

具体地,按照预先设置的数据分割方法,对初始数据进行数据分割操作,得到一个或一个以上的分割数据。

其中,预设的数据分割方法包括但不限于:数据划分法、正则表达式和分值算法等,具体可以根据实际应用需求进行设置,此处不做具体限制。

优选地,本实施例采用的数据分割方法为数据划分法,通过获取文本内容中的分界标识,以分界标识为间隔,将文本内容划分为数据标识和每个数据标识对应的数据内容。

例如,在一具体实施方式中,获取到的数据为“姓名:张三;性别:男;年龄:22”,使用分号作为数据划分的分割标识,对所述数据中的分号进行遍历,得到两个分号,使用这两个分号将数据分为三组,分别为“姓名:张三”、“性别:男”和“年龄:22”,这三组数据即为三个分割数据。

s23:按照预设数据标准,对每个分割数据进行规范性校验,选取满足预设数据标准的分割数据,作为基础数据。

具体地,按照预设数据标准,对每个分割数据进行规范性校验,并根据校验结果,选取满足预设数据标准的分割数据,作为基础数据。

其中,规范性校验是指对分割数据的取值范围和数据类型进行检查,分割数据的取值范围和数据类型均满足预设数据标准时,将该分割数据作为基础数据。

在本实施例中,在预设的开发库中提取待处理文件中的数据,作为初始数据,进而按照预设的数据分割方法,对初始数据进行数据分割操作,得到至少一个分割数据,再按照预设数据标准,对每个分割数据进行规范性校验,选取满足预设数据标准的分割数据,作为基础数据,使得将待处理文件中,解析出符合要求的基础数据,有利于提高后续通过基础数据生成数据库脚本的效率。

在图3对应的实施例的基础之上,下面通过一个具体的实施例来对步骤s21中所提及的在预设的开发库中提取待处理文件中的数据,作为初始数据的具体实现方法进行详细说明。

请参阅图4,图4示出了本发明实施例提供的步骤s21的具体实现流程,详述如下:

s211:在预设的开发库中提取待处理文件中的数据。

具体地,通过预设的开发库中存储的功能函数,从该预设的开发库中,读取待处理文件中的数据。

其中,读取待处理数据,可以是对待处理文件进行加载,进而从内存中读取,也可以是直接从待处理文件中读取,待处理数据可以是为保险领域的业务数据,例如:保单号、保费金额和保单起始时间等。

s212:对提取的数据进行数据类型判断,得到提取的数据的数据类型。

具体地,可以通过typeof函数获取待处理数据的对数据进行数据类型进行判断,得到数据的数据类型,以便确认该数据的数据类型是否属于预设的数据类型。

s213:若提取的数据的数据类型不属于预设的数据类型,则按照预设的数据类型转换方法,对提取的数据进行数据类型转换,得到属于预设的数据类型的初始数据,若提取的数据的数据类型属于预设的数据类型,则将提取的数据作为初始数据。

具体地,在提取的数据的数据类型不属于预设的数据类型时,按照预设的数据类型转换方法,对提取的数据进行数据类型转换,得到属于预设的数据类型的初始数据,在提取的数据的数据类型属于预设的数据类型,直接将提取的数据作为初始数据,使得得到的初始数据的数据类型均属于预设的数据类型,有利于后续对初始数据的识别,以及使用初始数据进行数据库脚本的生成。

在本实施例中,在预设的开发库中提取待处理文件中的数据,并对该提取的数据进行数据类型判断,得到该提取的数据的数据类型,在该提取的数据的数据类型不属于预设的数据类型时,按照预设的数据类型转换方法,对该提取的数据进行数据类型转换,得到属于预设的数据类型的初始数据,在该提取的数据的数据类型属于预设的数据类型时,将该提取的数据作为初始数据,使得得到的初始数据中数据类型均为预设的是数据类型,有利于后续进行数据分割解析。

在图2对应的实施例的基础之上,下面通过一个具体的实施例来对步骤s30中所提及的按照预设条件,生成与基础数据相对应的数据库脚本的具体实现方法进行详细说明。

请参阅图5,图5示出了本发明实施例提供的步骤s30的具体实现流程,详述如下:

s31:按照基础数据的数据标识,对每个基础数据进行遍历,得到基础数据中包含的每个字段内容,并对字段内容进行统计分析,得到每个字段内容对应的字段属性。

具体地,按照基础数据的数据标识,对每个基础数据进行遍历,得到基础数据中包含的每个字段内容,并对字段内容进行统计分析,得到每个字段内容对应的字段属性。

其中,遍历(traversal)是指对基础数据中的数据标识的节点树中所有结点的信息的访问,即依次对节点树中每个结点访问一次且仅访问一次。遍历方式包括但不限于:前序遍历、中序遍历和后序遍历等。

优选地,本发明实施例使用的遍历方式为前序遍历,前序遍历的顺序包括nlr或nrl,其中n是指根(node),l是指根的左节点(leftsubtree),r是指根的右节点(rightsubtree)。

在本实施例中,服务端预设有多个字段内容,每个字段内容对应一种或多种数据标识,根据数据标识,可以确定该基础数据所属的字段内容,例如,获取到的一个基础数据标识为“cx-zd-512036”,根据预先设置的字段内容与数据标识的对应关系,确定前两位为“cx”的数据标识对应的字段内容为产险,即可确定该数据标识所属的字段内容为产险。

其中,对字段内容进行统计分析,得到每个字段内容对应的字段属性是指针对每个字段内容,分别对该字段内容里面包含的基础数据进行分析统计,得到该字段内容中基础数据的属性与关联信息。

s32:根据预设的数据库语句生成条件、每个字段内容和每个字段内容对应的字段属性,生成包含至少一个基础语句的基础语句集合。

具体地,根据预设的数据库语句生成条件、每个字段内容和每个字段内容对应的字段属性,生成包含至少一个基础语句的基础语句集合。

其中,预设的数据库语句生成条件可以根据实际需要进行设定。

例如,在一具体实施方式中,预设条件为:查询字段内容a中数值大于1000的基础数据,并获取查询结果,生成相关基础语句为:

select字段内容afrom临时表wherevalue>1000

其中,value为字段a中基础数据的值,另一预设条件为:查询所有重复的基础数据,并去掉多余的重复部分,生成的基础语句为:

selectdistinct字段afrom临时表

其中,distinct表示重复的结果仅保留一个,最终获取的结果均不相同。

s33:对基础语句集合中的基础语句进行关联性检测,并将具有关联性的基础语句作为一组关联语句。

具体地,对基础语句集合中的基础语句进行关联性检测,将检测结果中,相互之间具有关联性的基础语句,作为一组关联语句。

其中,关联性是指两个或两个以上的基础语句之间,具有共同的一种或多种特征,且互不冲突的性质,例如,一个基础语句为查询字段内容b的颜色信息,另一个基础语句为查询字段内容b的销量信息,这两个基础语句均为查询字段内容b的属性信息,且两种查询信息不冲突,因而,可以将这两个基础语句作为一组关联语句,又例如,一个基础语句为查询字段内容c的颜色为黄色的基础数据,另一个基础语句为查询字段内容c的颜色为红色的基础数据,这两个基础语句具有相同的特征,但查询内容存在冲突,因为不具有关联性,需要说明的是,基础语句是否存在冲突,可以通过预先进行设定,也可以是根据设置判断条件来进行判断,此处不作限定。

s34:针对每一组关联语句,执行数据库语句拼接指令,得到包含至少一个目标语句的目标语句集合,并从基础语句集合中删除关联语句。

具体地,针对每一组关联语句,通过数据库语句拼接指令对关联语句进行拼接,得到包含至少一个目标语句的目标语句集合,在根据关联语句得到目标语句之后,从基础语句集合中删除该关联语句。

容易理解地,对具有关联的基础语句进行拼接,可以减少后续数据处理的次数,提高数据处理的效率。

以步骤s32中的示例为例,若需要得到字段内容a中数值大于1000且不重复的基础数据,则将上述两个基础语句拼接为:selectdistinct字段内容afrom临时表wherevalue>1000。

s35:将基础语句集合和目标语句集合封装成数据库脚本。

具体地,将基础语句集合和目标语句集合封装成数据库脚本,使得后续可以直接将数据库脚本导入到生产库,而无需在空闲资源较少的生产库中生成数据库脚本,有利于提高数据库脚本的生成效率。

其中,封装主要是使用dbutil组件中的queryrunner类中的query方法把查询语句写入到list清单中,最后将list清单中的内容存入到sql脚本的执行语句位置即可。

在本实施例中,按照基础数据的数据标识,对每个基础数据进行遍历,得到基础数据中包含的每个字段内容,并对字段内容进行统计分析,得到每个字段内容对应的字段属性,再根据预设的数据库语句生成条件、每个字段内容和每个字段内容对应的字段属性,生成包含至少一个基础语句的基础语句集合,同时,对基础语句集合中的基础语句进行关联性检测,并将具有关联性的基础语句作为一组关联语句,针对每一组关联语句,执行数据库语句拼接指令,得到包含至少一个目标语句的目标语句集合,并从基础语句集合中删除关联语句,并对基础语句集合和目标语句集合进行封装,得到数据库脚本,实现了自动生成数据库脚本,提高了生成数据库脚本的智能化程度。

在图2对应的实施例的基础之上,下面通过一个具体的实施例来对步骤s40中所提及的对数据库脚本进行规范性校验,得到校验结果的具体实现方法进行详细说明。

请参阅图6,图6示出了本发明实施例提供的步骤s40的具体实现流程,详述如下:

s41:读取数据库脚本中包含的每个语句,作为待检测语句。

具体地,通过对数据库脚本进行读取,得到数据库脚本中包含的每个语句,并将每个语句均作为一个待检测语句。

s42:采用数据库脚本分析工具,对待检测语句进行语法检查和功能性检测,得到分析结果。

具体地,数据库脚本分析工具,对待检测语句进行语法检查和功能性检测,得到分析结果,分析结果可以是待检测语句均合格,也可以是一个或一个以上的错误提示。

优选地,本实施例采用的数据库脚本分析工具为查询分析器中的检测函数。

其中,查询分析器是数据库中一个图形化的查询工具,用于以文本的方式编辑transact-sql语句,并接受分析执行的结果。使用这个工具,用户可以交互地设计和测试transact-sql语句、批处理和脚本。可以从sqlserver企业管理器中或从microsoftsqlserver中直接打开查询分析器。

其中,查询分析器中的检测函数包括但不限于paraseonly函数和noexec函数等,使用paraseonly函数时,查询分析器仅编译获取到的语句,使用noexec函数时,查询分析器编译并执行获取到的语句,根据执行结果来返回反馈消息,在本实施例中,仅需对语句和功能进行检查,也即,仅需获悉该语句是正确性,而无需知道在发生错误时,错误的原因,因而,为提高分析效率,本实施例采用一种优选方案,即采用paraseonly函数来进行语句分析。

s43:若分析结果包含一个或一个以上的错误提示,则确定数据库脚本的校验结果为不合格,若分析结果不包含错误提示,则确定数据库脚本的校验结果为合格。

具体地,在分析结果包含一个或一个以上的错误提示,则确定数据库脚本的校验结果为不合格,此时,将通过发送提示消息的形式,通知客户端的业务人员校验结果,在分析结果不包含错误提示时,确定数据库脚本的校验结果为合格,并执行后续预部署的方法。

在本实施例中,读取数据库脚本中包含的每个语句,作为待检测语句,并采用数据库脚本分析工具,对待检测语句进行语法检查和功能性检测,得到分析结果,若分析结果包含一个或一个以上的错误提示,则确定数据库脚本的校验结果为不合格,若分析结果不包含错误提示,则确定数据库脚本的校验结果为合格,实现了对数据库脚本的规范性进行快速校验,提高了数据库脚本规范性校验的效率。

应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。

图7示出与上述实施例数据文件部署方法一一对应的数据文件部署装置的原理框图。如图7所示,该数据文件部署装置包括文件接收模块10、数据提取模块20、脚本生成模块30、脚本校验模块40、目标数据获取模块50和数据部署模块60。各功能模块详细说明如下:

文件接收模块10,用于若接收到客户端发送的数据文件部署请求,则获取数据文件部署请求中包含的待处理文件;

数据提取模块20,用于将待处理文件写入到预设的开发库,并在预设的开发库中提取待处理文件中的数据作为基础数据;

脚本生成模块30,用于按照预设条件,生成与基础数据相对应的数据库脚本;

脚本校验模块40,用于对数据库脚本进行规范性校验,得到校验结果;

目标数据获取模块50,用于若校验结果为合格,则对基础数据进行预部署处理,得到目标数据;

数据部署模块60,用于建立预设的开发库与预设的生产库之间的联结,并通过预设的数据传输脚本,将目标数据和校验结果为合格的数据库脚本部署到预设的生产库中。

进一步地,数据提取模块20包括:

数据获取单元21,用于在预设的开发库中提取待处理文件中的数据,作为初始数据;

数据分割单元22,用于按照预设的数据分割方法,对初始数据进行数据分割操作,得到至少一个分割数据;

数据校验单元23,用于按照预设数据标准,对每个分割数据进行规范性校验,选取满足预设数据标准的分割数据,作为基础数据。

进一步地,数据获取单元21包括:

数据提取子单元211,用于在预设的开发库中提取待处理文件中的数据;

类型确定子单元212,用于对提取的数据进行数据类型判断,得到提取的数据的数据类型;

数据确定子单元213,用于若提取的数据的数据类型不属于预设的数据类型,则按照预设的数据类型转换方法,对提取的数据进行数据类型转换,得到属于预设的数据类型的初始数据,若提取的数据的数据类型属于预设的数据类型,则将提取的数据作为初始数据。

进一步地,脚本生成模块30包括:

数据遍历单元31,用于按照基础数据的数据标识,对每个基础数据进行遍历,得到基础数据中包含的每个字段内容,并对字段内容进行统计分析,得到每个字段内容对应的字段属性;

基础语句生成单元32,用于根据预设的数据库语句生成条件、每个字段内容和每个字段内容对应的字段属性,生成包含至少一个基础语句的基础语句集合;

关联检测单元33,用于对基础语句集合中的基础语句进行关联性检测,并将具有关联性的基础语句作为一组关联语句;

关联语句生成单元34,用于针对每一组关联语句,执行数据库语句拼接指令,得到包含至少一个目标语句的目标语句集合,并从基础语句集合中删除关联语句;

语句封装单元35,用于将基础语句集合和目标语句集合封装成数据库脚本。

进一步地,脚本校验模块40包括:

语句读取单元41,用于读取数据库脚本中包含的每个语句,作为待检测语句;

语句分析单元42,用于采用数据库脚本分析工具,对待检测语句进行语法检查和功能性检测,得到分析结果;

结果确定单元43,用于若分析结果包含一个或一个以上的错误提示,则确定数据库脚本的校验结果为不合格,若分析结果不包含错误提示,则确定数据库脚本的校验结果为合格。

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

图8是本发明一实施例提供的计算机设备的示意图。该计算机设备可以是服务端,其内部结构图可以如图8所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储开发库、生产库和预设的数据传输脚本。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种数据文件部署方法。

在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述实施例数据文件部署方法的步骤,例如图2所示的步骤s10至步骤s60。或者,处理器执行计算机程序时实现上述实施例数据文件部署装置的各模块/单元的功能,例如图7所示的模块10至模块60的功能。为避免重复,这里不再赘述。

所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。

在一实施例中,提供一计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例数据文件部署方法的步骤,或者,该计算机程序被处理器执行时实现上述实施例数据文件部署装置中各模块/单元的功能。为避免重复,这里不再赘述。

可以理解地,所述计算机可读存储介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、电载波信号和电信信号等。

以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1