最佳设计模式——用于 DWH 加载的 SSIS 包

Posted

技术标签:

【中文标题】最佳设计模式——用于 DWH 加载的 SSIS 包【英文标题】:Best design pattern -- SSIS package for DWH load 【发布时间】:2013-02-12 15:28:57 【问题描述】:

我在为我们的 DWH 负载设计 SSIS 包方面需要帮助。

我有两个带有以下详细信息的星型模型

1st Model --> 5 dimension and 5 fact tables respectively
2nd Model --> 5 dimension and 1 fact tables respectively

我有五个不同的源系统,我需要将数据填充到这些表中。

基于上述要求,我想到了这样设计包:

将有三个包,它们将执行以下操作:

    第一个包会将数据从源系统提取到暂存表(SQL Server 表),并进行所有必要的转换。 第二个包会将数据加载到所有维度表中。 第三个包会将数据加载到所有事实表中。

请让我知道上述设计/架构是否适用于此 DWH 负载,或者我是否需要进行一些修改。

【问题讨论】:

【参考方案1】:

这很难回答,因为最终如果它有效,那么它就是正确的。根据您的观点,只有不同程度的“正确性”(这是一个词吗?)或或多或少优雅的答案。

但是,作为一般规则并就我自己而言,我一直发现将数据加载到暂存区域然后通过过程分发维度和事实更加优雅。然后在目标数据库的上下文中执行该工作,而不是由包执行。包的作用是控制流程。

另外,我会避免不必要地将任务分成多个包。当然,可能还有其他考虑因素可能会影响此决定。例如。多个数据更新在不同的时间从不同的来源到达,但即使这样我也倾向于一次分阶段更新。

【讨论】:

以上是关于最佳设计模式——用于 DWH 加载的 SSIS 包的主要内容,如果未能解决你的问题,请参考以下文章

在 SSIS 中最快加载 2000 个文件的最佳方法

在数据仓库中加载数据的最佳方式

在星型模式 DWH 中构建无事实事实的最佳方法

DWH 建模最佳实践:二维使用的日期键

使用ssis包进行数据入库和加载数据

什么是 SSIS 包部署和更改跟踪最佳实践?