0

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

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

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

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

我对 MS SSIS 完全陌生。所以请详细描述建议。

谢谢

4

2 回答 2

3

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

于 2011-06-13T12:05:06.590 回答
1

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

我想给你更多的想法,回答你的问题,

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

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

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