我们有一个BPMS(业务流程管理套件)。对历史和执行报告的需求日益增加。 BPMS中的数据模型不适用于历史查询。所以我们正在分析可能的解决方案。
解决记住:
的想法是在流事件数据推到外部数据库。 BPM中的典型事件是:创建新流程实例,更改状态,执行流程中的一个步骤或更改流程实例的状态。数据保险库除了星型模式之外还有其他有趣的选择。假设有两个集线器:PI(processitem实例)和OU(组织单位)以及一个链接表LINK_PI_OU。每次将处理项目分配给组织单位时,都会将新行添加到链接表中。链接表中的LOAD_DATE包含添加此记录的日期时间。带有最新LOAD_DATE的链接表中的记录显示了流程实例的当前分配。
问:
让我们假定企业想要知道谁所有打开的程序实例当前分配由组织单位分组。
查询如何将看起来像这个报告?它可以真正表现吗? 还是我在完全错误的方式?
您的示例查询并没有真正看起来像一个历史查询,因为它是开放的流程实例及其当前任务(由目前的OU想必分组)。 – 2011-04-11 04:31:46
是的,你是对的。重点是,对于所描述的模式,很容易创建一个历史的问答。问题是,我是否也可以将此模式用于操作查询。 – Waldemar 2011-04-11 11:40:27
@Waldermar这将取决于很多关于您的架构(显然从实时数据的数据仓库的更新速度)。有时在DW中,如果您没有特定的快照样式时间粒度,因为恒星可能是高度事务性的(即所有当前事实不共享公共的data_dt_id),因此很难做到每日点。另一方面,对于每日谷物而言,通常就像基于MAX(data_dt_id)拉取所有东西一样简单。我发现尺寸模型非常高效,而且与传统的标准化实体模型相比,查询也非常容易。 – 2011-04-11 14:17:50