如何创建一个数据集市

问题描述:

这是我在创建一个数据集市/仓库的第一次尝试,我就如何最好地设计架构有点困惑。项目背景:我最初创建了一个关系数据库,用于捕获有关我们客户的信息。一个简化的模式是这样的:如何创建一个数据集市

ClientTbl: 
ID:PK; 
FName:String; 
LName:String; 

ClientEDU(one to many) 
ID:PK; 
ClientID:FK; 
SchoolName:String; 
Degree:String; 
GPA:String; 

ClientJobs(One to many) 
ID:PK; 
ClientID:FK; 
OrganizationName:string; 
Industry:String; 
StartDate:Date; 
EndDate:Date; 
Salary:double; 
CityLocation: String; 

这是一个简化的例子。事实上,我有更多的表格拥有数千条记录。当我想要在这些表上运行查询时,它可能非常耗时。我似乎创建一个数据集市会有所帮助。这样,我们就可以对数据集市进行更新,每晚都会耗费大量时间。然后在我们的DM中查询可快速查询的数据。我只是在如何最好地设计模式方面遇到困难。实例的问题,我想在数据集市已经回答了,根据上面的例子表,是这样的:

% of clients that attend each school in our db 
% that have each degree in our db 
Avg salary of client 
Avg length of stay at a job 
% of clients that worked in each city, that is found in the db 

从我读书,我知道事实表将包含所有的计算值(平均工资,长度等),每个维度将包含数据(工作或教育),但我不明白他们是如何绑在一起。我的事实表对于每个客户都会有一排吗?只有一行?

任何帮助将是巨大的

感谢

+1

跑步 - 不要走路 - 去书店买Ralph Kimball的The Data Warehousing Toolkit。数据仓库有很多,这里的简短答案还不够。 – 2012-02-02 16:38:30

+0

是的,我其实刚买了一天。但事实上,我需要一个速成课程。这个项目即将到期,我没有太多时间阅读它lol – jason 2012-02-02 16:44:00

+1

“我没有很多时间阅读它”。那么你注定了。这并不简单。没有数据仓库的皇家之路。碰撞课程只会导致崩溃。干杯。 – 2012-02-02 16:55:02

这是一个困难的问题,因为它涉及到客户的人口统计摘要。

你有这似乎是事实喜欢的工作。它有一个持续时间和工资是衡量标准。我们知道他们是措施,因为他们有适当的单位。

由于工作的事实,什么是这一事实的尺寸是多少?

  • 客户

  • 时间开始

也许你知道的工作(地理,产业,例如)其他的事情。

时间是一个点的时间。这通常是与日期的表和所有日期落入各种报告类别:宿舍,周,会计期间等,等

客户是个人;人们并没有特别好的维度。他们有很多自己的维度。

选择1.“雪花”模式。将客户视为一种具有很多维度的事实,包括他们自己的地理位置和学位,以及学校和什么不是。

选择2.“人口统计”维度。这是学位课程摘要,GPA范围,学校名称等。这实际上是正确的工作事实和客户之间的联系。作业属于人口统计类别。许多客户也属于该类别。

我的事实表是否对每个客户端都有一行?只有一行?

事实表具有用于与该事实的各个方面相关联的事实每个可测量的实例一行。

一个工作事实有两个度量:工资,工期和至少对外部维度的引用:开始日期和人口统计。如果你有其他的作业维度属性(如地理或行业),这些是外键的工作。

客户人口统计将与一个或多个职位相关联。

对于地理或工业也是如此。

由于客户端是一种特殊情况,因此一个或多个客户端也将的FK引用指向适当的客户端人口统计维度行。

+0

谢谢S.Lott!绝对是更多的东西来看待! – jason 2012-02-02 17:03:16

我不认为“数据仓库”是你的灵丹妙药。

你应该集中精力,为什么你的结果是“费时”

你问是不是在所有不寻常的问题。

有些事情是关于..喜欢你真的有一个String学校名称作为主键到学校?

也许张贴模式的实际子集,并且您有困难的特定查询,那么你就可以得到关于如何改进这些实际的帮助。

+0

你好兰迪,我不确定你在“一个字符串学校名称为PK”中提到什么。在我的示例中,我将ID作为PK和SchooName作为属性。如果这会有帮助,我可以附上ER图(假设您可以在这里附上照片?) – jason 2012-02-02 16:56:32