我正在使用SQL Server 2008和Analysis Services创建一个仓库。我已经设法创建并填充维度表,但是我在编写用于加载事实表的SQL时遇到了很多麻烦。首先,我不确定如何使用维度表中的PK加载事实表的键。我尝试编写一个包含一系列JOIN的查询来获取我想要的密钥和度量,但是语句变得如此复杂以至于我迷失了。
这是我必须处理的星型模式:
我做错了什么?我有一种感觉,我错过了一些非常基本的东西,但我对此很新,我在网上发现的大部分信息似乎都是使用SSIS处理的,我没有安装。
任何帮助都将不胜感激。
答案 0 :(得分:2)
今天的数据仓库开发人员使用SSIS来加载维模型。通常,查找用于将维度属性转换为键。大多数情况下,数据将在另一台服务器或平面文件或其他强制您使用SSIS等ETL工具的内容上,但在您的情况下,您可以在没有的情况下完成。如果您的企业对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