1

我正在使用 SQL Server 2008 和 Analysis Services 创建一个仓库。我已经设法创建和填充维度表,但是我在编写用于加载事实表的 SQL 时遇到了很多麻烦。一方面,我不确定如何使用维度表中的 PK 加载事实表的键。我尝试编写一个包含一系列 JOIN 的查询来获取我想要的键和度量,但是语句变得如此复杂以至于我迷路了。

这是我必须使用的星型模式:

http://i.imgur.com/C3DGj.png

我究竟做错了什么?我有一种感觉,我错过了一些非常基本的东西,但我对此还很陌生,而且我在网上找到的大部分信息似乎都是使用我没有安装的 SSIS 来处理的。

任何帮助,将不胜感激。

4

1 回答 1

3

今天的数据仓库开发人员使用 SSIS 加载维度模型。通常,查找用于将维度属性转换为键。大多数情况下,数据将位于另一台服务器或平面文件或其他迫使您使用 ETL 工具(如 SSIS)的东西上,但在您的情况下,您可以在没有的情况下完成它。如果您的企业对 BI 很认真,您应该努力安装并学习 SSIS。

对于您的情况,假设您有一个在本地加载了原始事实的表,您应该能够执行插入/选择。

基本上,您需要将每个维度内部连接(因为填充维度表没有问题)到原始事实表。就像是:

INSERT trainingcentrefact
(timekey,locationkey,instructorkey,coursekey,paid,notpaid,... etc)
SELECT
   t.timekey
  ,l.locationkey
  ,i.instructorkey
  ,c.coursekey
  ,rf.paid
  ,rf.notpaid
  ,... etc
FROM rawfacts rf
INNER JOIN timedimension t ON rf.time = t.time
INNER JOIN locationdimension l on rf.location = l.location
INNER JOIN instructordimension i on rf.instructor = i.instructor
INNER JOIN coursedimension c on rf.course = c.course

于 2012-04-08T02:09:07.620 回答