我需要定义事实表或维度表吗?
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 列列表,然后坐下来决定您的模型。
还可以阅读一些关于数据建模的文章,并为您的应用确定最佳维度模型(星形或雪花形)。
【讨论】:
以上是关于我需要定义事实表或维度表吗?的主要内容,如果未能解决你的问题,请参考以下文章