2017-05-31 25 views
0

我有一个需求来计算问题跟踪软件(Jira)中的生产力。想法是,我想通过不同的发展阶段(如针对其中特定领域的问题的审计追踪)来捕捉数据。用于定义生产力度量的数据建模

现在我想要构建一个数据模型,使我能够捕获像avg这样的指标。花费在两个阶段之间移动的时间量(例如,进行中> UAT)。平均。时间为每个开发人员等

以上审计跟踪视图就会给我数据,这种格式

Audit ID | Issue ID| Developer | Issue-stage| Data_Update_dt 
A001 | 101 | D01 | In Progress| 31-May-17 00:25:00 
A002 | 101 | D01 | UAT | 31-May-17 06:25:00 

我想了解设计计算A002和A001,时间REQD之间的差异,从正在进行中移动到UAT。什么是最好的方式来做到这一点。

请指教。

+0

我正在使用的RDBMS是Oracle – Abhi

回答

1

我会创建一个具有“累积快照事实”作为其中心事实的维度模型/星型模式,并且每个问题在系统中移动时都会有一行。

Accumulating Snapshot Facts

在事实表你会包括关键日期/时间为每个阶段。您还可以为事实添加“延迟”措施,预先计算为一个阶段与下一个阶段之间的差距,和/或在一个阶段花费的时间。

事实将被日期,时间和开发人员的维度包围。

然后,您将能够计算这些滞后时间的平均值,并且能够由开发人员进行分析。

+0

谢谢。使用lag()计算时间是可以尝试的。我正在考虑在scd类型2的行中出现某些问题,因为当新记录添加到表中时,我会结束记录并计算每个阶段花费的时间,此时这将是记录创建的dt和结束dt之间的差异。 – Abhi

+0

虽然你可以做一个2型SCD。它通常用于维度,但如果确实需要,您可以根据事实做到这一点。然而,我认为最好在一个事实行中作为累积的快照事实完成,其中记录了票据到达每个状态的日期和时间的单独日期/时间,例如,创建日期,devdonedate,testdonedate,donedate。 – Rich

相关问题