u***t 发帖数: 3986 | 1 【 以下文字转载自 Programming 讨论区 】
发信人: usatt (Easy Go Lucky), 信区: Programming
标 题: DW BI ETL 问题 - Data Validation and Recordset Comparison
发信站: BBS 未名空间站 (Fri Jul 15 16:08:29 2011, 美东)
我目前在某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 (2 dimensions) 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的"什么的? | M**4 发帖数: 731 | 2 在你的第一个方案里面搞个hash tree就解决了。
简单
【在 u***t 的大作中提到】 : 【 以下文字转载自 Programming 讨论区 】 : 发信人: usatt (Easy Go Lucky), 信区: Programming : 标 题: DW BI ETL 问题 - Data Validation and Recordset Comparison : 发信站: BBS 未名空间站 (Fri Jul 15 16:08:29 2011, 美东) : 我目前在某Forture 100公司主持data migration的自动化测试, 坑爹的offshore把简单 : 的问题搞大搞复杂来多要钱, 弄得新的数据库妖精一样... : !! 问题: 我的approach还能再好点吗? : Source: SQL Server 2005 : Target: DB2 : 如何测试Data Migration? 两种方法:
| u***t 发帖数: 3986 | 3 OK target里的search快了, 但也是要loop过source里的millions行的records...
【在 M**4 的大作中提到】 : 在你的第一个方案里面搞个hash tree就解决了。 : : 简单
| u***t 发帖数: 3986 | 4 忘了第三种直接从recordset A中拿record直接到target database tables 中run
query检查
这样一个loop, 上面第一种方法两个loop(nested) | Q**J 发帖数: 23283 | | b******e 发帖数: 3348 | 6 一直以为U大已经退休不工作了。。。。。。
简单
【在 u***t 的大作中提到】 : 忘了第三种直接从recordset A中拿record直接到target database tables 中run : query检查 : 这样一个loop, 上面第一种方法两个loop(nested)
|
|