一种基于数据模型的数据备份方法和装置制造方法及图纸

技术编号:9865823 阅读:132 留言:0更新日期:2014-04-03 00:58
本申请提供了一种基于数据模型的数据备份方法和装置,所述方法包括:依据当前数据库中待备份的数据创建数据模型的标识及对应的当前数据模型;接收所述当前数据模型的标识;依据所述当前数据模型的标识解析对应的当前数据模型,以得到所述当前数据模型的当前结构化查询语言SQL;触发所述当前SQL在所述当前数据库中进行执行;将执行所述当前SQL的执行结果作为与所述待备份的数据对应的数据备份文件。采用本申请实施例公开的数据备份方法和装置,能够解决现有技术的数据备份过程中存在的待备份数据的不准确和不完整的问题,保证数据的准确性和完整性。

【技术实现步骤摘要】
一种基于数据模型的数据备份方法和装置
本申请涉及数据库领域,特别涉及一种基于数据模型的数据备份方法和装置。
技术介绍
数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,数据库有很多种类型,从最简单的存储有各种数据的表格到能够进行海量数据存储的大型数据库系统,都在各个方面得到了广泛的应用。随着数据库业务的发展和采用数据库的系统复杂度的提高,数据库的备份就越来越常见。在复杂系统中,为了系统的可维护性和效率,经常会把属于一个实体(如用户信息、用户订单、用户账单、用户个性化配置等)的数据分别存储在数据库的不同表中。这些表中对应于独立实体的数据就称为数据模型。目前现有技术中,数据库中数据的备份主要通过数据库管理员(DBA)把相关数据库表中的数据导出,然后再全部导入到另一个数据库中。具体的,目前常见的当前数据库的数据备份及后续导入到另一个数据库的方式,依据应用场景的复杂情况分为如下两种:第一种是对于数据不需要做复杂转换处理的场景,此时从当前数据库中将待备份的数据先导出成SQL(StructuredQueryLanguage,结构化查询语言)文件,再在目标数据库表中执行SQL以导入备份的数据;另一种是需要对数据做复杂转换的场景,此时先从当前数据库中将数据导出成SQL文件,在数据服务平台上进行转换,得到新的SQL文件之后,再将新的SQL文件导入到目标数据库中执行以导入备份的数据。但是专利技术人在研究过程中发现,这个传统的备份及后续导入的过程会遇到各种问题:上述两种数据库备份的方案,都会使得待备份的数据容易被误操作而篡改,因为在备份及后续导入的过程中可能会进行数据转换,而如果用数据库提供的操作方法或者第三方组件实现,难免会存在数据误操作的问题,导致备份的数据出错;并且,数据备份操作很复杂,通常要对待备份的数据所存的大量数据库表分别做查询操作,而且还需要操作人员根据数据模型的定义,编写不同的查询SQL,这个过程不仅复杂,而且容易出现多数据或者少数据的情况,影响待备份的数据的正确性;进一步的,现有技术中的数据转换的过程也比较复杂,而如果要对数据进行复杂的操作,特别是涉及到数据模型内部的一些关联逻辑,数据库是处理不了的,必须借助第三方的数据处理平台来进行,这样的话数据备份及后续导入过程不仅牵涉了多个操作方,更容易引入数据的不准确和不完整。总之,目前需要本领域技术人员迫切解决的一个技术问题就是:如何能够创新的提出一种基于数据模型的数据备份方法,以解决现有技术的数据备份过程中存在的待备份数据的不准确和不完整的问题。
技术实现思路
本申请所要解决的技术问题是提供一种基于数据模型的数据备份方法,用以解决现有技术的数据备份过程中存在的待备份数据的不准确和不完整的问题。本申请还提供了一种基于数据模型的数据备份装置,用以保证上述方法在实际中的实现及应用。为了解决上述问题,本申请公开了一种基于数据模型的数据备份方法,包括:依据当前数据库中待备份的数据创建数据模型的标识及对应的当前数据模型;该方法包括:接收所述当前数据模型的标识;依据所述当前数据模型的标识解析对应的当前数据模型,以得到所述当前数据模型的当前结构化查询语言SQL;触发所述当前SQL在所述当前数据库中进行执行;将执行所述当前SQL的执行结果作为与所述待备份的数据对应的数据备份文件。可选的,所述依据当前数据库中待备份的数据创建数据模型的标识及对应的当前数据模型,具体包括:接收用户输入的待备份的数据的关键词;在所述当前数据库中查找与所述关键词相关联的所有关联数据表;判断所述关联数据表是否存在外表引用,如果是,则将外表导入至初始数据模型中;将所述关联数据表导入至所述初始数据模型中,以建立所述当前数据模型。可选的,所述依据所述当前数据模型的标识解析对应的当前数据模型,具体包括:依据所述当前数据模型的标识获取对应的当前数据模型;判断所述当前数据模型是否引用其他数据模型,如果是,则获取所述其他数据模型和当前数据模型中的所有关联数据表作为目标数据表;如果否,则获取所述当前数据模型中的所有关联数据表作为目标数据表;将所述目标数据表生成与所述目标数据表对应的第一SQL;判断所述目标数据表是否引用外表,如果是,则将所述外表生成与所述外表对应的第二SQL;将所述第二SQL,或者所述第一SQL和第二SQL作为所述当前数据模型的当前SQL。可选的,所述将执行所述当前SQL的执行结果作为与所述待备份的数据对应的数据备份文件之后,还包括:依据当前应用的不同的业务场景对所述数据备份文件中的数据进行格式转换。可选的,所述将执行所述当前SQL的执行结果作为与所述待备份的数据对应的数据备份文件之后,还包括:将所述数据备份文件按照目标数据库的数据格式导入至所述目标数据库。可选的,所述将所述数据备份文件按照目标数据库的数据格式导入至所述目标数据库,具体为:在同一个事务中将所述数据备份文件按照目标数据库的数据格式导入至所述目标数据库。本申请公开了一种基于数据模型的数据备份装置,包括:创建模块,用于依据当前数据库中待备份的数据创建数据模型的标识及对应的当前数据模型;接收模块,用于接收所述当前数据模型的标识;解析模块,用于依据所述当前数据模型的标识解析对应的当前数据模型,以得到所述当前数据模型的当前结构化查询语言SQL;执行SQL模块,用于触发所述当前SQL在所述当前数据库中进行执行;备份模块,用于将执行所述当前SQL的执行结果作为与所述待备份的数据对应的数据备份文件。可选的,所述创建模块具体包括:接收子模块,用于接收用户输入的待备份的数据的关键词;查找子模块,用于在所述当前数据库中查找与所述关键词相关联的所有关联数据表;第一判断子模块,用于判断所述关联数据表是否存在外表引用;第一导入子模块,用于在所述判断子模块的结果为是的情况下,将外表导入至初始数据模型中;第二导入子模块,用于将所述关联数据表导入至所述初始数据模型中,以建立所述当前数据模型。可选的,所述解析模块具体包括:第一获取子模块,用于依据所述当前数据模型的标识获取对应的当前数据模型;第二判断子模块,用于判断所述当前数据模型是否引用其他数据模型;第二获取子模块,用于在所述第二判断子模块的结果为是的情况下,获取所述其他数据模型和当前数据模型中的所有关联数据表作为目标数据表;第三获取子模块,用于在所述第二判断子模块的结果为的情况下,获取所述当前数据模型中的所有关联数据表作为目标数据表;第一生成子模块,用于将所述目标数据表生成与所述目标数据表对应的第一SQL;第三判断子模块,用于判断所述目标数据表是否引用外表;第二生成子模块,用于在所述第三判断子模块的结果为是的情况下,将所述外表生成与所述外表对应的第二SQL;确定子模块,用于将所述第二SQL,或者所述第一SQL和第二SQL作为所述当前数据模型的当前SQL。可选的,还包括:格式转换模块,用于依据当前应用的不同的业务场景对所述数据备份文件中的数据进行格式转换。可选的,还包括:导入模块,用于将所述数据备份文件按照目标数据库的数据格式导入至所述目标数据库。可选的,所述导入模块具体用于:在同一个事务中将所述数据备份文件按照目标数据库的数据格式导入至所述目标数据库。与现有技术相比,本申请包括以下优点:在本申请实本文档来自技高网
...
一种基于数据模型的数据备份方法和装置

【技术保护点】
一种基于数据模型的数据备份方法,其特征在于,依据当前数据库中待备份的数据创建数据模型的标识及对应的当前数据模型;该方法包括:接收所述当前数据模型的标识;依据所述当前数据模型的标识解析对应的当前数据模型,以得到所述当前数据模型的当前结构化查询语言SQL;触发所述当前SQL在所述当前数据库中进行执行;将执行所述当前SQL的执行结果作为与所述待备份的数据对应的数据备份文件。

【技术特征摘要】
1.一种基于数据模型的数据备份方法,其特征在于,依据当前数据库中待备份的数据创建数据模型的标识及对应的当前数据模型,包括:接收用户输入的待备份的数据的关键词;在所述当前数据库中查找与所述关键词相关联的所有关联数据表;判断所述关联数据表是否存在外表引用,如果是,则将外表导入至初始数据模型中,并将所述关联数据表导入至所述初始数据模型中,以建立所述当前数据模型;如果否,则将所述关联数据表导入至所述初始数据模型中以建立当前数据模型;该方法包括:接收所述当前数据模型的标识;依据所述当前数据模型的标识解析对应的当前数据模型,以得到所述当前数据模型的当前结构化查询语言SQL;触发所述当前SQL在所述当前数据库中进行执行;将执行所述当前SQL的执行结果作为与所述待备份的数据对应的数据备份文件。2.根据权利要求1所述的方法,其特征在于,所述依据所述当前数据模型的标识解析对应的当前数据模型,具体包括:依据所述当前数据模型的标识获取对应的当前数据模型;判断所述当前数据模型是否引用其他数据模型,如果是,则获取所述其他数据模型和当前数据模型中的所有关联数据表作为目标数据表;如果否,则获取所述当前数据模型中的所有关联数据表作为目标数据表;将所述目标数据表生成与所述目标数据表对应的第一SQL;判断所述目标数据表是否引用外表,如果是,则将所述目标数据表引用的外表生成与所述目标数据表引用的外表对应的第二SQL,并将所述第一SQL和第二SQL作为所述当前数据模型的当前SQL;如果否,则将所述第一SQL作为所述当前数据模型的当前SQL。3.根据权利要求1所述的方法,其特征在于,所述将执行所述当前SQL的执行结果作为与所述待备份的数据对应的数据备份文件之后,还包括:依据当前应用的不同的业务场景对所述数据备份文件中的数据进行格式转换。4.根据权利要求1所述的方法,其特征在于,所述将执行所述当前SQL的执行结果作为与所述待备份的数据对应的数据备份文件之后,还包括:将所述数据备份文件按照目标数据库的数据格式导入至所述目标数据库。5.根据权利要求4所述的方法,其特征在于,所述将所述数据备份文件按照目标数据库的数据格式导入至所述目标数据库,具体为:在同一个事务中将所述数据备份文件按照目标数据库的数据格式导入至所述目标数据库。6.一种基于数据模型的数据备份装置,其特征在于,该装置包括:创建模块,用于依据当前数据库中待备份的数据创建数据模型的标识及对应的当前数据模型;所述创建模...

【专利技术属性】
技术研发人员:骆桢轩
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:

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

1