Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 2008 在MS SSIS中加载事实表的最佳实践_Sql Server 2008_Ssis_Data Warehouse_Fact - Fatal编程技术网

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

Sql server 2008 在MS SSIS中加载事实表的最佳实践,sql-server-2008,ssis,data-warehouse,fact,Sql Server 2008,Ssis,Data Warehouse,Fact,我不熟悉数据仓库中的SSIS。我正在使用Microsoft business intelligence studio 我有5个维度,每个维度都有一些PK。 我有一个事实表,其中包含所有维度的PK,这意味着它们存在外键关系(如星型模式) 现在加载事实表的最佳实践是什么 我所做的是在5个维度之间编写一个交叉连接查询,结果集被转储到事实表中。但我认为这不是一个好的做法 我对SSIS女士完全陌生。因此,请详细描述建议 谢谢请看一看示例。另外,获取一个并阅读关于加载事实表的内容——本主题涵盖了几个章节。请

我不熟悉数据仓库中的SSIS。我正在使用Microsoft business intelligence studio

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

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

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

我对SSIS女士完全陌生。因此,请详细描述建议


谢谢

请看一看示例。另外,获取一个并阅读关于加载事实表的内容——本主题涵盖了几个章节。

请查看示例。另外,获取一个并阅读加载事实表的内容——该主题涵盖了几个章节。

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

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

  • 一次性加载日期维度和其他“静态”维度
  • 将记录加载到所有维度中,以处理空值和未知值
  • 加载你的尺寸。对于您的标注,请逐列确定您希望作为类型1或类型2更改标注列的内容。要谨慎,除非有充分的理由,否则大多选择1型
  • [已编辑]通过使用业务键将进入事实表的暂存事务数据连接到新维度表来加载事实表,从而在运行时查找维度的外键。e、 g.销售交易记录将有一个门店编号(业务密钥),您希望在DimStore中查找该编号(已在上一步中加载),该编号将为您提供DimStore的kStore,然后您将在FactSalesTransaction中记录该交易记录的kStore
其他一般的事情你应该考虑(与你的问题无关,但如果你声明你应该考虑)

  • 数据归档。您将数据保持在线多长时间?/何时删除
  • 表分区。如果你有很大的事实表,你应该考虑在日期或主题区域的基础上进行分区。Date非常好,因为在标准加载过程中,当数据太旧时,您可以做一些有趣的事情来删除旧分区
  • 将DWH作为雪花模式,然后使用一组视图将雪花展平为星形。这在将OLAP多维数据集放在SQL DWH之上时特别有用,因为它简化了多维数据集的设计
  • 您将如何管理不同的环境(Dev/Test/etc/Prod)?必须使用一种SQL Server配置样式
  • 使用所需的所有变量和所需的配置/连接字符串构建一个模板SSIS包。现在这样做可以节省大量的时间,而不必在发现新事物时重新编写包。最初做一些琐碎的原型来证明你的方法
我会回应@Damir关于Project Real和Kimball的观点。我是两者的粉丝

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

  • 一次性加载日期维度和其他“静态”维度
  • 将记录加载到所有维度中,以处理空值和未知值
  • 加载你的尺寸。对于您的标注,请逐列确定您希望作为类型1或类型2更改标注列的内容。要谨慎,除非有充分的理由,否则大多选择1型
  • [已编辑]通过使用业务键将进入事实表的暂存事务数据连接到新维度表来加载事实表,从而在运行时查找维度的外键。e、 g.销售交易记录将有一个门店编号(业务密钥),您希望在DimStore中查找该编号(已在上一步中加载),该编号将为您提供DimStore的kStore,然后您将在FactSalesTransaction中记录该交易记录的kStore
其他一般的事情你应该考虑(与你的问题无关,但如果你声明你应该考虑)

  • 数据归档。您将数据保持在线多长时间?/何时删除
  • 表分区。如果你有很大的事实表,你应该考虑在日期或主题区域的基础上进行分区。Date非常好,因为在标准加载过程中,当数据太旧时,您可以做一些有趣的事情来删除旧分区
  • 将DWH作为雪花模式,然后使用一组视图将雪花展平为星形。这在将OLAP多维数据集放在SQL DWH之上时特别有用,因为它简化了多维数据集的设计
  • 您将如何管理不同的环境(Dev/Test/etc/Prod)?必须使用一种SQL Server配置样式
  • 使用所需的所有变量和所需的配置/连接字符串构建一个模板SSIS包。现在这样做可以节省大量的时间,而不必在发现新事物时重新编写包。最初做一些琐碎的原型来证明你的方法
谢谢,我会考虑这些建议。您能详细说明这一点吗•通过将登台事务数据加入到新维度表中来加载事实表,同时查找外键。我现在在上面的文本中添加了一个示例,如果您想了解更多详细信息,我建议您阅读“数据仓库工具包:维度建模完整指南”ISBN 0471200247。我不想在任何一点上添加太多细节,因为这个问题是一个相当高层次的问题,我不想偏袒其中一个部分。谢谢,我会关注sugg