近来一直在做数据迁移相关的工作,本以为数据迁移会是个简单的工作但做下去之后就立刻打消了这个想法,这是一项非常庞杂的工作并且工作内容也非常的不轻松。
迁移前期需要考虑的几个问题
- 迁移源与目标的对应关系。
- 划分阶段是非常明智的选择。
- 如何对迁移后的数据进行验证。
- 需要哪些类型的工具来支持迁移的过程。
- 迁移后的验证场景数据初始化。
迁移工具
迁移工具这块我们使用了Kettle完成需要进行复杂逻辑转换的场景,而结构逻辑简单不涉及到的数据分析和转换但结构数量非常大的场景我们选择构建自己的工具包来做。
迁移工作
总结我们在进行迁移工作时遇到的问题,
- 耗时最多的不是沟通/交流而是迁移后的验证流程,因为我们是业务系统的迁移,迁移后还需要做非常多的各子系统重新初始化工作而这些工作如果独立出来也可以做成一个不小的工具包。
- 无法回退,迁移完成后进行的业务流程有的跨多个子系统,这让我们在没有提出将任务划分阶段来做的想法时让大家很被动,又认真的实践把大问题分解的思想。
- 验证场景,迁移源与目标上的应用程序场景业务流程一致但实现技术上差别较大,涉及到的业务知识面非常广所以需要协调到多个熟悉不同子系统的业务和开发人员共同验证,但这样会非常耗费成本。
- 迁移过程中的需求变化,这一点我们再次验证了随着大家对某件工具的理解越发的深入总是会有新的需要新的想法和改进意见。