【问题标题】:Transaction lifecycle tracking in data warehouse数据仓库中的事务生命周期跟踪
【发布时间】:2011-08-11 18:04:24
【问题描述】:

您如何存储与数据相关的事实?以及如何配置度量?例如,我有一个跟踪订单生命周期的数据仓库,它会更改状态 - 已订购、已发货、已退款。对于像“退款”这样的状态,它并不总是存在。所以在我的模型中,我使用了事务存储模型,所以每次订单改变状态时,它都是事实表中的另一行。因此,对于 4 月下达并在 5 月退款的订单,将有两行 - 一行状态为“已订购”,另一行状态为“已退款”。因此,如果用户想查看 4 月份下达/订购的所有订单,并想查看有多少“那些”订单被退款,他会怎么看?这是一个将在运行时运行的 MDX 查询吗?这是我可以存储在多维数据集中的计算度量吗?我该怎么做?我的思考过程是用户可以在数据透视表中使用它应该是一个事实,但我不确定.....

【问题讨论】:

    标签: data-warehouse business-intelligence olap-cube dimension fact


    【解决方案1】:

    对此进行建模的一种方法是创建一个无事实的事实表来对事件进行建模。您的 ORDERS 事实表对交易金额、客户信息等进行建模,而无事实事实表(可能称为 ORDER_STATUS)对与特定订单相关的任何事件进行建模。

    使用此模型,通过检查无事实事实表中是否存在记录,可以根据订单状态轻松计算或添加所有交易。

    【讨论】:

    • 您能补充一点细节吗?我对无事实事实表不太熟悉...
    • Factless Fact 表只是对维度外键进行建模,没有任何测量的事实,即它对维度键之间的关系进行建模。阅读更多here, with a relevant example
    • 关于如何解决这个问题还有其他思路,例如stackoverflow.com/questions/11114988/…。我仍然不知道该往哪个方向走。
    • @Franklin,在过去的几年里,你有没有得到最佳实践来分享?
    • @Datajam,所以ORDER_STATUS其实是一张记录订单状态变化的表?如果是这样,它如何加入ORDERS 事实表?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-06
    • 2010-09-17
    • 2022-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多