我需要定义事实表或维度表吗?

Posted

技术标签:

【中文标题】我需要定义事实表或维度表吗?【英文标题】:do I need to define Fact Table or the Dimension tables? 【发布时间】:2014-07-18 10:03:31 【问题描述】:

我正在尝试使用 OLTP 数据库构建数据仓库,并且想知道是否需要先定义事实表或维度?

请帮忙?

问候 修行者

【问题讨论】:

您是在问应该首先使用 DML 创建什么,还是应该首先设计什么? 是的,我应该首先设计什么,如果可能的话,也应该首先创建什么.. 【参考方案1】:

这是一个非常迭代的过程,通常你会这样:

    收集业务需求 识别事实和维度 设计 实施

当然非常简单。步骤 1-3 通常占用整个项目的 80% 左右,并且由许多子步骤组成。

我建议您阅读 Kimball 关于主题的书: http://www.amazon.com/The-Data-Warehouse-Toolkit-Dimensional/dp/0471200247

-- 更新

我发现了另一条指导方针,可以引导您创建成功的 BI 解决方案:

    创建数据源 创建数据源视图 创建一个或多个维度 创建一个立方体 部署数据库

这将使您得出结论,即您需要已经准备好维度和事实。这是对是错。

您可能会发现一次收集所有需求是不可能的,所以您应该从(并相应地创建表格)开始:

    识别和创建维度 识别和创建事实 连接这些,添加多维数据集计算,任何需要的 KPI

Source

随着您从客户那里了解更多信息,请重复步骤 1-3。

这种重复性来自多种因素。客户并不总是了解他们的所有需求,有时甚至可能不是功能性需求,他们怎么会知道。作为 DEV,我们不是领域专家,通常我们边走边学。

【讨论】:

【参考方案2】:

在最简单的语言中,维度是您希望过滤数据的属性。而事实表包含与维度主键链接的实际数据。

建议您先收集业务需求并收集 OLTP 列列表,然后坐下来决定您的模型。

还可以阅读一些关于数据建模的文章,并为您的应用确定最佳维度模型(星形或雪花形)。

【讨论】:

以上是关于我需要定义事实表或维度表吗?的主要内容,如果未能解决你的问题,请参考以下文章

Pentaho Kettle 是不是创建维度表和事实表

我可以有一个描述性属性很少的事实表吗

事实和维度:动态维度 [关闭]

在另一个事实表中使用退化维度

我的事实表是不是需要时间维度来防止重复?

OLAP 中的通用事实和维度表