【问题标题】:How do you verify the correct data is in a data mart?您如何验证数据集市中的数据是否正确?
【发布时间】:2010-03-10 13:42:10
【问题描述】:

我正在开发一个数据仓库,并试图弄清楚如何最好地验证来自我们的数据清理(规范化)数据库的数据是否正确地进入我们的数据集市。我已经进行了一些搜索,但到目前为止的结果更多地涉及确保诸如约束之类的事情以及您需要在 ETL 过程中进行数据验证(例如日期有效等)。维度非常简单,因为我可以轻松地利用主键或编写一个非常简单且可验证的查询来获取数据。事实表更复杂。

有什么想法吗?我们试图让主题导出变得非常容易,以运行几个查询,查看来自数据清理数据库和数据集市的一些数据,并直观地比较两者以确保它们正确。

【问题讨论】:

    标签: database data-warehouse datamart


    【解决方案1】:

    您可以通过在别处实施相同数据操作的简化、精简子集并比较结果来测试事实表负载。

    您至少两次计算相同的总数、计数或其他数字。一次来自事实表本身,在它完成加载之后,一次来自某个其他源:

    • 直接源数据,控制源和事实之间的所有清理步骤
    • 已知正确的源系统报告

    如果您在数据库中执行此操作,您可以将每个测试编写为一个查询,如果一切正确,则不返回任何记录。任何返回的记录都是例外:x by (y,z) 的计数不匹配。

    有关更多建议,请参阅 ConcernedOfTunbridgeWells 的出色 post

    【讨论】:

    • 感谢您的信息。因为昨天我找不到任何东西,所以我开始做类似的事情,我在数据集市中查看数据块并将这些数据块与它来自我们清理数据库中的特定记录进行比较。但是,我确实喜欢两次计算的想法。我们只是不希望我们的验证看起来像我们的 ETL 流程。
    【解决方案2】:

    虽然如果您进行大量清理或转换,它有一些缺点和潜在问题,但我发现您可以通过从星型模式重新生成输入文件来往返输入文件。然后简单地将输入文件与输出文件进行比较。可能需要一些按摩才能使它们匹配(一个是左边的衬垫,另一个是右边的衬垫)。

    通常,我有一个程序使用与 ETL 相同的布局并进行比较,忽略字段内的对齐。此外,可能需要对文件进行排序 - 我使用了命令行排序。

    如果您的 ETL 进行了不正确的转换并且您的转换不正确,那么这种方法仍然可能无法显示 DW 中的所有问题,我不会声称它具有完整的覆盖范围,但这是一个很好的第一次重击在每个负载的回归单元测试中。

    【讨论】:

      猜你喜欢
      • 2012-07-06
      • 2014-03-13
      • 2018-07-26
      • 2021-11-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-31
      • 1970-01-01
      相关资源
      最近更新 更多