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
SSIS多表加载_Ssis_Ssis 2012 - Fatal编程技术网

SSIS多表加载

SSIS多表加载,ssis,ssis-2012,Ssis,Ssis 2012,我第一次学习SSIS。我试图将多个表从暂存数据库加载到数据仓库中的多个表。我的暂存数据库只是一个数据库,其中所有源数据库中的表都复制到了该数据库中。我发现每个数据流任务只允许将一个源表连接到一个目标表。我是否必须使用与源数据库中表数量相同的数据流任务?有没有一种更简单、更有效的方法 据我所知,我需要一个空数据库,其中包含在SQL Server中创建的空Dim和事实表,它们将充当目标数据仓库,并从临时数据库接收数据。因此,我已经创建了这个空数据仓库。请提供帮助。DFT(数据流任务)中没有只需要一个

我第一次学习SSIS。我试图将多个表从暂存数据库加载到数据仓库中的多个表。我的暂存数据库只是一个数据库,其中所有源数据库中的表都复制到了该数据库中。我发现每个数据流任务只允许将一个源表连接到一个目标表。我是否必须使用与源数据库中表数量相同的数据流任务?有没有一种更简单、更有效的方法


据我所知,我需要一个空数据库,其中包含在SQL Server中创建的空Dim和事实表,它们将充当目标数据仓库,并从临时数据库接收数据。因此,我已经创建了这个空数据仓库。请提供帮助。

DFT(数据流任务)中没有只需要一个源和一个目标的约定

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

但是,DFT有一个名为
EngineThreads
的属性,它定义了数据流引擎可以并行创建和运行的线程数。根据MSDN:

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

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


注意:如果您从多个源获取数据,则可以在单个数据流任务中完成。

没有约定在DFT(数据流任务)中只需要一个源和一个目标

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

但是,DFT有一个名为
EngineThreads
的属性,它定义了数据流引擎可以并行创建和运行的线程数。根据MSDN:

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

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


注意:如果您从多个源获取数据,那么您可以在单个数据流任务中完成。

因此,如果我只有7个sql表,那么我可以对所有7个S2D线程使用相同的DFT?除了为7个表提供7个单独的线程之外,还有其他方法吗?我认为您没有正确阅读我的答案。如果您有
2个多的S2D组件
,那么SSI可能无法并行运行所有组件,并且很少有S2D组件会永远挂起
。最好为每个
S2D
使用单独的DFT。不过你还是要谢谢你。我认为会有其他一些有效的方法,而不是每个S2D有一个DFT。因为MSDN说组件会挂起,所以我会一个接一个地做。当我尝试这种方法时,我得到一些输入组件的转换错误。我不知道你为什么有IDE?Thnks@Gayu:尝试正确映射列,或通过详细说明您面临的问题的查询和错误,将其作为新问题发布。如果我只有7个sql表,我可以对所有7个S2D线程使用相同的DFT吗?除了为7个表提供7个单独的线程之外,还有其他方法吗?我认为您没有正确阅读我的答案。如果您有
2个多的S2D组件
,那么SSI可能无法并行运行所有组件,并且很少有S2D组件会永远挂起
。最好为每个
S2D
使用单独的DFT。不过你还是要谢谢你。我认为会有其他一些有效的方法,而不是每个S2D有一个DFT。因为MSDN说组件会挂起,所以我会一个接一个地做。当我尝试这种方法时,我得到一些输入组件的转换错误。我不知道你为什么有IDE?Thnks@Gayu:尝试正确映射列,或通过详细说明所面临问题的查询和错误,将其作为新问题发布