一些数据迁移工作心得

admin2024-04-03  0

1、确定新旧系统的转换策略
旧系统-新系统是直接转换、并行转换、还是分段转换对数据迁移工作的影响很大。直接转换最简单,将旧系统停服后,一次性全量迁到新系统即可。后两种在全量迁移的基础上,还要处理旧系统的增量数据。此时,可以在第一次迁移的数据表中加入一些备注标记。等系统并行结束后,再补迁产生的增量数据。如果增量数据不多。也可采用手工录入的方式,将旧系统后续数据补全。并行和分段还有种情况需要处理的,同时使用新旧系统产生数据上的冗余和冲突。此时,需要细致的比对。消除该类脏数据。

2、迁移数据范围控制
只迁需要的数据是基本原则。一般地,跟客户沟通时,尽可能的压缩迁移范围。范围越小越省时省时,还不容易出问题。这些范围包含数据范围,时间范围、数据类型范围等。比如只迁移哪几个模块的数据、只迁xxx年以后的数据、只迁状态为xxx,xxx的数据等。如果是强制性的全量迁移,最好也确认下是否有脏数据、边缘数据(日志等)可以排除。

3、迁移时机
一般选在周末、节假日等用户上线频率低的时机,不解释。

4、采用合适的迁移工具
刚接触迁移那会,学了一小段时间kettle迁移工作。感觉是学习成本高,各种用不顺手。后来放弃了。然后尝试使用excel工作,将迁移数据导出CSV文件。然后将csv文件解析到代码中。在代码中做数据转换处理后,生成sql脚本。效果也不咋理想。后面手搓了一款基于多数据源的迁移工具。效果还行。原理很简单。将要迁移的数据源和目标地址数据源直接放到业务工程里面。读数据时,使用迁移数据源,将数据读到一个map集合中,然后将该map集合直接转成业务代码里面的实体类。用Dao对象插入目标数据库中。在java代码中操作就来到了程序员熟悉的领域了。相当顺手。

5、迁移数据治理
治理策略有清洗、转换、补默认值、流程状态匹配、数据拆分、数据合并、提高范式、消除冲突、策略匹配、加密策略不一致等方面。清洗方面,比如清掉状态不匹配的数据、清掉不同迁移范围内的数据等。转换方面,比如数据类型转换,标识转换,y-1,n-0,男-1,女-2,补默认值方面,数据移到新系统后,设置合理的,原数据没有的默认值等。数据拆分方面,比如原字段原子性不满足,需拆成多个字段等。

6、系统附件的迁移
除了数据库迁移外,还有个重要的工作就是旧系统一些附件的迁移。有些系统使数据库二进制字段直接存文件的。有的采用本地文件,有使用mino的。迁到新系统后,要与新系统的路径策略、存储策略做匹配。

7、数据完整性验证
验证是一项很重要的工作,一般采用抽样检测的方式。抽样检测一般针对单表数据的数据完整度,参考的是旧系统的数据条数、数据状态、数据内容等。对数据进行抽样检查。包含核对数据条数、核对数据状态、核对数据内容准确性、核对附件是否正常打开下载等等。根据抽样检测的结查,反复调整迁移代码。反复重迁,直到与旧系统匹配。该过程可以反复数次数十次之多。是典型的慢工出细活的过程。不能急燥。

8、数据匹配度验证
主要是验证数据完整性验征后,数据已具备实际使用的价值。但还需要确认数据是否水土不服。确认前,需要作一次迁移数据备份。再对数据进行走流程操作、CRUD操作、客户确认等方式。验证数据是否使用顺畅。如果是一些细小的问题,可以在新数据库中通过sql脚本直接调整。或者用脚本从旧系统数据库抠出需要的那一小部份缺失的数据。补填的新系统等操作。 进行小范围的数据调整。

9、数据迁移完毕后的工作
在新系统旧数据使用的前期,收集客户反馈的数据问题是一项非常有必要的工作。正常来说,只是一些细小的漏点,如果碰到大的漏洞。就要停服处理等。具备情况具体定。

10、其他
凑个10条
数据迁移是一项慢工出细活的工作,一次性迁移到位是不可能的。需要反反复复和清晰的迁移条理,还要求对新系统的业务逻辑很熟悉。保持良好的心态很重要。迁移过程最好不要有其他事项干扰。因为迁移数据周期紧,连续工作时间长,大部份的数据都有一些临时性的考虑,一但分心,容易造成逻辑中断。重新理顺很费精力。

随便说了哈,仅代表个人观点。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明原文出处。如若内容造成侵权/违法违规/事实不符,请联系SD编程学习网:675289112@qq.com进行投诉反馈,一经查实,立即删除!