SSIS多表加载

Gay*_*ayu 0 ssis ssis-2012

我是第一次学习SSIS。我正在尝试从我的登台数据库向数据仓库中的多个表加载多个表。我的登台数据库不过是一个数据库,其中所有源数据库中的所有表都复制到该数据库中。我发现每个数据流任务仅允许将一个源表连接到一个目标表。是否必须使用与源数据库中的表数量一样多的数据流任务?有没有简单而有效的方法来做到这一点?

根据我的理解,我需要一个空数据库,其中包含在SQL Server中创建的空Dim和Fact表,这些表将用作目标数据仓库并从登台数据库接收数据。因此,我已经创建了这个空的数据仓库。请帮忙。

pra*_*een 5

没有约定,在DFT(数据流任务)中仅需要1个源和1个目标。

DFT中可以有多个源组件和目标组件。但是,如果单个DFT中的源到目标组件过多,则可能会耗尽内存。在预执行阶段,SSIS必须决定要为各个S2D组件分配的内存,如果内存消耗过高,则服务器可能无法为所有组件授予足够的内存。这可能会导致长时间的等待

但是,有一个称为EngineThreadsDFT 的属性,该属性定义数据流引擎可以创建并并行运行多少个线程。根据MSDN:

要了解此属性的工作原理,请考虑具有三个数据流任务的示例包。每个数据流任务都包含十个源到目标执行树。如果在每个数据流任务上将EngineThreads设置为10,则所有30个执行树都可以同时运行。但是,一般规则是并行运行线程的数量不要超过可用处理器的数量。由于线程之间频繁进行上下文切换,因此运行的线程数多于可用处理器的数量会影响性能。

因此,最好创建单独的数据流任务并执行操作。

注意:如果要从多个来源获取数据,则可以在单个数据流任务中进行处理。