首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >数据仓库-维度建模

数据仓库-维度建模
EN

Stack Overflow用户
提问于 2011-04-15 01:07:36
回答 1查看 717关注 0票数 1

我刚接触BI/数据仓库,在构建了一些简单的示例之后,我需要构建一个更复杂的结构。我的项目最初涉及产品许可证,我测量了按月/年和按程序售出的数量,并计算了许可证的数量。

现在的要求是从这些指标中引入跳跃。也就是说,当您遇到一组特定的许可证时,他们希望看到这些许可证的一个完全不同的指标。例如,如果在2011年3月售出了100个许可证,其中有多少许可证安装、激活和取消了产品。(我们跟踪该信息,但不在数据仓库中)。所以,我正在寻找最好的方法来做这件事……我想我要做的第一件事就是为安装、激活和取消添加三个维度--并且有三个事实表?或者每个许可证都有一个事实表,并有一行表示已取消、已安装或已激活?(因此,一个许可证可能会重复)。或者有一个事实表,有不同的字段用于安装,取消,激活?另外,您如何将一个事实表与另一个事实表关联起来?它是通过维度,还是它们可以以其他方式联系在一起?

任何帮助都将不胜感激!

编辑:

谢谢你的帖子。我也在想,第二种选择可能是正确的。但是在这个实现中,我有一个独特的问题。因此,衡量的事实之一是售出的许可证数量-当然是截止日期。假设我为已安装、已取消、已激活添加了一行。要求他们能够看到一个相关的事实。例如,如果我在给定的时间范围内添加单独的行,我就可以知道售出了多少行,安装了多少行。

但他们希望看到给定的时间表,购买了多少,以及其中有多少安装了。例如,如果时间范围是3月份,并且在3月份售出了100台,那么在这100台设备中,有多少台被安装了--即使他们安装的时间可能比3月份晚得多,因此行日期不会在他们认为这是一个常见问题的时间范围内? at....is?它是如何解决的?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-04-15 01:22:36

我假设我要做的第一件事是添加三个维度,分别是安装、激活和取消--并且有三个事实表?

不怎么有意思。许可证销售是一个事实。这是有代价的。

许可证销售具有日期、产品、客户和计划等维度。

“安装”或“激活”是许可证的状态更改事件。每个许可证都有“事件”(销售、安装、激活等)

因此,许可证有一个“销售”事实,一个“安装”事实和一个“激活”事实。其中每一个(至少)都是与时间的关系。

或为每个许可证设置一个事实表,并为已取消、已安装或已激活设置一行?(因此,一个许可证可能会重复)。

这提供了最大的灵活性,因为每个事件都可以具有多个维度。然后可以组织一系列事件以提供许可证的历史记录。

这样做效果很好。

您通常希望为简单的计数和总和创建汇总表,这样就不必遍历最常见的仪表板指标的所有事件。

要求他们能够看到一个相关的事实。

正确的。您正在将事实表中的几行连接在一起。事件被出售的行,外部连接与事件安装的行外部连接与事件被激活的行,等等。它只是外部连接之间的事实。

所以。统计三月份的销售量很容易。Event = "Sale“。时间是指time.month = "march“的所有行。很简单。

成为安装量的三月份销售量。相同的“三月销售”where子句外部连接了这些许可证的所有“安装”事件。"sales“的Count与count(*)相同。安装的次数可能会更少,因为外部联接会放入一些空值。

成为激活的3月份的销售计数。“三月销售”where子句外部连接了所有“激活”事件。请注意,激活没有日期限制。

,还是只有一个事实表,不同的字段分别代表已安装、已取消、已激活?

这并不能很好地工作,因为表的列决定了一个业务流程。该业务流程可能会发生变化,您将无休止地调整事实数据表中的列。

已经说过,它不能“很好”地工作,这意味着它没有提供终极的灵活性。在某些情况下,您不需要终极灵活性。在某些情况下,行业(或法规)可能会定义一个相当固定的结构。

另外,您如何将一个事实表与另一个事实表相关联?它是通过维度,还是它们可以以其他方式联系在一起?

按定义标注尺寸。事实表只有两样东西--度量和FK到维度。

一些维度(如"license instance")是退化的,因为维度可能除了主键之外几乎没有可用的属性。

因此,您有一个与许可证相关的“已售出”事实,一个与许可证相关的可选“已安装”事实,以及一个与许可证相关的可选“激活”事实。许可证是一个对象ID (数据库代理键)和--也许--许可证标识符本身(可能是许可证序列号或数据库之外的其他东西)。

在做更多事情之前,请使用Ralph Kimball的数据仓库工具包。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5666924

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档