
体系结构设计人员必须清楚如何对数据仓库中的错误数据进行处理。首先假设到达数据仓库的错误数据是某种异常。如果错误数据是批量地进入数据仓库的,那么体系结构设计人员就有必要找出惹祸的ETL工具并做出调整。有时,即使是使用了最好的ETL处理工具,仍然会有些错误数据进入数据仓库环境,那么体系结构设计人员应该如何处理这些错误数据呢?
至少有三种选择。每一种方法都是优势与劣势共存,没有一种是绝对正确或错误。但在某些条件下一种选择会比另一种选择好。
例如,假设7月1日在操作型系统中,账户ABC加入了一条5000美元的账目。7月2日在数据仓库中为账户ABC产生了这5000美元账目的一个快照。接着,在8月15日发现了错误。这一账目不是5000美元,而应是750美元。如何纠正数据仓库中的数据呢?
方法1:进入7月2日的数据仓库并找到错误的条目,然后使用更新功能,将500美元替换为750美元。这样做无疑是一种干净彻底的解决方案,但它却引发了新的问题:
· 数据集成被破坏。所有在7月2日与8月16日之间生成的报表都将失去一致性。
・更新必须在数据仓库环境中进行。
・许多时候不是要修正一个条目,而是有很多很多的条目要修正。
方法2:加入修正条目。8月16日加入两个条目,一条是-5000美元,另一条是+750美元。这是数据仓库中7月2日与8月16日之间数据仓库中最新数据的最好反映。但这样做也有一些缺点:
· 可能要修正很多条目,而非一个。要进行一项简单的调整也非常困难。
・有时候由于修正公式非常复杂,以致于根本不可能进行调整。
方法3:重新设置8月16日账户为正确数值。8月16日的账目反映了当时账户的余额,而不考虑以前的活动。8月16日加入一条750美元的条目。这种方法也有缺点:
· 及时简单地将账户重设为当前值需要对应用与过程进行约定。
· 这种重设的方法不能对过去的错误进行准确的解释。
方法3在月底不能结算支票支付账户余额时就可能会使用。你不会对银行都做了些什么创根问底,而仅仅是接受银行的解释并重设账户余额。
当错误数据进入数据仓库时,至少有三种方法可以对它们进行处理。根据不同的条件,选择一种方法可能比其他方法更优越。
资料来源:《数据仓库(第4版)》数据仓库环境
网友评论