使用 SQL 服务器(BID 或数据工具)更新维度表
Updating dimension tables using SQL Server (BIDs or Data Tools)
我很困惑应该如何将维度成员添加到我的数据仓库。假设 TOWN_NAME 是将 town_Id 链接到 town_name 的维度 table。所以,现在,我有 1000 个客户名称,他们来自 9 个城镇。突然,在我的下一个 ETL 过程中,最终添加了一个客户,他的城镇不在我维度中的 9 个城镇中。所以我需要向我的维度 table 添加一个成员。我应该使用 BIDS 或 DATA TOOLS (BIDS 2012) 中的哪个 step/process?这应该如何?我对可以做什么感到很迷茫。
通常的模式 - 无论您使用什么工具来填充数据仓库 - 都是在填充您的维度 之前 您填充您的事实,正是为了避免这个问题。
通常的做法是使用一个包从您的源系统中提取您的 Dimension 数据,然后将任何新行加载到您的 Dimension table。然后,当您的 Fact table 加载发生在您使用城镇名称从 Dimension 中查找 ID 列的过程中。然后应将您的事实数据加载到事实 table 中,并将相关城镇的 ID 作为其列值之一。
具体来说,在 SSIS 中,您可以通过创建一个包来管理维度 table 加载,并在同一项目中创建另一个包来加载事实 table。然后您可以通过几种不同的方式控制这些事件发生的顺序:
- 您可以创建第三个包,它使用两个执行包任务首先调用维度包,然后调用事实包。
- 您可以创建一个 SQL 服务器代理作业,它首先调用维度包,然后调用事实包。
如果您希望一次性 运行 Visual Studio 中的所有内容,请选择第一个选项。
我很困惑应该如何将维度成员添加到我的数据仓库。假设 TOWN_NAME 是将 town_Id 链接到 town_name 的维度 table。所以,现在,我有 1000 个客户名称,他们来自 9 个城镇。突然,在我的下一个 ETL 过程中,最终添加了一个客户,他的城镇不在我维度中的 9 个城镇中。所以我需要向我的维度 table 添加一个成员。我应该使用 BIDS 或 DATA TOOLS (BIDS 2012) 中的哪个 step/process?这应该如何?我对可以做什么感到很迷茫。
通常的模式 - 无论您使用什么工具来填充数据仓库 - 都是在填充您的维度 之前 您填充您的事实,正是为了避免这个问题。
通常的做法是使用一个包从您的源系统中提取您的 Dimension 数据,然后将任何新行加载到您的 Dimension table。然后,当您的 Fact table 加载发生在您使用城镇名称从 Dimension 中查找 ID 列的过程中。然后应将您的事实数据加载到事实 table 中,并将相关城镇的 ID 作为其列值之一。
具体来说,在 SSIS 中,您可以通过创建一个包来管理维度 table 加载,并在同一项目中创建另一个包来加载事实 table。然后您可以通过几种不同的方式控制这些事件发生的顺序:
- 您可以创建第三个包,它使用两个执行包任务首先调用维度包,然后调用事实包。
- 您可以创建一个 SQL 服务器代理作业,它首先调用维度包,然后调用事实包。
如果您希望一次性 运行 Visual Studio 中的所有内容,请选择第一个选项。