表结构修改方法、装置、设备及计算机可读存储介质制造方法及图纸

技术编号:22308195 阅读:26 留言:0更新日期:2019-10-16 08:18
本发明专利技术公开了一种表结构修改方法、装置、设备及计算机可读存储介质。该方法包括:在接收到表结构修改指令时,获取所述表结构修改指令中携带的结构化查询语言SQL文件;对所述SQL文件进行解析处理,得到所述SQL文件中各数据库模式定义语言DDL语句的表名及对应的执行命令;根据所述各DDL语句的表名确定所述表结构修改指令对应的修改类型,并根据所述修改类型确定对应的修改策略;基于所述修改策略、所述表名和所述执行命令对所述DDL语句进行处理,得到处理后的DDL语句,并调用预设工具执行所述处理后的DDL语句,以修改对应的表结构。本发明专利技术能解决现有的表结构修改过程较复杂、DDL执行效率较低的问题。

Table structure modification method, device, equipment and computer readable storage medium

【技术实现步骤摘要】
表结构修改方法、装置、设备及计算机可读存储介质
本专利技术涉及金融科技(Fintech)
,尤其涉及一种表结构修改方法、装置、设备及计算机可读存储介质。
技术介绍
随着计算机技术的发展,越来越多的技术(大数据、分布式、区块链Blockchain、人工智能等)应用在金融领域,传统金融业正在逐步向金融科技(Fintech)转变,但由于金融行业的安全性、实时性要求,也对技术提出了更高的要求。随着互联网应用功能的频繁增加,常常会涉及到修改表结构的情况,如添加字段、修改字段属性等。目前一般是采用pt-online-schema-change(开源在线表结构变更工具)在线修改表结构。然而,该工具一次只能对一张表进行变更,如果一个SQL(StructuredQueryLanguage,结构化查询语言)文件中涉及到多个表的DDL(DataDefinitionLanguage,数据库模式定义语言)语句,则需要手工拆分出多个SQL文件,进而多次调用工具分别执行各SQL文件中的DDL语句,过程繁杂;此外,该工具对于同一个表的多条独立的DDL语句也需要分开执行,如果SQL文件中涉及同一个表的多个DDL语句,则需要多次调用工具分别执行各DDL语句,而每次调用工具都要重复拷贝数据,会损耗数据库性能,整个变更耗时也变长。因此,现有的表结构修改方法存在表结构修改过程较复杂、DDL执行效率较低的问题。
技术实现思路
本专利技术的主要目的在于提供一种表结构修改方法、装置、设备及计算机可读存储介质,旨在解决现有的表结构修改过程较复杂、DDL执行效率较低的问题。为实现上述目的,本专利技术提供一种表结构修改方法,所述表结构修改方法包括:在接收到表结构修改指令时,获取所述表结构修改指令中携带的结构化查询语言SQL文件;对所述SQL文件进行解析处理,得到所述SQL文件中各数据库模式定义语言DDL语句的表名及对应的执行命令;根据所述各DDL语句的表名确定所述表结构修改指令对应的修改类型,并根据所述修改类型确定对应的修改策略;基于所述修改策略、所述表名和所述执行命令对所述DDL语句进行处理,得到处理后的DDL语句,并调用预设工具执行所述处理后的DDL语句,以修改对应的表结构。可选地,所述对所述SQL文件进行解析处理,得到所述SQL文件中各数据库模式定义语言DDL语句的表名及对应的执行命令的步骤包括:采用预设编程语言对所述SQL文件中各DDL语句分别进行正则表达式匹配,得到各DDL语句中包含的对象元素,所述对象元素包括表名及对应的执行命令。可选地,所述根据所述各DDL语句的表名确定所述表结构修改指令对应的修改类型,并根据所述修改类型确定对应的修改策略的步骤包括:若所述各DDL语句的表名为全部不同,则确定所述表结构修改指令对应的修改类型为第一修改类型,并确定修改策略为第一修改策略;所述基于所述修改策略、所述表名和所述执行命令对所述DDL语句进行处理,得到处理后的DDL语句,并调用预设工具执行所述处理后的DDL语句,以修改对应的表结构的步骤包括:基于所述第一修改策略将所述表名和所述执行命令以键值对的形式生成对应的第一数据结构,并调用预设工具对所述第一数据结构进行循环迭代,以修改对应的表结构。可选地,所述根据所述各DDL语句的表名确定所述表结构修改指令对应的修改类型,并根据所述修改类型确定对应的修改策略的步骤包括:若所述各DDL语句的表名为全部相同,则确定所述表结构修改指令对应的修改类型为第二修改类型,并确定修改策略为第二修改策略;所述基于所述修改策略、所述表名和所述执行命令对所述DDL语句进行处理,得到处理后的DDL语句,并调用预设工具执行所述处理后的DDL语句,以修改对应的表结构的步骤包括:基于所述第二修改策略、所述表名和所述执行命令对所述DDL语句进行合并处理,得到合并后的DDL语句,并调用预设工具执行所述合并后的DDL语句,以修改对应的表结构。可选地,所述根据所述各DDL语句的表名确定所述表结构修改指令对应的修改类型,并根据所述修改类型确定对应的修改策略的步骤包括:若所述各DDL语句的表名为部分相同,则确定所述表结构修改指令对应的修改类型为第三修改类型,并确定修改策略为第三修改策略;所述基于所述修改策略、所述表名和所述执行命令对所述DDL语句进行处理,得到处理后的DDL语句,并调用预设工具执行所述处理后的DDL语句,以修改对应的表结构的步骤包括:基于所述第三修改策略对所述各DDL语句的表名中的相同表名所对应的执行命令进行合并处理,得到合并后的执行命令;将所述各DDL语句的表名中的不同表名及对应的执行命令、相同表名及所述合并后的执行命令以键值对的形式生成对应的第二数据结构,并调用预设工具对所述第二数据结构进行循环迭代,以修改对应的表结构。可选地,所述表结构修改方法还包括:在执行完成后,获取所述预设工具返回的输出内容,并提取所述输出内容中的目标数据,所述目标数据包括返回编码和返回信息;将所述返回编码和所述返回信息封装成预设格式的数据,并将封装后的目标数据发送至预设工作端。可选地,所述调用预设工具执行所述处理后的DDL语句,以修改对应的表结构的步骤之前,还包括:调用所述预设工具中的测试参数对所述处理后的DDL语句进行测试,并在测试完成后检测预设目录下是否存在测试通过的标识文件;若存在,则执行步骤:调用预设工具执行所述处理后的DDL语句,以修改对应的表结构。此外,为实现上述目的,本专利技术还提供一种表结构修改装置,所述表结构修改装置包括:文件获取模块,用于在接收到表结构修改指令时,获取所述表结构修改指令中携带的SQL文件;文件解析模块,用于对所述SQL文件进行解析处理,得到所述SQL文件中各DDL语句的表名及对应的执行命令;策略确定模块,用于根据所述各DDL语句的表名确定所述表结构修改指令对应的修改类型,并根据所述修改类型确定对应的修改策略;语句执行模块,用于基于所述修改策略、所述表名和所述执行命令对所述DDL语句进行处理,得到处理后的DDL语句,并调用预设工具执行所述处理后的DDL语句,以修改对应的表结构。此外,为实现上述目的,本专利技术还提供一种表结构修改设备,所述表结构修改设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的表结构修改程序,所述表结构修改程序被所述处理器执行时实现如上所述的表结构修改方法的步骤。此外,为实现上述目的,本专利技术还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有表结构修改程序,所述表结构修改程序被处理器执行时实现如上所述的表结构修改方法的步骤。本专利技术提供一种表结构修改方法、装置、设备及计算机可读存储介质,在接收到表结构修改指令时,获取该表结构修改指令中携带的SQL文件;对该SQL文件进行解析处理,以得到SQL文件中各DDL语句的表名及对应的执行命令;根据各DDL语句的表名确定该表结构修改指令对应的修改类型,并根据修改类型确定对应的修改策略,进而基于该修改策略、表名和执行命令对DDL语句进行处理,得到处理后的DDL语句,并调用预设工具执行处理后的DDL语句,以修改对应的表结构。通过上述方式,本专利技术可自动对SQL文件进行解析处理,进而针对各DDL语句的表名确定对应的修改策略,以基于修改策略自动对DDL语句进行本文档来自技高网...

【技术保护点】
1.一种表结构修改方法,其特征在于,所述表结构修改方法包括:在接收到表结构修改指令时,获取所述表结构修改指令中携带的结构化查询语言SQL文件;对所述SQL文件进行解析处理,得到所述SQL文件中各数据库模式定义语言DDL语句的表名及对应的执行命令;根据所述各DDL语句的表名确定所述表结构修改指令对应的修改类型,并根据所述修改类型确定对应的修改策略;基于所述修改策略、所述表名和所述执行命令对所述DDL语句进行处理,得到处理后的DDL语句,并调用预设工具执行所述处理后的DDL语句,以修改对应的表结构。

【技术特征摘要】
1.一种表结构修改方法,其特征在于,所述表结构修改方法包括:在接收到表结构修改指令时,获取所述表结构修改指令中携带的结构化查询语言SQL文件;对所述SQL文件进行解析处理,得到所述SQL文件中各数据库模式定义语言DDL语句的表名及对应的执行命令;根据所述各DDL语句的表名确定所述表结构修改指令对应的修改类型,并根据所述修改类型确定对应的修改策略;基于所述修改策略、所述表名和所述执行命令对所述DDL语句进行处理,得到处理后的DDL语句,并调用预设工具执行所述处理后的DDL语句,以修改对应的表结构。2.如权利要求1所述的表结构修改方法,其特征在于,所述对所述SQL文件进行解析处理,得到所述SQL文件中各数据库模式定义语言DDL语句的表名及对应的执行命令的步骤包括:采用预设编程语言对所述SQL文件中各DDL语句分别进行正则表达式匹配,得到各DDL语句中包含的对象元素,所述对象元素包括表名及对应的执行命令。3.如权利要求1所述的表结构修改方法,其特征在于,所述根据所述各DDL语句的表名确定所述表结构修改指令对应的修改类型,并根据所述修改类型确定对应的修改策略的步骤包括:若所述各DDL语句的表名为全部不同,则确定所述表结构修改指令对应的修改类型为第一修改类型,并确定修改策略为第一修改策略;所述基于所述修改策略、所述表名和所述执行命令对所述DDL语句进行处理,得到处理后的DDL语句,并调用预设工具执行所述处理后的DDL语句,以修改对应的表结构的步骤包括:基于所述第一修改策略将所述表名和所述执行命令以键值对的形式生成对应的第一数据结构,并调用预设工具对所述第一数据结构进行循环迭代,以修改对应的表结构。4.如权利要求1所述的表结构修改方法,其特征在于,所述根据所述各DDL语句的表名确定所述表结构修改指令对应的修改类型,并根据所述修改类型确定对应的修改策略的步骤包括:若所述各DDL语句的表名为全部相同,则确定所述表结构修改指令对应的修改类型为第二修改类型,并确定修改策略为第二修改策略;所述基于所述修改策略、所述表名和所述执行命令对所述DDL语句进行处理,得到处理后的DDL语句,并调用预设工具执行所述处理后的DDL语句,以修改对应的表结构的步骤包括:基于所述第二修改策略、所述表名和所述执行命令对所述DDL语句进行合并处理,得到合并后的DDL语句,并调用预设工具执行所述合并后的DDL语句,以修改对应的表结构。5.如权利要求1所述的表结构修改方法,其特征在于,所述根据所述各DDL语句的表名确定所述表结构修改指令对应的修改类型,并根据所述修改类型确定对应的修改...

【专利技术属性】
技术研发人员:黄蔚胡盼盼卢道和
申请(专利权)人:深圳前海微众银行股份有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1