CN110019533A - 同步脚本生成方法、装置、设备及计算机可读存储介质 - Google Patents
同步脚本生成方法、装置、设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN110019533A CN110019533A CN201810506375.3A CN201810506375A CN110019533A CN 110019533 A CN110019533 A CN 110019533A CN 201810506375 A CN201810506375 A CN 201810506375A CN 110019533 A CN110019533 A CN 110019533A
- Authority
- CN
- China
- Prior art keywords
- synchronous
- synchronized
- script
- name
- code
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开一种同步脚本生成方法、装置、设备及计算机可读存储介质,所述方法包括:当接收到终端界面发送的同步请求时,读取所述同步请求中的待同步数据表名以及目标数据库名;查询与所述待同步数据表名所对应数据表的表属性,并调用预设连接串,将所述目标数据库名输入到预设连接串中,生成同步连接信息;获取预设同步基础代码,将所述待同步数据表名、所述表属性以及所述同步连接信息添加到所述预设同步基础代码中,生成同步脚本。本方案设置有自动生成同步脚本机制,将所需要同步的待同步数据表名、表属性和同步连接信息添加至预设同步基础代码中,生成代码,避免开发人员编写代码,提高同步脚本的生成效率。
Description
技术领域
本发明主要涉及数据库技术领域,具体地说,涉及一种同步脚本生成方法、装置、设备及计算机可读存储介质。
背景技术
随着大数据技术的发展,同一***使用多个数据库的场景随处可见,且某些数据需要在多个数据库之间同步,目前同步操作通过开发人员编写同步脚本进行。因需要同步的数据处于不同的数据表中,从而在编写同步脚本时,需要针对此不同的数据表进行编写,以通过同步脚本将数据表中的数据同步到另一数据库中。若需要同步数据较多,所分属于多个不同的数据表中,开发人员需要花费较多的时间去编写同步脚本,且编写过程容易出错,导致生成同步脚本的效率低。
发明内容
本发明的主要目的是提供一种同步脚本生成方法、装置、设备及计算机可读存储介质,旨在解决现有技术中用于不同数据库之间数据同步的同步脚本生成效率低的问题。
为实现上述目的,本发明提供一种同步脚本生成方法,所述同步脚本生成方法包括以下步骤:
当接收到终端界面发送的同步请求时,读取所述同步请求中的待同步数据表名以及目标数据库名;
查询与所述待同步数据表名所对应数据表的表属性,并调用预设连接串,将所述目标数据库名输入到预设连接串中,生成同步连接信息;
获取预设同步基础代码,将所述待同步数据表名、所述表属性以及所述同步连接信息添加到所述预设同步基础代码中,生成同步脚本。
优选地,所述生成同步脚本的步骤之后包括:
控制所述同步脚本运行,生成运行结果,并判断所述运行结果是否为运行成功;
若所述运行结果为运行成功,则输出同步脚本运行成功的提示信息;
若所述运行结果为运行失败,则调用预设检测代码对所述同步脚本进行检测,生成检测结果并输出。
优选地,所述生成检测结果并输出的步骤之后包括:
接收基于所述检测结果所发送的修改指令,并读取所述修改指令中所携带的修改位置和修改内容;
根据所述修改位置确定同步脚本中的目标修改位置,并将所述目标修改位置中的内容替换为修改内容。
优选地,所述生成同步脚本的步骤之后包括:
接收终端界面发送的调整代码,并控制所述调整代码运行对所述同步脚本进行检测,以确定所述同步脚本中是否存在与所述调整代码对应的目标调整参数;
若所述同步脚本中存在与所述调整代码对应的目标调整参数,读取所述调整代码中与所述目标调整参数对应的目标调整内容,并将所述同步脚本中与目标调整参数对应的待调整内容替换为目标调整内容。
优选地,所述获取预设同步基础代码,将所述待同步数据表名、所述表属性以及所述同步连接信息添加到所述预设同步基础代码中的步骤包括:
获取预设同步基础代码,并通过扫描检测确定预设同步基础代码中第一标识符、第二标识符和第三标识符的所在位置;
将所述待同步数据表名、所述表属性以及所述同步连接信息分别添加到所述第一标识符、第二标识符以及第三标识符所在位置处。
优选的,所述生成同步脚本的步骤之后包括:
读取所述同步连接信息中的目标数据库名以及预设连接串,并通过预设连接串建立与目标数据库名对应数据库的通信连接;
基于所述通信连接将所述同步脚本同步到与所述目标数据库名对应的数据库中。
此外,为实现上述目的,本发明还提出一种同步脚本生成装置,所述同步脚本生成装置包括:
读取模块,用于当接收到终端界面发送的同步请求时,读取所述同步请求中的待同步数据表名以及目标数据库名;
查询模块,用于查询与所述待同步数据表名所对应数据表的表属性,并调用预设连接串,将所述目标数据库名输入到预设连接串中,生成同步连接信息;
生成模块,用于获取预设同步基础代码,将所述待同步数据表名、所述表属性以及所述同步连接信息添加到所述预设同步基础代码中,生成同步脚本。
优选地,所述同步脚本生成装置还包括:
判断模块,用于控制所述同步脚本运行,生成运行结果,并判断所述运行结果是否为运行成功;
输出模块,用于若所述运行结果为运行成功,则输出同步脚本运行成功的提示信息;
调用模块,用于若所述运行结果为运行失败,则调用预设检测代码对所述同步脚本进行检测,生成检测结果并输出。
此外,为实现上述目的,本发明还提出一种同步脚本生成设备,所述同步脚本生成设备包括:存储器、处理器、通信总线以及存储在所述存储器上的同步脚本生成程序;
所述通信总线用于实现处理器和存储器之间的连接通信;
所述处理器用于执行所述同步脚本生成程序,以实现以下步骤:
当接收到终端界面发送的同步请求时,读取所述同步请求中的待同步数据表名以及目标数据库名;
查询与所述待同步数据表名所对应数据表的表属性,并调用预设连接串,将所述目标数据库名输入到预设连接串中,生成同步连接信息;
获取预设同步基础代码,将所述待同步数据表名、所述表属性以及所述同步连接信息添加到所述预设同步基础代码中,生成同步脚本。
此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者一个以上程序,所述一个或者一个以上程序可被一个或者一个以上的处理器执行以用于:
当接收到终端界面发送的同步请求时,读取所述同步请求中的待同步数据表名以及目标数据库名;
查询与所述待同步数据表名所对应数据表的表属性,并调用预设连接串,将所述目标数据库名输入到预设连接串中,生成同步连接信息;
获取预设同步基础代码,将所述待同步数据表名、所述表属性以及所述同步连接信息添加到所述预设同步基础代码中,生成同步脚本。
本实施例的同步脚本生成方法,当接收到终端界面发送的同步请求时,读取所述同步请求中的待同步数据表名以及目标数据库名;查询与所述待同步数据表名所对应数据表的表属性,并调用预设连接串,将所述目标数据库名输入到预设连接串中,生成同步连接信息;获取预设同步基础代码,将所述待同步数据表名、所述表属性以及所述同步连接信息添加到所述预设同步基础代码中,生成同步脚本。本方案设置有自动生成同步脚本机制,当有同步需求时,发送同步请求,此同步请求中携带有表征所需要进行同步操作数据表的待同步数据表名和表征所需要同步到数据库的目标数据库名;根据待同步数据表名可查询到此需要进行同步操作数据表所具有的表属性,并将目标数据库名传输到预设连接串中生成同步连接信息,以与所需要同步到的数据库建立连接;同时获取用于实现同步的预设同步基础代码,将待同步数据表名、表属性和同步连接信息添加至预设同步基础代码中,即可生成代码,实现将与待同步数据表名对应数据表中的数据同步到与目标数据库名对应的数据库中;避免开发人员编写代码,提高同步脚本的生成效率。
附图说明
图1是本发明的同步脚本生成方法第一实施例的流程示意图;
图2是本发明的同步脚本生成方法第二实施例的流程示意图;
图3是本发明的同步脚本生成方法第三实施例的流程示意图;
图4是本发明的同步脚本生成装置第一实施例的功能模块示意图;
图5是本发明实施例方法涉及的硬件运行环境的设备结构示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明提供一种同步脚本生成方法。
请参照图1,图1为本发明同步脚本生成方法第一实施例的流程示意图。在本实施例中,所述同步脚本生成方法包括:
步骤S10,当接收到终端界面发送的同步请求时,读取所述同步请求中的待同步数据表名以及目标数据库名;
本发明的同步脚本生成方法应用于终端后台的控制中心,适用于生成用于将数据在多个数据库之间进行同步的同步脚本。其中终端可以是移动电脑、平板电脑等具有显示装置和输入装置的设备,显示装置和输入装置可以是一体化设计,如触摸屏。为了适用不同的数据管理场景,终端后台中设置有不同类型的数据库,如hive和Oracle。其中hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表;而Oracle为分布式数据库,具有分布式处理功能。两者所具有的处理能力和处理速度不一样,一些数据的处理依赖于hive,而另一些数据的处理依赖于Oracle。对于一些场景需要将存在于某一数据库中的数据同步到另一数据库中,如将存在于Oracle中的数据同步到hive中,以在hive中对此同步的数据进行处理;此同步操作可通过同步脚本实现,同步脚本则需要在进行同步操作之前生成。具体地,终端显示装置用于显示终端界面,终端界面上预先设置有用于触发生成同步脚本的同步请求虚拟按键;当用户有生成同步脚本的需求时,点击此虚拟按键,将此点击操作作为发送同步请求到终端后台的触发操作。
可理解地,数据在数据库中以数据表的形式存在,即数据库中将数据存储在数据表中;在对数据同步时,实际上是将某一数据表中的数据同步到另一数据库中。从而在进行同步操作之前应该明确需要进行同步操作的数据所在的数据表,以及需要将此数据同步到的数据库,此所在的数据表以及同步到的数据库由用户确定,即用户确定将哪个数据表同步到哪个数据库。相应的在终端界面中设置有输入所需要同步的数据表以及同步到数据库的输入框,此输入框可以与同步请求虚拟按键在同一界面,也可以在不同界面。当两者在同一界面时,用户先输入所需要同步的数据表名称以及所需要同步到的数据库名称,再点击虚拟按键,以对同步请求进行触发。当两者不在同一界面时,用户先点击同步请求虚拟按键,终端后台检测到对此虚拟按键的点击操作时,控制终端界面跳转到输入框所在的输入界面;输入界面中还设置有确定虚拟按键,用户在输入框中输入所需要同步的数据表名称以及所需要同步到的数据库名称后,点击确定虚拟按键对同步请求进行触发。当接收到此同步请求时,读取其中所携带的所需要同步数据表名称,以及所需同步到的数据库名称;并将所需要同步数据表名称作为待同步数据表名,而将所需要同步到的数据库名称作为目标数据库名;以便于将具有待同步数据表名的数据表同步到具有目标数据库名的数据库。
步骤S20,查询与所述待同步数据表名所对应数据表的表属性,并调用预设连接串,将所述目标数据库名输入到预设连接串中,生成同步连接信息;
可理解地,不同的数据表中所存储数据的内容不一样,如员工信息表所存储的数据用于表征员工的信息,而企业利润表所存储的数据用于表征企业的利润。对于不同的表所同步的数据不相同,具体的可通过表属性确定,此表属性为用于表征数据表中所需要同步的具体内容,如员工信息表中的员工姓名、性别、年龄等。通过待同步数据表名可确定具有此待同步数据表名的数据表中所存储的内容,即确定其表属性。具体地,当接收到待同步数据表名时,根据此待同步数据表名确定对应的数据表,如员工信息表;进而对此数据表中的表属性进行查询,查询可通过对所需要同步的数据表进行打开操作,再读取其中的表头部分;此表头部分为预先在数据表中所定义的单元格,如将数据表中第一行单元格定义为表头部分;以通过表头部分单元格的内容表征与表头部分单元格在同一行或同一列单元格中内容的属性,如表头部分单元格的内容为“年龄”,则与此“年龄”单元格在同一行或同一列单元格中的内容属性为年龄。对于不同类型的数据表所具有的表头部分内容不相同,将读取的表头部分内容作为查询操作的查询结果,此查询结果即为数据表中所需要同步的内容,即表属性。此外考虑到对于某一所需要同步的数据表,其中某一类型的数据不需要同步,如员工信息表中的性别信息不需要同步,而需要同步其中的员工姓名和年龄;对于此可在终端界面设置筛选选项,用户选择其需要同步的信息,并将所选择的信息以标签的形式添加到待同步数据表名中,以使在接收到同步请求时,从其中读取对应的待同步数据表名及其中所携带的标签,进而根据标签确定所需要同步的信息。此外为了对不同信息内容进行区分,针对不同信息设置不同的标签。
进一步地,因所需要同步的数据表所在的数据库与其所需要同步到的数据库分属于不同的数据库,为了将具有待同步数据表名的数据表同步到具有目标数据库名的数据库中,需要建立与目标数据库名的数据库之间的连接。具体地,可通过预设连接串建立连接,此预设连接串为预先设置用于建立数据库之间连接;将所需要连接的数据库名称添加到此预设连接串中,以表明与此所添加的数据库名称建立连接。本实施例对此预设连接串进行调用,并将目标数据库名输入到其中,生成同步连接信息,以在同步操作时与具有目标数据库名的数据库建立连接,将需要同步的数据表同步到具有目标数据库名的数据库中。
步骤S30,获取预设同步基础代码,将所述待同步数据表名、所述表属性以及所述同步连接信息添加到所述预设同步基础代码中,生成同步脚本。
更进一步地,待同步数据表名和表属性用于确定将哪个数据表中的哪些内容进行同步,具体的同步操作由开发人员预先编制的代码确定。对于不同的数据表,虽然其中所存储的内容不一样,但是同步操作的步骤都是一样的,都是通过代码读取需要同步的内容传输到需要同步的数据库中。将此针对同步操作所通用的代码作为预设同步基础代码,此预设同步基础代码由开发人员预先编制,并传输到终端后台的存储单元存储。在有同步需求,并生成同步连接信息后,从存储单元中获取此预设同步基础代码。预设同步基础代码中预先设置有放置待同步数据表名、表属性以及同步连接信息的位置;在获取预设同步基础代码后,将待同步数据表名、表属性以及同步连接信息添加到其中对应的位置处,即可生成同步脚本。具体地添加步骤包括:
步骤S31,获取预设同步基础代码,并通过扫描检测确定预设同步基础代码中第一标识符、第二标识符和第三标识符的所在位置;
预设同步基础代码中所需要添加待同步数据表名、表属性以及同步连接信息的位置设置有标识符,为了对三者进行区分,将需要添加待同步数据表的位置设置第一标识符,需要添加表属性的位置设置第二标识符,需要添加同步连接信息的位置设置第三标识符。在获取预设同步基础代码后,对其进行扫描检测,确定其中第一标识符、第二标识符和第三标识符所在的位置,以根据各个位置对待同步数据表名、表属性以及同步连接信息进行添加。
步骤S32,将所述待同步数据表名、所述表属性以及所述同步连接信息分别添加到所述第一标识符、第二标识符以及第三标识符所在位置处。
为了分别将待同步数据表名、表属性和同步连接信息添加到预设同步基础代码中的对应位置,对待同步数据表名、表属性以及同步连接信息也分别设置第一标识符、第二标识符和第三标识符,以根据各个标识符的一致性进行添加。具体地,在确定预设同步基础代码中第一标识符所在位置后,将同样具有第一标识符的待同步数据表名添加到此位置中;而在确定预设同步基础代码中第二标识符所在位置后,将同样具有第二标识符的表属性添加到此位置中;在确定预设同步基础代码中第三标识符所在位置后,将同样具有第三标识符的同步连接信息添加到此位置中;实现将待同步数据表名、表属性以及同步连接信息分别添加到预设同步基础代码中的第一标识符、第二标识符以及第三标识符所在位置处,以生成同步代码。
本实施例的同步脚本生成方法,当接收到终端界面发送的同步请求时,读取所述同步请求中的待同步数据表名以及目标数据库名;查询与所述待同步数据表名所对应数据表的表属性,并调用预设连接串,将所述目标数据库名输入到预设连接串中,生成同步连接信息;获取预设同步基础代码,将所述待同步数据表名、所述表属性以及所述同步连接信息添加到所述预设同步基础代码中,生成同步脚本。本方案设置有自动生成同步脚本机制,当有同步需求时,发送同步请求,此同步请求中携带有表征所需要进行同步操作数据表的待同步数据表名和表征所需要同步到数据库的目标数据库名;根据待同步数据表名可查询到此需要进行同步操作数据表所具有的表属性,并将目标数据库名传输到预设连接串中生成同步连接信息,以与所需要同步到的数据库建立连接;同时获取用于实现同步的预设同步基础代码,将待同步数据表名、表属性和同步连接信息添加至预设同步基础代码中,即可生成代码,实现将与待同步数据表名对应数据表中的数据同步到与目标数据库名对应的数据库中;避免开发人员编写代码,提高同步脚本的生成效率。
进一步地,请参照图2,在本发明同步脚本生成方法第一实施例的基础上,提出本发明同步脚本生成方法第二实施例,在第二实施例中,所述生成同步脚本的步骤之后包括:
步骤S40,控制所述同步脚本运行,生成运行结果,并判断所述运行结果是否为运行成功;
可理解地,在生成同步脚本之后,为了确保所生成同步脚本的正确性,需要对此生成同步脚本进行调试。考虑到对于正确的同步脚本包括可正常运行和可实现其功能两个部分,从而在调试时控制同步脚本运行,判断其是否可正常运行,且运行是否能实现其功能。将同步脚本能否正常运行,以及运行能否实现其功能生成运行结果;其中将能正常运行且运行能实现其功能生成运行成功的运行结果;而将不能正常运行,或能正常运行但不能实现其功能生成运行失败的运行结果;以根据运行结果中能否正常运行,以及运行能否实现其功能的状态判断运行是否成功。
步骤S50,若所述运行结果为运行成功,则输出同步脚本运行成功的提示信息;
当根据运行结果中能否正常运行,以及运行能否实现其功能的状态判断出运行成功时,即同步脚本能正常运行,且运行能实现其功能,则说明生成的同步脚本可实现将所需要同步的数据表同步到目标数据库名对应的数据库中,向终端界面输出同步脚本运行成功的提示信息,以便用户使用此同步脚本进行同步操作。
步骤S60,若所述运行结果为运行失败,则调用预设检测代码对所述同步脚本进行检测,生成检测结果并输出。
而当根据运行结果中能否正常运行,以及运行能否实现其功能的状态判断出运行失败时,即同步脚本不能正常运行,或者运行不能实现其功能,则说明所生成的同步脚本不可实现将所需要同步的数据表同步到目标数据库名对应的数据库中,向终端界面输出同步脚本运行失败的提示信息,以便用户根据提示信息对同步脚本进行修改。此外为了方便用户修改,本实施例设置有预设检测代码对引起失败的原因进行检测的机制;当判定出运行结果为运行失败时,调用预设检测代码对同步脚步进行遍历扫描,以检测同步脚本中引起运行失败的原因,对所检测到引起失败的原因生成检测结果并输出,以便于用户根据检测结果中的原因对同步脚本进行修改。
进一步地,在本发明同步脚本生成方法第二实施例的基础上,提出本发明同步脚本生成方法第三实施例,在第三实施例中,所述生成检测结果并输出的步骤之后包括:
步骤S60-1,接收基于所述检测结果所发送的修改指令,并读取所述修改指令中所携带的修改位置和修改内容;
进一步地,在对引起失败的原因生成检测结果并输出到终端界面后,用户可对此检测结果进行查看,并根据检测结果中引起同步脚本运行失败的原因对同步脚本进行修改操作。其中修改操作包括所需要修改的位置以及修改内容,将此修改操作作为修改指令,当接收到基于检测结果所发送的修改指令时,读取其中所携带的修改位置和修改内容,以将修改位置中所具有的内容修改为修改内容。如当检测到同步脚本中第4行的变量a因命名不正确,而引起运行失败,将此第4行以及a作为检测结果输出;从而基于此检测结果所发送修改指令中携带的修改位置为第4行,修改内容为a修改为b,以将第4行中的变量a的命令修改为b。
步骤S60-2,根据所述修改位置确定同步脚本中的目标修改位置,并将所述目标修改位置中的内容替换为修改内容。
更进一步地,在读取修改位置和修改指令后,根据修改位置可确定同步脚本中的目标修改位置,如上述与修改位置第4行所对应的目标修改位置为同步脚本中的第4行,将同步脚本第4行中原有的内容替换为修改内容,即将原有内容a替换为修改内容b,实现对同步脚本的修改,以确保同步脚本的运行成功。
进一步地,请参照图3,在本发明同步脚本生成方法第一、第二或第三实施例的基础上,提出本发明同步脚本生成方法第四实施例,在第四实施例中,所述生成同步脚本的步骤之后包括:
步骤S70,接收终端界面发送的调整代码,并控制所述调整代码运行对所述同步脚本进行检测,以确定所述同步脚本中是否存在与所述调整代码对应的目标调整参数;
可理解地,可能所生成的同步脚本并不能满足用户需求,而需要对其进行调整。考虑到所需要调整的参数可能较大,为了提高调整效率而由开发人员编写调整代码,并将所编写的代码基于终端界面传输到终端后台,以通过调整代码对同步脚本中所需要调整的内容进行调整。具体地,将同步脚本中不能满足用户需求,需要调整的内容编写到调整代码中,当终端后台接收到调整代码时,控制调整代码运行,以检测同步脚本中是否存在调整代码中所需要调整的内容。将此所需要调整的内容作为目标调整参数,检测时逐行读取同步脚本,确定其中是否存在此与调整代码对应的目标调整参数。
步骤S80,若所述同步脚本中存在与所述调整代码对应的目标调整参数,读取所述调整代码中与所述目标调整参数对应的目标调整内容,并将所述同步脚本中与目标调整参数对应的待调整内容替换为目标调整内容。
当检测出同步脚本中存在此与调整代码对应的目标调整参数时,说明同步脚本中此目标调整参数需要调整,具体调整的内容由调整代码确定。将调整的内容作为目标调整内容编写到调整代码中,与目标调整参数对应;为了确保两者的对应性,可对两者设置同样的标识符。当同步脚本中存在目标调整参数需要调整时,读取调整代码中与此目标调整参数对应的目标调整内容,将同步脚本中目标调整参数对应的待调整内容,即其原有内容,替换为此目标调整内容,实现对同步脚本的调整。如设置调整代码中所需要调整的目标调整参数为w,而与其对应的目标调整内容为Q,通过调整代码检测到同步脚本中某一位置存在目标调整参数w,则根据w中所携带的标识符确定与其对应的目标调整内容Q,而将同步脚本中与w对应的原有内容替换为此目标调整内容Q。实现通过调整代码对同步脚本进行调整,避免开发人员逐行检测同步脚本,需要花费较多时间,提高调整效率。
进一步地,在本发明同步脚本生成方法另一实施例中,所述生成同步脚本的步骤之后包括:
步骤30-1,读取所述同步连接信息中的目标数据库名以及预设连接串,并通过预设连接串建立与目标数据库名对应数据库的通信连接;
进一步地,在生成用于将数据同步到不同数据库的同步脚本后,即可对所需要同步的数据表进行同步。具体地,先读取同步脚本中的同步连接信息,以确定所需要同步到的目标数据库名;因同步连接信息中携带有特定标识符,从而可根据此特定标识符确定同步脚本中的同步连接信息而进行读取。而同步连接信息由目标数据库名和预设连接串生成,从而进一步读取同步连接信息中的目标数据库名以及预设连接串。根据目标数据库名确定所需要同步到的数据库,其中与目标数据库名所对应的数据库即为所需要同步到的数据库,通过预设连接串与此目标数据库名所对应的数据库建立通信连接,以便进行同步操作。
步骤30-2,基于所述通信连接将与所述待同步数据表名对应的数据表同步到与所述目标数据库名对应的数据库中。
更进一步地,在建立与目标数据库名对应数据库的通信连接后,则可基于此通信连接将所需要同步的数据表同步到目标数据库名对应的数据库中,即对与待同步数据表名对应的数据表进行同步操作。同步时先在与目标数据库名对应数据库中建立与待同步数据表名一致的新建数据表,将与待同步数据表名对应的数据表作为原数据表,再对新建数据表设置与原数据表对应的表属性,并根据表属性将原数据表中所需要同步的数据同步到新建数据表中。如原数据表中的表属性包括性别和年龄,相应的在新建数据表中设置此两项,读取原数据表中与性别和年龄对应的数据,并将此读取的数据相应同步到新建数据表的此两项中,实现将待同步数据表名对应的数据表同步到与目标数据库名对应的数据库中。
此外,请参照图4,本发明提供一种同步脚本生成装置,在本发明同步脚本生成装置第一实施例中,所述同步脚本生成装置包括:
读取模块10,用于当接收到终端界面发送的同步请求时,读取所述同步请求中的待同步数据表名以及目标数据库名;
查询模块20,用于查询与所述待同步数据表名所对应数据表的表属性,并调用预设连接串,将所述目标数据库名输入到预设连接串中,生成同步连接信息;
生成模块30,用于获取预设同步基础代码,将所述待同步数据表名、所述表属性以及所述同步连接信息添加到所述预设同步基础代码中,生成同步脚本。
本实施例的同步脚本生成装置,当接收到终端界面发送的同步请求时,读取模块10读取所述同步请求中的待同步数据表名以及目标数据库名;查询模块20查询与所述待同步数据表名所对应数据表的表属性,并调用预设连接串,将所述目标数据库名输入到预设连接串中,生成同步连接信息;生成模块30获取预设同步基础代码,将所述待同步数据表名、所述表属性以及所述同步连接信息添加到所述预设同步基础代码中,生成同步脚本。本方案设置有自动生成同步脚本机制,当有同步需求时,发送同步请求,此同步请求中携带有表征所需要进行同步操作数据表的待同步数据表名和表征所需要同步到数据库的目标数据库名;根据待同步数据表名可查询到此需要进行同步操作数据表所具有的表属性,并将目标数据库名传输到预设连接串中生成同步连接信息,以与所需要同步到的数据库建立连接;同时获取用于实现同步的预设同步基础代码,将待同步数据表名、表属性和同步连接信息添加至预设同步基础代码中,即可生成代码,实现将与待同步数据表名对应数据表中的数据同步到与目标数据库名对应的数据库中;避免开发人员编写代码,提高同步脚本的生成效率。
进一步地,在本发明同步脚本生成装置另一实施例中,所述同步脚本生成装置还包括:
判断模块,用于控制所述同步脚本运行,生成运行结果,并判断所述运行结果是否为运行成功;
输出模块,用于若所述运行结果为运行成功,则输出同步脚本运行成功的提示信息;
调用模块,用于若所述运行结果为运行失败,则调用预设检测代码对所述同步脚本进行检测,生成检测结果并输出。
进一步地,在本发明同步脚本生成装置另一实施例中,所述同步脚本生成装置还包括:
接收模块,用于接收基于所述检测结果所发送的修改指令,并读取所述修改指令中所携带的修改位置和修改内容;
确定模块,用于根据所述修改位置确定同步脚本中的目标修改位置,并将所述目标修改位置中的内容替换为修改内容。
进一步地,在本发明同步脚本生成装置另一实施例中,所述同步脚本生成装置还包括:
控制模块,用于接收终端界面发送的调整代码,并控制所述调整代码运行对所述同步脚本进行检测,以确定所述同步脚本中是否存在与所述调整代码对应的目标调整参数;
替换模块,用于若所述同步脚本中存在与所述调整代码对应的目标调整参数,读取所述调整代码中与所述目标调整参数对应的目标调整内容,并将所述同步脚本中与目标调整参数对应的待调整内容替换为目标调整内容。
进一步地,在本发明同步脚本生成装置另一实施例中,所述生成模块包括:
获取单元,用于获取预设同步基础代码,并通过扫描检测确定预设同步基础代码中第一标识符、第二标识符和第三标识符的所在位置;
添加单元,用于将所述待同步数据表名、所述表属性以及所述同步连接信息分别添加到所述第一标识符、第二标识符以及第三标识符所在位置处。
进一步地,在本发明同步脚本生成装置另一实施例中,所述同步脚本生成装置还包括:
建立模块,用于读取所述同步连接信息中的目标数据库名以及预设连接串,并通过预设连接串建立与目标数据库名对应数据库的通信连接;
同步模块,用于基于所述通信连接将所述同步脚本同步到与所述目标数据库名对应的数据库中。
其中,上述同步脚本生成装置的各虚拟功能模块存储于图5所示同步脚本生成设备的存储器1005中,处理器1001执行同步脚本生成程序时,实现图4所示实施例中各个模块的功能。
参照图5,图5是本发明实施例方法涉及的硬件运行环境的设备结构示意图。
本发明实施例同步脚本生成设备可以是PC(personal computer,个人计算机),也可以是智能手机、平板电脑、电子书阅读器、便携计算机等终端设备。
如图5所示,该同步脚本生成设备可以包括:处理器1001,例如CPU(CentralProcessing Unit,中央处理器),存储器1005,通信总线1002。其中,通信总线1002用于实现处理器1001和存储器1005之间的连接通信。存储器1005可以是高速RAM(random accessmemory,随机存取存储器),也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
可选地,该同步脚本生成设备还可以包括用户接口、网络接口、摄像头、RF(RadioFrequency,射频)电路,传感器、音频电路、WiFi(Wireless Fidelity,无线宽带)模块等等。用户接口可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口还可以包括标准的有线接口、无线接口。网络接口可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。
本领域技术人员可以理解,图5中示出的同步脚本生成设备结构并不构成对同步脚本生成设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图5所示,作为一种计算机可读存储介质的存储器1005中可以包括操作***、网络通信模块以及同步脚本生成程序。操作***是管理和控制同步脚本生成设备硬件和软件资源的程序,支持同步脚本生成程序以及其它软件和/或程序的运行。网络通信模块用于实现存储器1005内部各组件之间的通信,以及与同步脚本生成设备中其它硬件和软件之间通信。
在图5所示的同步脚本生成设备中,处理器1001用于执行存储器1005中存储的同步脚本生成程序,实现上述同步脚本生成方法各实施例中的步骤。
本发明提供了一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者一个以上程序,所述一个或者一个以上程序还可被一个或者一个以上的处理器执行以用于实现上述同步脚本生成方法各实施例中的步骤。
还需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个计算机可读存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是在本发明的构思下,利用本发明说明书及附图内容所作的等效结构变换,或直接/间接运用在其他相关的技术领域均包括在本发明的专利保护范围内。
Claims (10)
1.一种同步脚本生成方法,其特征在于,所述同步脚本生成方法包括以下步骤:
当接收到终端界面发送的同步请求时,读取所述同步请求中的待同步数据表名以及目标数据库名;
查询与所述待同步数据表名所对应数据表的表属性,并调用预设连接串,将所述目标数据库名输入到预设连接串中,生成同步连接信息;
获取预设同步基础代码,将所述待同步数据表名、所述表属性以及所述同步连接信息添加到所述预设同步基础代码中,生成同步脚本。
2.如权利要求1所述的同步脚本生成方法,其特征在于,所述生成同步脚本的步骤之后包括:
控制所述同步脚本运行,生成运行结果,并判断所述运行结果是否为运行成功;
若所述运行结果为运行成功,则输出同步脚本运行成功的提示信息;
若所述运行结果为运行失败,则调用预设检测代码对所述同步脚本进行检测,生成检测结果并输出。
3.如权利要求2所述的同步脚本生成方法,其特征在于,所述生成检测结果并输出的步骤之后包括:
接收基于所述检测结果所发送的修改指令,并读取所述修改指令中所携带的修改位置和修改内容;
根据所述修改位置确定同步脚本中的目标修改位置,并将所述目标修改位置中的内容替换为修改内容。
4.如权利要求1所述的同步脚本生成方法,其特征在于,所述生成同步脚本的步骤之后包括:
接收终端界面发送的调整代码,并控制所述调整代码运行对所述同步脚本进行检测,以确定所述同步脚本中是否存在与所述调整代码对应的目标调整参数;
若所述同步脚本中存在与所述调整代码对应的目标调整参数,读取所述调整代码中与所述目标调整参数对应的目标调整内容,并将所述同步脚本中与目标调整参数对应的待调整内容替换为目标调整内容。
5.如权利要求1所述的同步脚本生成方法,其特征在于,所述获取预设同步基础代码,将所述待同步数据表名、所述表属性以及所述同步连接信息添加到所述预设同步基础代码中的步骤包括:
获取预设同步基础代码,并通过扫描检测确定预设同步基础代码中第一标识符、第二标识符和第三标识符的所在位置;
将所述待同步数据表名、所述表属性以及所述同步连接信息分别添加到所述第一标识符、第二标识符以及第三标识符所在位置处。
6.如权利要求1-5任一项所述的同步脚本生成方法,其特征在于,所述生成同步脚本的步骤之后包括:
读取所述同步连接信息中的目标数据库名以及预设连接串,并通过预设连接串建立与目标数据库名对应数据库的通信连接;
基于所述通信连接将所述同步脚本同步到与所述目标数据库名对应的数据库中。
7.一种同步脚本生成装置,其特征在于,所述同步脚本生成装置包括:
读取模块,用于当接收到终端界面发送的同步请求时,读取所述同步请求中的待同步数据表名以及目标数据库名;
查询模块,用于查询与所述待同步数据表名所对应数据表的表属性,并调用预设连接串,将所述目标数据库名输入到预设连接串中,生成同步连接信息;
生成模块,用于获取预设同步基础代码,将所述待同步数据表名、所述表属性以及所述同步连接信息添加到所述预设同步基础代码中,生成同步脚本。
8.如权利要求7所述的同步脚本生成装置,其特征在于,所述同步脚本生成装置还包括:
判断模块,用于控制所述同步脚本运行,生成运行结果,并判断所述运行结果是否为运行成功;
输出模块,用于若所述运行结果为运行成功,则输出同步脚本运行成功的提示信息;
调用模块,用于若所述运行结果为运行失败,则调用预设检测代码对所述同步脚本进行检测,生成检测结果并输出。
9.一种同步脚本生成设备,其特征在于,所述同步脚本生成设备包括:存储器、处理器、通信总线以及存储在所述存储器上的同步脚本生成程序;
所述通信总线用于实现处理器和存储器之间的连接通信;
所述处理器用于执行所述同步脚本生成程序,以实现如权利要求1-6中任一项所述的同步脚本生成方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有同步脚本生成程序,所述同步脚本生成程序被处理器执行时实现如权利要求1-6中任一项所述的同步脚本生成方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810506375.3A CN110019533A (zh) | 2018-05-24 | 2018-05-24 | 同步脚本生成方法、装置、设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810506375.3A CN110019533A (zh) | 2018-05-24 | 2018-05-24 | 同步脚本生成方法、装置、设备及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110019533A true CN110019533A (zh) | 2019-07-16 |
Family
ID=67188295
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810506375.3A Pending CN110019533A (zh) | 2018-05-24 | 2018-05-24 | 同步脚本生成方法、装置、设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110019533A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111177247A (zh) * | 2019-12-30 | 2020-05-19 | 腾讯科技(深圳)有限公司 | 一种数据转换的方法、装置及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104317843A (zh) * | 2014-10-11 | 2015-01-28 | 上海瀚之友信息技术服务有限公司 | 一种数据同步etl*** |
CN106713487A (zh) * | 2017-01-16 | 2017-05-24 | 腾讯科技(深圳)有限公司 | 数据的同步方法和装置 |
CN107688664A (zh) * | 2017-09-25 | 2018-02-13 | 平安科技(深圳)有限公司 | 图表生成方法、装置、计算机设备和存储介质 |
-
2018
- 2018-05-24 CN CN201810506375.3A patent/CN110019533A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104317843A (zh) * | 2014-10-11 | 2015-01-28 | 上海瀚之友信息技术服务有限公司 | 一种数据同步etl*** |
CN106713487A (zh) * | 2017-01-16 | 2017-05-24 | 腾讯科技(深圳)有限公司 | 数据的同步方法和装置 |
CN107688664A (zh) * | 2017-09-25 | 2018-02-13 | 平安科技(深圳)有限公司 | 图表生成方法、装置、计算机设备和存储介质 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111177247A (zh) * | 2019-12-30 | 2020-05-19 | 腾讯科技(深圳)有限公司 | 一种数据转换的方法、装置及存储介质 |
CN111177247B (zh) * | 2019-12-30 | 2023-10-20 | 腾讯科技(深圳)有限公司 | 一种数据转换的方法、装置及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102167879B1 (ko) | 테스트 방법, 시스템, 기기 및 판독 가능 저장매체 | |
CN109542791B (zh) | 一种基于容器技术的程序大规模并发评测方法 | |
CN107894952A (zh) | 接口测试用例的生成方法、装置、设备及可读存储介质 | |
CN109146081B (zh) | 一种用于机器学习平台中创建模型项目的方法及装置 | |
CN107341109B (zh) | 一种测试数据的生成方法和*** | |
CN110493812B (zh) | 配网测试的处理方法、装置、***、处理器及主控设备 | |
CN108170809A (zh) | 建表脚本生成方法、装置、设备及计算机可读存储介质 | |
CN111368520A (zh) | 一种电子表格的编辑方法及设备 | |
CN110109817A (zh) | 接口自动化测试方法、装置、设备及存储介质 | |
CN107632827B (zh) | 应用的安装包的生成方法及装置 | |
CN105487859B (zh) | 一种基于模板的大数据组件web部署方法 | |
CN107807841B (zh) | 服务器模拟方法、装置、设备及可读存储介质 | |
CN104978172A (zh) | Sdn应用集成管理和控制的方法、***及设备 | |
CN110489324A (zh) | 测试页面跳转的方法、装置、存储介质、电子装置 | |
CN105786695A (zh) | 数据测试方法及*** | |
CN110647471A (zh) | 接口测试用例生成方法、电子装置及存储介质 | |
CN103294805A (zh) | 数据仓库个性化维度表的创建方法和装置 | |
CN110225087A (zh) | 基于全局负载均衡的云存取方法、装置及存储介质 | |
CN113220563A (zh) | 一种测试用例生成方法、***、存储介质及计算机设备 | |
CN106155905B (zh) | 应用环境切换方法以及装置 | |
CN110515924A (zh) | 数据库操作逻辑校验方法、装置、设备及可读存储介质 | |
CN107908679A (zh) | 脚本语句转换方法、装置及计算机可读存储介质 | |
CN110737458A (zh) | 一种代码更新方法和相关装置 | |
CN110109880A (zh) | 影像文档归集方法、装置、设备及计算机可读存储介质 | |
CN108717357A (zh) | 页面展示代码转换方法、装置、设备及计算机存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |