我正在研究数据仓库,我正在努力弄清楚如何最好地验证来自我们的数据清理(规范化)数据库的数据是否正确地进入我们的数据集市。我已经完成了一些搜索,但到目前为止的结果更多地讨论了确保约束等事情到位以及您需要在ETL过程中进行数据验证(例如日期有效等)。维度非常简单,因为我可以轻松地利用主键或编写一个非常简单且可验证的查询来获取数据。事实表格更复杂。
有什么想法?我们试图让主题导出非常容易运行一些查询,查看数据清理数据库和数据集市中的一些数据,并在视觉上比较两者以确保它们是正确的。
答案 0 :(得分:4)
您可以通过在其他地方实施相同数据操作的简化,简化子集并比较结果来测试事实表加载。
您至少两次计算相同的总数,计数或其他数字。从事实表本身开始,一旦完成加载,一次从一些其他源开始:
如果您在数据库中执行此操作,则可以将每个测试编写为查询,如果一切正确则不返回任何记录。返回的任何记录都是例外:x by(y,z)的计数不匹配。
有关更多推荐,请参阅ConcernedOfTunbridgeWells的优秀post。
答案 1 :(得分:0)
虽然如果你进行大量的清理或转换它有一些缺点和潜在的问题,我发现你可以通过从星型模式重新生成输入文件来转发输入文件。然后简单地将输入文件与输出文件进行比较。可能需要进行一些按摩才能使它们匹配(一个是左手填充,另一个是右手填充)。
通常,我有一个程序使用与ETL相同的布局并进行比较,忽略了字段内的对齐。此外,可能必须对文件进行排序 - 我使用了命令行排序。
如果你的ETL转换不正确并且转换不正确,那么这个方法仍然可能没有显示DW中的每个问题,我不会声称它有完全覆盖,但它是一个相当不错的第一次打击在每个负载的回归单元测试中。