Datawarehouse记录时间轴数

时间:2016-09-14 12:22:52

标签: data-warehouse erp scd

我的ERP数据库中没有销售订单的历史信息。 我有一张包含销售订单的表格。销售订单获得批准后,将在发票中进行转换,并删除记录销售订单。

我可以在ERP中编写一个只包含我需要的信息的历史表。我认为这是应该由数据仓库解决的(也是出于个人兴趣)。

我希望看到我的销售订单到目前为止有多少。例如,我希望看到我按月平均得到总价值为XXX的X订单。

我的想法只是添加“有效期”和“直到”的列。 从那里我被阻止,我的初始虽然在哪里使用SCD,但据我所知,它不可能在主键上这样做。

我需要创建一个新的事实表(就像我在ERP数据库中那样)吗? 我不想在插入触发器上编程或从销售订单表中删除触发器。我们在一天结束时清理销售订单表,当我们在夜间更新数据仓库时需要更新它。 对于这种情况,我不需要考虑订单不会被批准,而且我会存储不相关的记录。

1 个答案:

答案 0 :(得分:0)

对于我可以收集的内容,您会遇到错误的数据模型。

<强>案例

有一个销售订单表。此表中的记录不会被保留(例如,状态已更改,或者简单复制到表中&#34;已排序&#34;)但已删除。

这是第一个错误。

其次,你说你想要听删除触发器。不幸的是,据我所知,删除可能会在每天的每个时间发生。因此,从销售订单表中收集数据的工作必须至少每分钟运行一次,如果批准可以非常快速地进行。这也是一个值得怀疑的设计决定。

<强>方法

就个人而言,我不会从DWH开始。我会从一个简单的工作开始,当插入触发器出现时,它将填充新的销售数据。这是因为delta检查会随着时间的推移而变得昂贵。

然后,如果该表包含所有信息,则该表可用于数据分析。

<强>问题

但是,您还需要在取消订单时识别流程。你怎么知道这些订单被删除是因为它们被取消而不是因为它们被批准了?

如果您在流程步骤中确实有一个更清晰的概念,那么在以下步骤中使用数据将变得更加容易。一个DWH。但是,如果事先的流程至少没有明确地定义状态变化,那么即使是DWH也不会有所帮助。