在MS SSIS中加载事实表的最佳实践

时间:2011-06-13 07:48:16

标签: sql-server-2008 ssis data-warehouse fact

我是数据仓库中SSIS的新手。我正在使用Microsoft商业智能工作室。

我有5个维度,每个都有一些PK。 我有一个Fact表,其中包含Dimensions的所有PK,意味着它们是存在的外键关系(如星型模式)。

现在加载事实表的最佳做法是什么。

我所做的是在5维之间编写交叉连接查询,并将结果集转储到事实表中。但我认为这不是一个好习惯。

我是MS SSIS的新手。所以请详细描述建议。

谢谢

2 个答案:

答案 0 :(得分:3)

查看 Microsoft Project Real 示例。还可以获得 Kimball book 并阅读有关加载事实表的内容 - 该主题涵盖了几个章节。

答案 1 :(得分:1)

我会回应@Damir关于Project Real和Kimball的观点。我是两者的粉丝。

我想再给你一些想法,回答你的问题,

  • 将您的日期维度和其他“静态”维度加载为一次性加载
  • 将记录加载到所有维度中以处理NULL和UNKNOWN值
  • 加载您的尺寸。对于您的维度,请逐列确定您想要的类型1或类型2更改维度列。除非有充分的理由,否则要小心并选择它们作为类型1。
  • [编辑]通过加入您的登台交易数据来加载您的事实表,该数据将使用业务键进入新维度表的事实表,从而随时查找维度的外键。例如销售交易将有一个商店编号(业务密钥),您希望在DimStore中查找(已经在上一步中加载),这将为您提供DimStore的kStore,然后您将在FactSalesTransaction中针对该事务记录kstore

您应该考虑的其他一般事项(与您的问题无关,但如果您说明的话应该考虑)

  • 数据存档。您将数据保持在线多长时间? /什么时候会被删除?
  • 表分区。如果您有非常大的事实表,则应考虑按日期或主题区域进行分区。日期非常好,因为当数据作为标准加载过程的一部分过于陈旧时,您可以做一些有趣的事情来删除旧分区。
  • 将DWH作为雪花模式,然后使用一组视图将snoflake压平成星形。这在将OLAP多维数据集放在SQL DWH之上时特别有用,因为它简化了多维数据集设计。
  • 您将如何管理不同的环境(Dev / Test / etc / Prod)?使用其中一种SQL Server配置样式势在必行。
  • 使用您需要的所有变量和所需的配置/连接字符串构建模板SSIS包。现在可以节省大量时间,而不必在发现新事物时重新编写包。最初用琐碎的原型来证明你的方法论!