使用SQL Server(BID或数据工具)更新维度表

时间:2015-03-25 16:47:12

标签: sql-server etl business-intelligence bids dimension

我很担心我应该如何将维度成员添加到我的数据仓库中。假设TOWN_NAME是一个将town_Id链接到town_name的维度表。所以,现在,我有1000个客户名,他们来自9个城镇。突然间,在我的下一个ETL流程中,最终会添加一个客户,其城镇不在我的维度中的9个城镇中。所以我需要在维度表中添加一个成员。我可以使用BIDS或DATA TOOLS(BIDS 2012)中的哪个步骤/过程?这应该怎么样?我很遗憾可以做些什么。

1 个答案:

答案 0 :(得分:2)

通常的模式 - 无论您使用什么工具来填充数据仓库 - 都要填充您的尺寸之前填充您的事实,这正是为了避免此问题。

通常的做法是使用一个包从源系统中提取Dimension数据,然后将任何新行加载到Dimension表中。然后,当您的Fact表加载在流程中稍后发生时,您使用城镇名称从Dimension中查找ID列。然后,您的事实数据应加载到Fact表中,并将相关城镇的ID作为其列值之一。

具体来说,在SSIS中,您可以通过创建一个用于加载Dimension表的包以及同一个项目中加载Fact表的另一个包来管理它。然后,您可以通过几种不同的方式控制这些发生的顺序:

  • 您可以创建第三个包,它使用两个执行包任务来首先调用Dimension包,然后是Fact包。
  • 您可以创建一个首先调用Dimension包的SQL Server代理作业,然后调用Fact包。

如果您希望能够一次性在Visual Studio中运行所有内容,那么请使用第一个选项。