2

现在的情况:

我们有一个 BPMS(业务流程管理套件)。对历史和操作报告的需求不断增加。BPMS 中的数据模型不是为历史查询而设计的。因此,我们正在分析可能的解决方案。

心中的解决方案:

这个想法是将有关事件的数据推送到外部数据库。BPM 中的典型事件是:创建新流程实例、更改状态、执行流程中的步骤或更改流程实例的状态。Data Vault 是除星型模式之外有趣的替代方案之一。假设有两个 Hub:PI(流程项实例)和 OU(组织单位)和一个链接表 LINK_PI_OU。每次将流程项目分配给组织单位时,都会在链接表中添加一个新行。链接表中的 LOAD_DATE 包含添加此记录的日期时间。链接表中最新 LOAD_DATE 的记录显示了流程实例的当前分配。

问题:

假设企业想知道所有打开的流程实例当前按组织单位分配给谁。
此报告的查询将如何显示?真的可以高效吗?还是我走错了路?

4

2 回答 2

1

一般而言,我不认为 Data-Vault 旨在成为最终用户报告层甚至是虚假事务系统。

我对您的架构并不完全清楚,但在我的理解中,DV 是一个历史存储库,用于保存为(Kimball/Inmon)数据仓库提供数据的企业的所有数据。所以在高层次上......

交易系统 => DV => DWH => (cubes =>) 用户

在这种情况下,我不会向 Data Vault 提出查询,而是编写一些 ETL 来填充数据仓库并在 ​​DWH 提出查询。

我猜另一种观点是,您可以在 DV 之上构建一组视图,这将对用户隐藏结构,但我认为我有点纯粹,会选择 DWH。

于 2011-04-14T13:15:26.740 回答
1

正如@Marcud D 所说,Data Vault 是数据仓库的模型,通常在使用 DV 建模时,您必须从 DV 构建数据集市以用于报告目的。我认为组织单位应该建模为卫星表,而不是集线器表。因此,无论如何,您应该构建一个查询以从 DV 模型提供特定数据集市,然后将其用于报告目的。

于 2011-04-19T09:48:12.957 回答