数据仓库记录数时间线

Datawarehouse Number of records timeline

我的 ERP 数据库中没有销售订单的历史信息。 我有一个包含销售订单的 table。销售订单审核通过后转化为发票并删除记录销售订单。

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

我想按日期查看我有多少销售订单。例如,我想查看每月总价值 XXX 的平均 X 订单。

我想在哪里添加列 "Valid from" 和 "Until to"。 从那里我被阻止了,我最初虽然在哪里使用 SCD 但据我所知,不可能在主键上这样做。

我是否需要创建一个新事实 table(就像我在 ERP 数据库中所做的那样)? 我不想在销售订单 table 中也对插入触发器或删除触发器进行编程。我们在一天结束时清理了销售订单table,它需要在我们晚上更新数据仓库时更新。 对于这种情况,我不需要考虑订单不会被批准,我会存储不相关的记录。

据我所知,您的数据模型很糟糕。

案例

有一个销售订单table。此 table 中的记录未保留(例如状态更改或简单复制到 table "ordered")但已删除。

这是第一个错误。

其次,您说您不想听删除触发器。不幸的是,据我所知,删除 一天中的每个时间都可能发生 。因此,从销售订单 table 收集数据的作业必须每分钟 运行 至少在批准速度非常快的情况下。这也是一个有问题的设计决定。

接近

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

然后这个table,如果它包含了所有信息,可以用来做数据分析。

问题

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

当您对流程的步骤有了更清晰的概念时,使用数据会变得更加容易,例如一个 DWH。但是,如果事先没有明确定义至少状态更改的流程,即使是 DWH 也无济于事。