数据迁移小结
2018年4月,深圳华侨城绿道
首先,数据迁移(Data Migration)是什么?指在不同存储类型、格式和计算机系统之间数据转换。简单的说,就是从一个库迁移到另一个库。其次,应用负责人提供新旧系统映射规则(Mapping),包括直接迁移、默认初始值、需逻辑转换等。最后,迁移组按迁移规则文档写代码。
站在开发人员角度,写Data Mapping需要考虑些啥:
一、迁移范围
1、迁移的那几张表必须迁移?哪些字段必须迁移?不迁移的字段默认什么值?
2、哪些表可不迁移?哪些字段可以不用迁移,不迁移是否有隐藏的风险?(如:旧线系统按半年出交易历史报表,则旧表交易历史半年以上需要迁移)
3、是否存在新表必要字段在旧表中没有?新旧表字段类型、长度不同,如何转换?
4、需迁移一共有多少条记录?
二、人工查验
1、迁移表之间是否存在关联性、如何关联?
2、关注新旧系统,相同字段不同状态的变化。(因新旧系统业务差异,可能导致业务标识的状态也会有差异)
3、查看字段数据转换是否正确?
1)直接迁移:原封不动搬过来,可关注字段长度和精准度;
2)字段运算:需对一个或多个字段进行运算;
3)参数转换:通过一定KEY值查找参数表,获取固定字段或长度;
4)字符处理:新系统字段类型不兼容,可手工补录数据、或按一定规则重新生成;
三、质检SQL
1、通过执行SQL,检查有无字段遗漏迁移;
2、检查字段的取值是否在值域范围内;
3、检查数据条数,关键表中有效记录和无效记录是否一致;
四、联机测试
1、通过运行查询交易,检查数据是否错位等;
2、检查交易能否通过?若失败原因是什么?其他迁移表是否存在类似问题?
五、批量测试
1、迁移数据批量是否报错?原因什么?
2、检查通过后是否与预期结果一致?
对应Data Mapping,个人觉得重点关注表与表直接的关系。比如表A的一个字段发生变化的同时,还有那些表字段会同步更新以及什么时候产生变化。
若提供的迁移规则不对,就算迁移后的数据符合规则也是不对的,可参考以往项目的文档。后续再考虑迁移的完整性。
END