【问题标题】:Loading Fact Tables with SQL Server使用 SQL Server 加载事实表
【发布时间】:2012-04-20 15:11:58
【问题描述】:

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

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

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

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

任何帮助将不胜感激。

【问题讨论】:

    标签: sql-server data-warehouse fact-table


    【解决方案1】:

    Todays Data Warehouse Developer 使用 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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多