1

我正在寻找跨 2 个表验证数据,其中 TableA(在用户源数据库 - DB2 中)是 TableB(在数据仓库 - DB2/Netezza 中)的副本。

由于复制数据的过程不稳定并且每天都在运行而不是实时运行,因此目标数据库中存在差异,我需要找出并找到。此外,不希望在服务器上增加很大的负载,这可能会破坏组织的正常运营。

我目前正在执行以下操作:

a) SUM checks on all numeric fields 
b) MAX / MIN checks
c) Row Count checks (COUNT(*))
d) Checking the Data Types on both the DB's to be equal
e) Checking the DISTINCT count of the PRIMARY fields
f) Check MAX of Date on which the row was copied over (we put a new column to specify when that row was copied over)

除了上述之外,还有没有其他更简单的方法可以在单个 SQL 查询中完成,不会占用数据库服务器上的太多资源?

另外,有没有人知道一种方法来匹配 DB2-DB2 和 DB2-Netezza 表中的行与行,就像使用 SAS 表一样?

笔记:

a) Netezza does not have the concept of UNIQUE or PRIMARY, so Referential Integrity and UNIQUE checking is not valid.
b) All the tables have > 100M rows, so running a simple RowCount on each table can sometimes take upto 30-45 mins
4

1 回答 1

0

我想知道您的数据中是否有一两个字段可以让您将其识别为增量数据或差异数据,如果没有,那么您可能需要查看该数据模型。另外,我肯定会首先关注基础设施,并使数据复制过程稳定可靠。

另一方面,很难想象为什么要在其他地方的数据仓库中实现数据副本,该数据应该被查询用于分析目的,使用数据仓库报告工具,而且通常至少有一天的历史. 所以那里没有实时的。

您正在查找的查询可能存在,但在您描述的具有 >100M 行和 45 分钟 RowCounts 的系统中,也许,也许它可能需要永远和一天。

底线是,恕我直言,您可能看错了方向。

于 2015-11-04T08:04:54.653 回答