我目前在某Forture 100公司主持data migration的接收测试, 坑爹的offshore把简单
的问题搞大搞复杂来多要钱, 弄得新的数据库妖精一样...
问题: 我的approach还能再好点吗?
Source: SQL Server 2005
Target: DB2
如何测试Data Migration? 两种方法:
1. Sequential comparison
从Source DB得出个recordset A;
从Target DB的出个recordset B;
从A取第一个record, 到B用loop来找, 找到看B中的相关data是否正确.
(* 我枪弊了这个方案! Millions of rows, dozens of millions of fields. 一
个table 都要用无穷无尽的时间来execute. 而且很可能就out of memory. 除非是spot
check, 否则不可行)
2. Parallel comparison (*我的方案)
从Source DB得出个recordset A;
从Target DB的出个和Recordset A identical的recordset B;
用SQL statement, 用Union All, Except等来找出mismatched的records
(* challenge是CTLLD的target DB被整得极其恶心, 和source DB牛头不对马嘴.
比如source 的 一个record, 到了target 就变成4个record分别在8个table里, 所以,
写出recordset B需要对business rules十分熟悉而且对工作人员的SQL 水平有要求...
这就是我目前的不爽的地方.)
哪位大侠有更好的建议? 或者来个安慰比如"没事, 这事本来就是很tedious的"什么的?