0

让我们以人力资源数据库为例。人力资源人员日常使用的事务数据库处理每天发生的所有招聘和解雇。还有一个从该事务数据库中提取的维度数据仓库。

假设延迟足够低,以下哪个论点将被视为“最佳实践”?

1)事务数据库应该只需要跟踪该数据当前的状态。它不应该跟踪缓慢变化的数据(例如,特定员工曾担任过哪些经理的历史,他的薪水如何随着时间的推移而变化,等等)。ETL 过程应该检测过渡数据库中的变化,并更新数据仓库中缓慢变化的维度。

2)事务数据库不仅能够跟踪它自己的历史信息。如果某些东西在 ETL 会话之间发生了两次更改,那么您将永远失去第一次更改。Dimensional 数据库的主要目的是提高报表中的查询性能,因此它仍在发挥作用。这也使 ETL 过程更快、更简单。

我觉得这两个论点都有优点,如果它们都是有效的论点,我很乐意在它们之间进行选择。

我错过了一些没有被考虑的东西吗?

其中一个论点是完全错误的吗?

4

1 回答 1

3

我认为@marek-grzenkowicz 所说的是正确的。如果 HR 事务/运营系统的业务需求表明需要更改历史记录,则它们属于事务/运营系统。同样,如果业务需求声明需要此历史记录(或者可能是不同粒度级别的历史记录),那么仓库也会存储该历史记录。历史可能存储在两个系统中。

我也推荐“数据仓库工具包”。我现在正在阅读它,它似乎有很多经过时间和现场测试的设计模式来对您的数据进行建模。这本书的第 3 版几周前刚刚出版。

于 2013-07-09T20:37:43.873 回答