CN103455589B - 产品工厂模式下的产品数据迁移方法、装置及系统 - Google Patents
产品工厂模式下的产品数据迁移方法、装置及系统 Download PDFInfo
- Publication number
- CN103455589B CN103455589B CN201310385031.9A CN201310385031A CN103455589B CN 103455589 B CN103455589 B CN 103455589B CN 201310385031 A CN201310385031 A CN 201310385031A CN 103455589 B CN103455589 B CN 103455589B
- Authority
- CN
- China
- Prior art keywords
- data
- business object
- product
- product data
- environment
- 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.)
- Active
Links
Abstract
本发明提供了一种产品工厂模式下的产品数据迁移方法、装置及系统,在该方法中首先确定源环境、目标环境和产品标识信息,获得与产品标识信息相关的业务对象集合,以业务对象集合中的各个业务对象为操作对象在源环境数据库中获得所有记录,然后再以业务对象为操作对象将各个业务对象按照预设处理规则进行预处理迁移至目标环境中。本发明中无论是将产品数据由源环境迁移出还是将产品数据迁移至目标环境的过程,其操作对象都是业务对象,由于业务对象是产品数据的高级分类,因此本方法能够整体显示源环境和目标环境的区别,其处理粒度符合产品工厂的要求,适用于产品工厂进行产品研发的机构或个人对产品数据进行迁移。
Description
技术领域
本发明涉及数据处理领域,尤其涉及一种产品工厂模式下的产品数据迁移方法、装置及系统。
背景技术
产品工厂是新一代核心银行系统的核心部分之一,产品工厂基于工厂化的设计思想,通过组件化、参数化的设计方法,预先定义各种产品的构成要素,通过灵活的产品零部件组合和功能配置,为实现快速、差别化的产品定制提供技术支持。
产品工厂中处理的是产品数据,根据产品工厂的逻辑数据模型,产品数据的组织层级方式为:产品、业务对象、数据表、记录。一个产品会包含多个ID不同的同一业务对象,业务对象是对产品组成元素的高阶分类,每个业务对象由一组数据表组成,不同业务对象的数据表彼此不相互重复,数据表类似物理数据库表,包含0行或者多行记录。
在产品工厂中,一个完整的产品研发流程通常包含开发、测试、投产阶段,对应的包含开发环境、测试环境、准生产环境和生产环境。在产品工厂中产品研发的过程中,与该产品相关的所有业务对象及业务对象下的记录都是该产品的产品数据,产品数据需要依次经过开发环境、测试环境、准生产环境和生产环境,将产品数据在不同环境中的传输称为数据迁移。
现有的数据迁移有两种:SQL语句方式、利用数据库的导入导出方式,SQL语句方式是指通过直接执行SQL语句进行数据迁移,该方式下用户首先通过编写Select语句在源环境的数据库中选择需要迁移的记录,然后对获取的记录加工形成Insert语句,最后在目标环境的目标数据库执行Insert语句插入记录。利用数据库的导入导出方式,如IBM DB2数据库的Export、Import和Load功能,Export实现数据的导出,Import和Load实现数据的导入。
以上数据迁移方法是现有通用的数据迁移方式,但现有数据迁移方式中数据处理的单元是独立的记录,而产品工厂是模块化的组织结构,每个产品由多个业务对象构成,对于同一个业务对象中的记录,应作为一个整体处理,按照记录进行处理的方式其处理粒度过细,不能整体体现业务对象的之间的关系,因此现有技术中数据迁移的方式不能满足产品工厂中对产品数据迁移的粒度。
因此现在需要一种产品数据迁移方法,能够适用于对产品工厂中的产品数据进行迁移。
发明内容
本发明提供了一种产品工厂模式下的产品数据迁移方法、装置及系统,采用本方法能够适用于对产品工厂中的产品数据进行迁移。
为了实现上述目的,本发明提供了以下技术手段:
一种产品工厂模式下的产品数据迁移方法,包括:
接收用户输入的源环境、目标环境和产品标识信息;
与所述源环境的源数据库建立网络连接,并初始化待导出数据集;
遍历预设实体联系图获取与所述产品标识信息相关的业务对象集合;
以所述业务对象集合为依据在所述源数据库读取数据,获取与所述产品标识信息对应的产品数据,所述产品数据包括所述业务对象集合中各个业务对象的所有记录;
将所述产品数据存储至所述待导出数据集,并生成产品数据文件;
与所述目标环境的目标数据库建立网络连接,读取所述产品数据文件并根据所述产品数据文件生成待导入数据集;
以所述待导入数据集中产品数据的各个业务对象为依据,按预设处理规则设置各个业务对象及其下记录的预处理操作标识;
若所述产品数据按所述预处理操作标识导入至目标环境后满足预设条件,则显示所述产品数据中各个业务对象及其下记录的预处理操作标识;
待用户确认所述预处理操作标识后,按所述各个业务对象及其下记录的预处理操作标识操作所述目标数据库,在一个事务内完成导入操作。
优选的,将所述产品数据存储至所述待导出数据集,并生成产品数据文件包括:
根据所述待导出数据集生成数据集体;
根据所述待导出数据集生成与所述产品标识信息相关的产品信息概述;
获取与所述产品标识信息相关的操作场景信息;
根据所述产品信息概述和所述操作场景信息设置数据集头;
根据所述数据集体和所述数据集头计算数字签名;
由所述数据集头、所述数据集体和所述数字签名生成所述产品数据文件。
优选的,按预设处理规则设置各个业务对象及其下记录的预处理操作标识包括:
按照所述预设处理规则自动设置各个业务对象及其下记录的预处理操作标识;或
弹出预处理窗口,接收用户预处理输入,并根据用户预处理输入设置各个业务对象及其下记录的预处理操作标识。
优选的,按照所述预设处理规则自动设置各个业务对象及其下记录的预处理操作标识包括:
依次所述待导入数据集的每个业务对象的ID与目标数据库中所有业务对象的ID进行对比;
若所述目标数据库中不含某一业务对象的ID,则该业务对象及其下记录的预处理操作标识为插入;
若所述目标数据库中含有某一业务对象的ID,则按所述预设冲突处理规则进行处理,则业务对象的预处理操作标识为更新、忽略、退出或重命名。
优选的,弹出预处理窗口,接收用户预处理输入,并根据用户预处理输入设置各个业务对象及其下记录的预处理操作标识包括:
弹出更新、忽略、退出和重命名的窗口,接收用户分析两者差异之后选择的预处理输入,并根据用户预处理输入设置各个业务对象及其下记录的预处理操作标识。
优选的,将所述产品数据存储至所述待导出数据集包括:
将所述产品数据中各个业务对象的所有记录按照业务对象、数据表、记录的形式存储至所述待导出数据集中。
优选的,所述预设条件包括:
空条件,或符合产品数据逻辑约束关系。
优选的,所述产品数据文件的格式为.XML格式。
一种产品工厂模式下的产品数据迁移装置,包括:
接收单元,用于接收用户输入的源环境、目标环境和产品标识信息;
第一网络单元,用于与所述源环境的源数据库建立网络连接,并初始化待导出数据集;
第一获取单元,用于遍历预设实体联系图获取与所述产品标识信息相关的业务对象集合;
第二获取单元,用于以所述业务对象集合为依据在所述源数据库读取数据,获取与所述产品标识信息对应的产品数据,所述产品数据包括所述业务对象集合中各个业务对象的所有记录;
生成单元,用于将所述产品数据存储至所述待导出产品数据集,并生成产品数据文件;
第二网络单元,用于与所述目标环境的目标数据库建立网络连接,读取所述产品数据文件,并根据所述产品数据文件生成待导入数据集;
第三获取单元,用于以所述待导入数据集中产品数据的各个业务对象为依据,按预设处理规则设置各个业务对象及其下记录的预处理操作标识;
显示单元,用于若所述产品数据按所述预处理操作标识导入至目标环境后满足预设条件,则显示所述各个业务对象及其下记录的预处理操作标识;
导入单元,用于待用户确认所述预处理操作标识后,按所述各个业务对象及其下记录的预处理操作标识操作所述目标数据库,在一个事务内完成导入操作。
一种产品工厂模式下的产品数据迁移系统,包括:
源环境,目标环境和处理器;
所述处理器,用于接收用户输入的源环境、目标环境和产品标识信息,与所述源环境的源数据库建立网络连接,并初始化待导出数据集,遍历预设实体联系图获取与所述产品标识信息相关的业务对象集合,以所述业务对象集合为依据在所述源数据库读取数据,获取与所述产品标识信息对应的产品数据,所述产品数据包括所述业务对象集合中各个业务对象的所有记录,将所述产品数据存储至所述待导出数据集,并生成产品数据文件,与所述目标环境的目标数据库建立网络连接,读取所述产品数据文件并根据所述产品数据文件生成待导入数据集,以所述待导入数据集中产品数据的各个业务对象为依据,按预设处理规则设置各个业务对象及其下记录的预处理操作标识,若所述产品数据按所述预处理操作标识导入至目标环境后满足预设条件,则显示所述产品数据中各个业务对象及其下记录的预处理操作标识,待用户确认所述预处理操作标识后,按所述各个业务对象及其下记录的预处理操作标识操作所述目标数据库,在一个事务内完成导入操作。
本发明提供了一种产品工厂模式下的产品数据迁移方法,该方法中首先确定源环境、目标环境和产品标识信息,该产品标识信息即为需要迁移的产品,根据预设的实体联系图获得与产品标识信息相关的业务对象集合,以业务对象集合中的各个业务对象为操作对象在源环境数据库中获得所有记录,并将所有记录存储至待导出数据集中得到产品数据文件,然后再与目标数据库建立连接,读取产品数据文件并生成待导入数据集,以待导入数据集中的业务对象为操作对象将各个业务对象按照预设处理规则进行预处理,得到预处理操作标识,待用户确认后各个业务对象的预处理操作标识后,将产品数据导入至目标数据库中从而实现产品数据由源环境至目标环境的迁移。
本发明中无论是将产品数据由源环境迁移出,还是将产品数据迁移至目标环境的过程,其操作对象都是产品数据的业务对象,业务对象是产品数据的高级分类,因此本方法能够整体显示源环境和目标环境的区别,其处理粒度符合产品工厂的要求,适用于产品工厂下进行产品研发的机构或个人对产品数据进行迁移。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获取其他的附图。
图1为本发明实施例公开的产品工厂模式下的产品数据迁移方法的流程图;
图2为本发明实施例公开的又一产品工厂模式下的产品数据迁移方法的流程图;
图3为本发明实施例公开的产品工厂模式下的产品数据迁移方法中生成产品数据文件的流程图;
图4为本发明实施例公开的产品工厂模式下的产品数据迁移装置的结构示意图;
图5为本发明实施例公开的产品工厂模式下的产品数据迁移系统的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获取的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明提供了一种产品工厂模式下的产品数据迁移方法一种实施例,包括:
步骤S101:接收用户输入的源环境、目标环境和产品标识信息;
产品工厂中包括开发环境、测试环境、准生产环境和生产环境,在产品工厂中进行产品研发的过程中,需要将该产品的产品数据依次经过开发环境、测试环境、准生产环境和生产环境,将产品数据在不同环境中的传输称为数据迁移。
源环境是指产品数据迁出方所在的环境,目标环境是指产品数据迁入方所在的环境,例如:若本次数据迁移是由开发环境至测试环境,则开发环境是源环境,测试环境是目标环境。产品标识信息为待迁移产品的产品标识信息,该产品标识信息可为待迁移产品的代码、编号、识别码等能够让软件程序识别待迁移产品的一种标识。
步骤S102:与所述源环境的源数据库建立网络连接,并初始化待导出数据集;
通过网络与源环境的数据库建立网络连接,建立网络连接之后,本方法所在的系统便能够与源环境之间建立通信连接并进行通信,以便在源环境中获取与待迁移产品的产品标识信息相关的产品数据。
本方法在与环境建立网络连接之后,初始化一个待导出数据集,该待导出数据集为一个存储空间,用于存储从源环境中迁出的产品数据。
步骤S103:遍历预设实体联系图获取与所述产品标识信息相关的业务对象集合;
在产品工厂构建数据模型之初便建立了实体联系图,实体联系图为一种表示实体型、属性和联系的方法,用来描述现实世界的概念模型,在本发明中预设实体联系图用于表示产品工厂中各个产品、各个产品中的业务对象,以及每个业务对象中的数据表及记录的一个模型。具体的,根据待迁移产品的产品标识信息在预设实体联系图中,首先获得与该产品直接相关的业务对象,然后由直接的业务对象获得下一层业务对象,依次迭代直到获得与待迁移产品的产品标识信息相关的所有最小业务对象集合。
步骤S104:以所述业务对象集合为依据在所述源数据库读取数据,获取与所述产品标识信息对应的产品数据,所述产品数据包括所述业务对象集合中各个业务对象的所有记录;
以业务对象集合为依据在源环境的数据库中进行查询,依次获得业务对象集合中各个业务对象的所有记录,各个业务对象的各个所有记录即为需要迁移的产品数据。具体的,根据业务对象集合获得各个业务对象,以其中一个业务对象为例,根据该业务对象得到各个数据表,根据各个数据表得到数据表下的各个记录。
步骤S105:将所述产品数据存储至所述待导出数据集,并生成产品数据文件;
将上述步骤中获得的产品数据即各个业务对象的所有记录,按照业务对象、数据表、记录的形式存储至所述待导出数据集中。各个业务对象的所有记录即需要迁移的产品数据,将产品数据按照业务对象集合、业务对象、数据表、记录层级存储方式,既保证了其逻辑性,又不破坏业务对象的完整性。
将产品数据存储至待导出数据集之后,根据待导出数据集生成产品数据文件,本方法中产品数据以数据文件的形式存储,而不是现有技术中以数据表的形式存储,增加了产品数据完整性。上述步骤完成之后,即完成了产品数据由源环境迁出的过程,产品数据以产品数据文件的形式存储至待导出数据集。
步骤S106:与所述目标环境的目标数据库建立网络连接,读取产品数据文件,并根据产品数据文件生成待导入数据集;
产品数据由源环境导出之后,便需要将其导入至目标环境,即将上述步骤中导出的产品数据文件导入至目标环境,首先与目标环境的数据库建立网络连接,使本方法所在的系统能够与目标环境进行通信连接,然后读取本地与待导入产品标识信息对应的产品数据文件,对产品数据文件进行解析,生成需要导入至目标环境的待导入数据集。
步骤S107:以所述待导入数据集中产品数据的各个业务对象为依据,按预设处理规则设置各个业务对象及其下记录的预处理操作标识;
数据迁移的理想情况为除去待迁移产品之外,两个环境的其他数据完全一致,目标环境中没有待迁移产品,可以直接待迁移产品的产品数据的各个业务对象的所有记录全部插入至目标环境,但是在产品工厂中由于每个环境都有自己的用户,用户会对环境中的产品数据进行操作,虽然不同的环境之间设立同步的过程,可以使不同环境下的产品数据保持一致,但是由于同步存在时间间隔,所以在不同环境下两次同步之间的产品数据存在差异。
因此在将由源环境迁出的产品数据导入至目标环境的时候,有一定的预设处理规则,为了保证数据迁移的正确性,一般执行预导入和实际导入两个过程,在预导入过程中根据预设处理规则,以产品数据文件中的各个业务对象为依据进行处理并得到各个业务对象及其下记录的预处理操作标识。
在预处理的过程中,有两种方式:一种是系统按照预设处理规则自动对各个业务对象进行预处理;另一种是系统弹出预处理窗口,由用户了解分析差异后按预设处理规则自行对各个业务对象进行预处理。各个业务对象的预处理操作包括更新、忽略、退出或重命名,系统自动按预设处理规则进行处理只有一种处理方式,用户处理可以按照当时的具体情况进行斟酌和判断可以实现多种处理方式,用户处理更加人性化,系统处理简单方便,各有各自的优势,其具体内容将在下述实施例中进行详细说明。
步骤S108:若所述产品数据按所述预处理操作标识导入至目标环境后满足预设条件,则显示所述各个业务对象的预处理操作标识;
预设条件可以为空条件,或者所述产品数据依据预处理标识导入到目标环境后符合产品数据逻辑约束关系。
其中产品数据逻辑约束关系是产品数据的业务对象间存在的数据约束,不管在哪个环境,一个产品其下的业务对象间必须满足产品数据约束才是一个正确的产品,数据逻辑约束关系包括:判断各个业务对象引用的对象是否存在,派生的业务对象数据范围是否在基础对象的数据范围之内等一系列的约束关系,此约束关系可以由根据自己的产品工厂是否需要而设定。
若产品数据按所述预处理操作标识导入至目标环境后满足预设条件,则经显示设备显示各个业务对象及其下记录的预处理操作标识,以便用户进行进一步的确认,便于产品数据处理的准确性。
步骤S109:待用户确认所述预处理操作标识后,按各个业务对象的预处理操作标识操作所述目标数据库,在一个事务内完成导入操作。
用户确认后各个业务对象的预处理操作标识之后,将待导入数据集中产品数据的各个业务对象及其下记录按照预处理操作标识,操作目标数据库中。例如:某一业务对象的预处理操作标识为插入,则将该业务对象下的记录全部插入至目标数据库中;某一业务对象的预处理操作标识为更新,则依据对该业务对象下的记录已设置的预处理操作标识对相应记录进行插入、更新或者删除等操作。
本发明提供了一种产品工厂模式下的产品数据迁移方法,该方法中首先确定源环境、目标环境和产品标识信息,根据预设的实体联系图获得与产品标识信息相关的业务对象集合,以业务对象集合中的各个业务对象为操作对象在源环境数据库中获得所有记录,并将所有记录存储至待导出数据集中得到产品数据文件,然后与目标数据库建立连接,读取产品数据文件并生成待导入数据集,以待导入数据集中的业务对象为操作对象将的各个业务对象按照预设处理规则进行预处理,得到预处理操作标识,待用户确认后各个业务对象的预处理操作标识后,将产品数据导入至目标数据库中,从而实现产品数据由源环境至目标环境的迁移。
本发明中无论是将产品数据由源环境迁移出,还是将产品数据迁移至目标环境的过程,其操作对象都是产品数据的业务对象,业务对象是产品数据的高级分类,因此本方法能够整体显示源环境和目标环境的区别,其处理粒度符合产品工厂的要求,因此本方法适用于对产品工厂中的产品数据进行迁移。
如图2所示,本发明提供了一种产品工厂模式下的产品数据迁移方式的第二实施例,具体包括以下步骤。
步骤S201:预先执行初始化操作;
预先执行的初始化操作包括,配置产品工厂的各个环境的数据库信息;产品工厂包括生产环境、测试环境、准生产环境和生产环境,每个环境中都包括多个数据库,数据库信息包括数据库的名称和地址,数据库信息为后续产品数据文件的中各个业务对象中的记录提供了出处。
预先执行的初始化操作还包括:用户需要先登录到本方法所在的系统,系统验证用户名和用户密码之后,接收用户的登录,用户名和用户密码由系统管理员统一分配至有权限的用户。用户登录之后,系统在内存中记录用户登录的用户名和登录时间,为后续产品数据迁移增加审计信息。
步骤S202:接收用户输入的源环境、目标环境和产品标识信息;
步骤S203:与源环境的源数据库建立网络连接,并初始化待导出数据集;
步骤S204:获取业务对象集合,即遍历预设实体联系图获取与产品标识信息相关的业务对象集合;
步骤S205:获取产品数据,即以业务对象集合为依据在所述源数据库读取数据,获取与所述产品标识信息对应的产品数据,所述产品数据包括所述业务对象集合中各个业务对象的所有记录;
步骤S206:将产品数据存储至待导出数据集,生成产品数据文件;
如图3所示,步骤S206具体包括:
步骤S301:根据所述待导出数据集生成数据集体;
本发明中产品数据文件是.XML的格式,产品数据文件包括数据集头,数据集体和数字签名三部分组成,数据集体是产品数据文件的重要部分。根据待导出数据集中的各个业务对象的所有记录生成产品数据文件的数据集体。
步骤S302:根据所述待导出数据集生成与所述产品标识信息相关的产品信息概述;
待导出数据集中包括各个业务对象的所有记录,各个业务对象的记录中还包括与产品标识信息相关的产品信息概述,产品信息概述包括与待迁移产品有关的金融实体的代码、产品号、产品名称、产品描述信息等信息。产品信息概述给出了待迁移产品的主要标识信息。
步骤S303:获取与所述产品标识信息相关的操作场景信息;
在系统的内存中获取与产品标识信息相关的操作场景信息,操作场景信息包括:执行迁移操作的用户名,操作时间和与源数据库有关的数据库信息。
步骤S304:根据所述产品信息概述和所述操作场景信息设置数据集头;
将上述步骤中获得的产品信息概述和操作场景信息作为产品数据文件的数据集头,数据集头中的内容相当于审计信息,其中包括执行迁移操作的用户,操作时间,数据库信息,便于后续的对产品数据文件进行审计。
步骤S305:根据所述数据集体和所述数据集头计算数字签名;
为了防止产品数据文件被其他人员篡改,在产品数据文件中增加数字签名,根据数据集头和数据集体的内容计算得到数据签名。
步骤S306:由所述数据集头、所述数据集体和所述数字签名生成所述产品数据文件;由上述步骤中得到的数据集头、数据集体和数据签名共同构成产品数据文件。
步骤S207:与所述目标环境的目标数据库建立网络连接,读取所述产品数据文件;
步骤S208:验证数字签名是否正确,若正确则进入步骤S209,若不正确则进入步骤S203。
在执行导入操作之前,首先验证产品数据文件中的数字签名是否正确,根据产品数据文件中的数据集头和数据集体,按照同样的计算方法计算得到当前数字签名,判断当前的数字签名是否与产品数据文件中的数字签名是否一致,若一致表示产品数据文件没有被篡改,若不一致,则表示产品数据文件已被篡改,不能执行导入操作,需要与源环境建立连接重新获得产品数据文件。
步骤S209:生成待导入数据集,进行预处理操作并获得预处理操作标识,即以所述产品数据文件中各个业务对象为依据,按预设处理规则进行预处理获取各个业务对象的预处理操作标识;
步骤S209具体包括依次所述产品数据文件中每个业务对象的ID与目标数据库中所有业务对象的ID进行对比;
若所述目标数据库中不含某一业务对象的ID,则该业务对象的预处理操作标识为插入;
若所述目标数据库中含有某一业务对象的ID,则按预设冲突处理规则进行处理,业务对象的预处理操作标识为更新、忽略、退出或重命名。
若所述目标数据库中含有某一业务对象的ID,在进行业务对象差异比较时,将待导入业务对象下的记录和目标数据库中同ID业务对象下的记录进行逐条比较,并对每条数据记录标记比较结果,数据记录的比较结果分为三类:相同、不同和多余。
对产品数据文件中的业务对象和目标数据库中记录比较结果进行统计,由于只关注差异性,可用3位二进制码0/1标示符XXX表示比较结果。第一位表示产品数据文件的业务对象和目标数据库中业务对象是否存在有差异的数据记录,第二位表示产品数据文件的业务对象是否存在多余的数据记录,第三位表示目标数据库中是否存在多余的数据记录。业务对象差异可归为八种情况:000~111。以000和111为例,000表示两个业务对象完全一致;111表示两个业务对象存在不一致记录,待导入业务对象存在多余记录,目标数据库中的业务对象存在多余记录。
预设冲突处理规则用于表示当产品数据文件与源环境中的某个业务对象存在差异的时候,应该采用的处理措施,每条冲突处理规则可用一个四元组进行表示:
<业务对象,业务对象差异类型,是否自动处理,处理方式>
业务对象即为产品数据集中的业务对象,业务对象差异类型为产品数据文件中的业务对象和目标数据库中业务对象的差异分类,取值为上文8种情况之一,是否自动处理指示系统自动处理差异还是弹出界面让用户手工处理。
处理方式包括:
1)更新
将目标数据库中的同一ID的业务对象更新为待导入数据集中的业务对象。对待导入数据集或目标数据库的业务对象的记录执行操作:相同的记录不进行操作,目标数据库中不存在的记录执行插入操作,两者不一致的记录执行更新操作,目标数据库中多余的记录执行删除操作。
2)忽略
忽略是指产品数据文件中的业务对象和目标数据库中业务对象发生冲突的时候,放弃使用产品数据文件中业务对象更新目标数据库中相同ID的业务对象。当忽略产品数据文件中某个业务对象,整个产品数据文件完成导入操作后,目标数据库中新导入产品数据文件中的业务对象将引用的是原目标数据库中的相同ID业务对象。
例如:生产环境对某个业务对象取值进行了修改,生产环境中该业务对象相比开发环境中的业务对象是最新的,此时不应该用旧的数据覆盖新的数据。因此虽然两者的数据不一致,但是不能将产品数据文件中的业务对象替换目标数据库中的业务对象。
此时与产品数据文件中具有引用关系的业务对象,将因为产品数据文件中的业务对象没有导入而缺少引用依据,为了使得各个业务对象存在应用依据,将引用产品数据文件中的该业务对象的其他业务对象的引用关系,转至目标数据库中的原相同ID的业务对象,如此便不会出现引用出现问题的情况。
3)退出
当发现产品数据文件存在错误,或对该执行的处理方式不确定时,继续导入将会对目标数据库中已有产品产生不利影响。此时用户选择退出,放弃继续执行导入操作,放弃整个产品数据文件的导入操作,直接退出将对目标数据库不产生任何操作。
4)重命名
保持产品数据文件中的业务对象中非ID数据不变,使用新的ID替换原有ID。使用重命名后,新ID的业务对象和目标数据库中原有ID业务对象将不存在冲突。待导入产品其他业务对象中对原有ID业务对象的引用也替换为新ID的业务对象。
例如:生产环境建立了一个业务对象,开发环境建立了另一个业务对象,由于开发环境和生产环境没有及时同步,这两个对象具有相同的ID。这两个业务对象都是正确的,都应该保留。
处理方式根据是否自动处理具有不同的取值空间,自动处理方式为系统预先根据程序设计的处理方式,有且只有唯一的处理方式,而手工处理可以有多种处理方式。用户可执行的操作类型,根据业务对象的性质不同,可能存在差异,通过冲突处理规则,可以实现对业务对象冲突进行灵活的、细粒度的、差异化的处理。
步骤S210:判断产品数据按预处理标识导入至目标环境后是否符合产品数据逻辑约束关系;若不符合则直接退出导入操作,若正确则进入步骤S211。
步骤S211:显示预处理操作标识,即显示所述产品数据中各个业务对象及其下记录的预处理操作标识;
步骤S212:将产品数据导入至目标数据库中,即待用户确认所述预处理操作标识后,按所述各个业务对象及其下记录的预处理操作标识操作所述目标数据库,在一个事务内完成导入操作;
步骤S213:生成操作日志。
在执行产品数据文件导入的过程中,会依据对目标数据库的操作生成操作日志。日志命名方式为产品数据导入文件的名称加上产品导入操作系统时间,即:导入数据文件名称+"yyyy-MM-dd HH.mm.ss"+".log"。日志的结构格式为.XML格式,包含导入操作的场景信息和实际对数据库进行的操作详情,并使用数字签名保证数据完整性。
对于数据完整性的保证,除了本方案使用数字签名技术外,还可以使用基于哈希的消息验证代码(HMAC)技术。
本发明中无论是将产品数据由源环境迁移出,还是将产品数据迁移至目标环境的过程,其操作对象都是产品数据的业务对象,业务对象是产品数据的高级分类,能够整体显示源环境和目标环境中两者的区别,其处理粒度符合产品工厂的要求,因此本方法适用于对产品工厂中的产品数据进行迁移。
此外本发明在产品数据文件中还增加了产品信息概述和操作场景信息等审计信息,方便了用户对数据迁移过程进行审计,另外还增加了数字签名,保证了产品数据文件的完整性,防止了产品数据文件被恶意篡改的情况出现。
如图4所示,本发明还提供了一种产品工厂模式下的产品数据迁移装置,包括:
接收单元100,用于接收用户输入的源环境、目标环境和产品标识信息;
第一网络单元200,用于与所述源环境的源数据库建立网络连接,并初始化待导出数据集;
第一获取单元300,用于遍历预设实体联系图获取与所述产品标识信息相关的业务对象集合;
第二获取单元400,用于以所述业务对象集合为依据在所述源数据库读取数据,获取与所述产品标识信息对应的产品数据,所述产品数据包括所述业务对象集合中各个业务对象的所有记录;
生成单元500,用于将产品数据存储至所述待导出产品数据集,并生成产品数据文件;
第二网络单元600,用于与所述目标环境的目标数据库建立网络连接,读取所述产品数据文件,并根据所述产品数据文件生成待导入数据集;
第三获取单元700,用于以所述待导入数据集中产品数据的各个业务对象为依据,按预设处理规则进行预处理获取各个业务对象及其下记录的预处理操作标识;
显示单元800,用于若所述产品数据按所述预处理操作标识导入至目标环境后满足预设条件,则显示所述各个业务对象的预处理操作标识;
导入单元900,用于待用户确认所述预处理操作标识后,按所述各个业务对象及其下记录的预处理操作标识操作所述目标数据库,在一个事务内完成导入操作。
如图5所示,本发明还提供了一种产品工厂模式下的产品数据迁移系统,包括:
源环境1000,目标环境2000和处理器3000;
所述处理器3000,用于接收用户输入的源环境、目标环境和产品标识信息,与所述源环境的源数据库建立网络连接,并初始化待导出数据集,遍历预设实体联系图获取与所述产品标识信息相关的业务对象集合,以所述业务对象集合为依据在所述源数据库读取数据,获取与所述产品标识信息对应的产品数据,所述产品数据包括所述业务对象集合中各个业务对象的所有记录,将所述产品数据存储至所述待导出数据集,并生成产品数据文件,与所述目标环境的目标数据库建立网络连接,读取所述产品数据文件并根据所述产品数据文件生成待导入数据集,以所述待导入数据集中产品数据的各个业务对象为依据,按预设处理规则设置各个业务对象及其下记录的预处理操作标识,若所述产品数据按所述预处理操作标识导入至目标环境后满足预设条件,则显示所述产品数据中各个业务对象及其下记录的预处理操作标识,待用户确认所述预处理操作标识后,按所述各个业务对象及其下记录的预处理操作标识操作所述目标数据库,在一个事务内完成导入操作。
本实施例方法所述的功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算设备可读取存储介质中。基于这样的理解,本发明实施例对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一台计算设备(可以是个人计算机,服务器,移动计算设备或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种产品工厂模式下的产品数据迁移方法,其特征在于,包括:
接收用户输入的源环境、目标环境和产品标识信息;
与所述源环境的源数据库建立网络连接,并初始化待导出数据集;
遍历预设实体联系图获取与所述产品标识信息相关的业务对象集合;
以所述业务对象集合为依据在所述源数据库读取数据,获取与所述产品标识信息对应的产品数据,所述产品数据包括所述业务对象集合中各个业务对象的所有记录;
将所述产品数据存储至所述待导出数据集,并生成产品数据文件;
与所述目标环境的目标数据库建立网络连接,读取所述产品数据文件并根据所述产品数据文件生成待导入数据集;
以所述待导入数据集中产品数据的各个业务对象为依据,按预设处理规则设置各个业务对象及其下记录的预处理操作标识;
若所述产品数据按所述预处理操作标识导入至目标环境后满足预设条件,则显示所述产品数据中各个业务对象及其下记录的预处理操作标识;
待用户确认所述预处理操作标识后,按所述各个业务对象及其下记录的预处理操作标识操作所述目标数据库,在一个事务内完成导入操作。
2.如权利要求1所述的方法,其特征在于,将所述产品数据存储至所述待导出数据集,并生成产品数据文件包括:
根据所述待导出数据集生成数据集体;
根据所述待导出数据集生成与所述产品标识信息相关的产品信息概述;
获取与所述产品标识信息相关的操作场景信息;
根据所述产品信息概述和所述操作场景信息设置数据集头;
根据所述数据集体和所述数据集头计算数字签名;
由所述数据集头、所述数据集体和所述数字签名生成所述产品数据文件。
3.如权利要求1所述的方法,其特征在于,按预设处理规则设置各个业务对象及其下记录的预处理操作标识包括:
按照所述预设处理规则自动设置各个业务对象及其下记录的预处理操作标识;或
弹出预处理窗口,接收用户预处理输入,并根据用户预处理输入设置各个业务对象及其下记录的预处理操作标识。
4.如权利要求3所述的方法,其特征在于,按照所述预设处理规则自动设置各个业务对象及其下记录的预处理操作标识包括:
依次所述待导入数据集的每个业务对象的ID与目标数据库中所有业务对象的ID进行对比;
若所述目标数据库中不含某一业务对象的ID,则该业务对象及其下记录的预处理操作标识为插入;
若所述目标数据库中含有某一业务对象的ID,则按预设冲突处理规则进行处理,则业务对象的预处理操作标识为更新、忽略、退出或重命名。
5.如权利要求3所述的方法,其特征在于,弹出预处理窗口,接收用户预处理输入,并根据用户预处理输入设置各个业务对象及其下记录的预处理操作标识包括:
弹出更新、忽略、退出和重命名的窗口,接收用户分析两者差异之后选择的预处理输入,并根据用户预处理输入设置各个业务对象及其下记录的预处理操作标识。
6.如权利要求1所述的方法,其特征在于,将所述产品数据存储至所述待导出数据集包括:
将所述产品数据中各个业务对象的所有记录按照业务对象、数据表、记录的形式存储至所述待导出数据集中。
7.如权利要求1所述的方法,其特征在于,所述预设条件包括:
空条件,或符合产品数据逻辑约束关系。
8.如权利要求1所述的方法,其特征在于,所述产品数据文件的格式为.XML格式。
9.一种产品工厂模式下的产品数据迁移装置,其特征在于,包括:
接收单元,用于接收用户输入的源环境、目标环境和产品标识信息;
第一网络单元,用于与所述源环境的源数据库建立网络连接,并初始化待导出数据集;
第一获取单元,用于遍历预设实体联系图获取与所述产品标识信息相关的业务对象集合;
第二获取单元,用于以所述业务对象集合为依据在所述源数据库读取数据,获取与所述产品标识信息对应的产品数据,所述产品数据包括所述业务对象集合中各个业务对象的所有记录;
生成单元,用于将所述产品数据存储至所述待导出产品数据集,并生成产品数据文件;
第二网络单元,用于与所述目标环境的目标数据库建立网络连接,读取所述产品数据文件,并根据所述产品数据文件生成待导入数据集;
第三获取单元,用于以所述待导入数据集中产品数据的各个业务对象为依据,按预设处理规则设置各个业务对象及其下记录的预处理操作标识;
显示单元,用于若所述产品数据按所述预处理操作标识导入至目标环境后满足预设条件,则显示所述各个业务对象及其下记录的预处理操作标识;
导入单元,用于待用户确认所述预处理操作标识后,按所述各个业务对象及其下记录的预处理操作标识操作所述目标数据库,在一个事务内完成导入操作。
10.一种产品工厂模式下的产品数据迁移系统,其特征在于,包括:
源环境,目标环境和处理器;
所述处理器,用于接收用户输入的源环境、目标环境和产品标识信息,与所述源环境的源数据库建立网络连接,并初始化待导出数据集,遍历预设实体联系图获取与所述产品标识信息相关的业务对象集合,以所述业务对象集合为依据在所述源数据库读取数据,获取与所述产品标识信息对应的产品数据,所述产品数据包括所述业务对象集合中各个业务对象的所有记录,将所述产品数据存储至所述待导出数据集,并生成产品数据文件,与所述目标环境的目标数据库建立网络连接,读取所述产品数据文件并根据所述产品数据文件生成待导入数据集,以所述待导入数据集中产品数据的各个业务对象为依据,按预设处理规则设置各个业务对象及其下记录的预处理操作标识,若所述产品数据按所述预处理操作标识导入至目标环境后满足预设条件,则显示所述产品数据中各个业务对象及其下记录的预处理操作标识,待用户确认所述预处理操作标识后,按所述各个业务对象及其下记录的预处理操作标识操作所述目标数据库,在一个事务内完成导入操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310385031.9A CN103455589B (zh) | 2013-08-29 | 2013-08-29 | 产品工厂模式下的产品数据迁移方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310385031.9A CN103455589B (zh) | 2013-08-29 | 2013-08-29 | 产品工厂模式下的产品数据迁移方法、装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103455589A CN103455589A (zh) | 2013-12-18 |
CN103455589B true CN103455589B (zh) | 2016-09-21 |
Family
ID=49737952
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310385031.9A Active CN103455589B (zh) | 2013-08-29 | 2013-08-29 | 产品工厂模式下的产品数据迁移方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103455589B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105824846B (zh) * | 2015-01-09 | 2021-04-13 | 阿里巴巴集团控股有限公司 | 数据迁移方法及装置 |
CN106503001B (zh) * | 2015-09-03 | 2019-11-12 | 菜鸟智能物流控股有限公司 | 分布式集群环境中的数据更新方法及装置 |
CN105786780A (zh) * | 2016-03-04 | 2016-07-20 | 北京元心科技有限公司 | 一种对字典和字典项进行处理的方法及服务器 |
CN109101514A (zh) * | 2017-06-21 | 2018-12-28 | 北京国双科技有限公司 | 数据导入方法及装置 |
CN108153852A (zh) * | 2017-12-22 | 2018-06-12 | 中国平安人寿保险股份有限公司 | 一种数据处理方法、装置、终端设备及存储介质 |
CN108230164A (zh) * | 2018-01-18 | 2018-06-29 | 中国平安人寿保险股份有限公司 | 一种产品利益项的显示方法、存储介质及终端设备 |
CN110633266B (zh) * | 2019-09-26 | 2022-03-29 | 中国银行股份有限公司 | 业务系统的版本生成方法及系统 |
CN112148724B (zh) * | 2020-10-16 | 2022-08-23 | 杭州兑吧网络科技有限公司 | 一种设备标识处理方法、系统、计算机设备及可读存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6381600B1 (en) * | 1999-09-22 | 2002-04-30 | International Business Machines Corporation | Exporting and importing of data in object-relational databases |
CN1547136A (zh) * | 2003-12-08 | 2004-11-17 | 李 | 数据一次写入方法和基于该方法的数据库安全管理方法 |
CN1763745A (zh) * | 2005-09-06 | 2006-04-26 | 阎海强 | 一种面向结构的数据迁移的方法及系统 |
CN102308297A (zh) * | 2011-07-13 | 2012-01-04 | 华为技术有限公司 | 一种数据迁移方法、数据迁移装置及数据迁移系统 |
CN102982085A (zh) * | 2012-10-31 | 2013-03-20 | 北京奇虎科技有限公司 | 数据迁移系统和方法 |
-
2013
- 2013-08-29 CN CN201310385031.9A patent/CN103455589B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6381600B1 (en) * | 1999-09-22 | 2002-04-30 | International Business Machines Corporation | Exporting and importing of data in object-relational databases |
CN1547136A (zh) * | 2003-12-08 | 2004-11-17 | 李 | 数据一次写入方法和基于该方法的数据库安全管理方法 |
CN1763745A (zh) * | 2005-09-06 | 2006-04-26 | 阎海强 | 一种面向结构的数据迁移的方法及系统 |
CN102308297A (zh) * | 2011-07-13 | 2012-01-04 | 华为技术有限公司 | 一种数据迁移方法、数据迁移装置及数据迁移系统 |
CN102982085A (zh) * | 2012-10-31 | 2013-03-20 | 北京奇虎科技有限公司 | 数据迁移系统和方法 |
Non-Patent Citations (1)
Title |
---|
《ERP软件产品升级过程中数据迁移的分析及实现》;燕紫;《万方学术期刊数据库》;20070916;9-10,15-16,30-31,35,44-46 * |
Also Published As
Publication number | Publication date |
---|---|
CN103455589A (zh) | 2013-12-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103455589B (zh) | 产品工厂模式下的产品数据迁移方法、装置及系统 | |
EP2565802B1 (en) | Data masking setup | |
CN109977110A (zh) | 数据清洗方法、装置及设备 | |
WO2016177026A1 (zh) | 一种去中心化自治组织的数据处理方法及装置 | |
Dourish | No SQL: The shifting materialities of database technology | |
CN103810224B (zh) | 信息持久化和查询方法及装置 | |
JP6582277B1 (ja) | ブロックチェーン履歴蓄積システム及びブロックチェーン履歴蓄積方法 | |
CN106294853A (zh) | 处理相关数据集 | |
CN104765729A (zh) | 一种跨平台微博社区账户匹配方法 | |
CN107016047A (zh) | 文档查询、文档存储方法及装置 | |
CN107203574A (zh) | 数据管理和数据分析的聚合 | |
CN108319661A (zh) | 一种备件信息的结构化存储方法及装置 | |
Sharma et al. | Latent DIRICHLET allocation (LDA) based information modelling on BLOCKCHAIN technology: a review of trends and research patterns used in integration | |
CN104008441A (zh) | 一种自动提交版本库归档的任务管理系统及方法 | |
Altman et al. | Digital preservation through archival collaboration: The data preservation alliance for the social sciences | |
CN106557307A (zh) | 业务数据的处理方法及处理系统 | |
CN107451177B (zh) | 针对增加区块的单个勘误的区块链的查询方法及系统 | |
CN101013426B (zh) | 信息管理装置以及信息管理方法 | |
CN115114372A (zh) | 基于区块链的数据处理方法、装置、设备及可读存储介质 | |
CN110442585A (zh) | 数据更新方法、数据更新装置、计算机设备及存储介质 | |
Koch et al. | Moving from ISAD (G) to a CIDOC CRM-based Linked Data Model in the Portuguese Archives | |
AL-Msie'deen et al. | Detecting commonality and variability in use-case diagram variants | |
US20230129227A1 (en) | System and method for generating a table-driven mutable blockchain | |
CN105844171A (zh) | 用来进行档案同步控制的方法与装置 | |
CN112163024B (zh) | 一种基于层级关联结构的配置信息导出和导入方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |