如何在数据仓库建模过程和状态的历史?(How to model process and status

2019-09-18 06:52发布

比方说,我们有D_PROCESSD_WORKERD_STATUS的尺寸,而事实上F_EVENT与工人(谁主管)和“当前”状态的链接的过程(什么)。

该过程的状态随时间而变化。 768,16我们在存储F_EVENT每个进程/状态/工作人员一行,或每个进程/工人一条线,而“其他地方”每个状态的改变一行给定的进程/工人?

我是新来的数据仓库,它是很难找到相关的数据模型化的最佳实践/教程。

Answer 1:

读数据仓库工具包由拉尔夫·金博尔一个很好的介绍,三维建模。

这听起来像你存储在F_EVENT过程变化的事件。 如果这个过程有一个定义的开始和结束,我将建立一个快照事实表,将让你追踪的过程中随着时间的推移(只是每次从一个步骤过程移动到另一个更新该行)。

编辑:

我会尽力用您的尺寸例子一般情况下。

对于D_PROCESS,造型一个“过程”不是通常建模为一个维度,而你称它是“什么”,所以我要去这个重命名为“D_ACCOUNT”。

基本数据模型将是一个“税处理系统”,其中工人处理帐户,每个帐户/工人组合具有的其中这个过程目前为几个可能的“状态”的。

D_ACCOUNT
    ACCOUNT_NUMBER
    ACCOUNT_TYPE

D_WORKER
    WORKER_ID
    FIRST_NAME
    LAST_NAME
    BADGE_NUMBER
    SHIFT

D_STATUS
    STATUS_ID
    STATUS_NAME

现在,如果我要对已发生的帐户所有的“事件”,由工作人员进行报告,我可以建立一个事务级事实表F_EVENT:

F_EVENT
    ACCOUNT_ID
    WORKER_ID
    STATUS_ID
    EVENT_TIME_ID
    Metrics taken at time of the measurement (Cost, Worker time spent, etc)

我们称尺寸的独特组合标识一行事实表的粒度谷物

此表的晶粒帐户,工人,状态和时间。 它回答这样的问题“有多少时间在周三做了我的工人轮班3个支出处理帐户?” 或“有多少事件发生,改变处理状态为‘关闭’?

我不知道有多少这种类型的表会有所帮助。

相反,说你有兴趣在跟踪过程本身移动通过各种状态。 我要去假设状态总是向前移动的时候,从“未入门”,“处理”到“封闭”。

我要建什么金博尔所说的“累积快照事实表。

F_TAXPROCESSING
    ACCOUNT_ID
    WORKER_ID 
    CURRENT_STATUS_ID
    NOT_STARTED_DTTM
    NOT_STARTED_FLAG
    IN_PROCESS_DTTM
    IN_PROCESS_FLAG
    CLOSED_DTTM
    CLOSED_FLAG

此表的粮食是帐户,工人。 该表通过更新变化的状态,以及标志的日期/时间时的状态已经达到跟踪的“过程”。

这可以让你追踪的过程中随着时间的推移,让你看到有多少帐户都反应了“进行中”的状态,过了多长时间到那里,等等。



文章来源: How to model process and status history in a data warehouse?