SSIS多表加载
我第一次学习SSIS。我试图将多个表从暂存数据库加载到数据仓库中的多个表。我的暂存数据库只是一个数据库,其中所有源数据库中的表都复制到了该数据库中。我发现每个数据流任务只允许将一个源表连接到一个目标表。我是否必须使用与源数据库中表数量相同的数据流任务?有没有一种更简单、更有效的方法SSIS多表加载,ssis,ssis-2012,Ssis,Ssis 2012,我第一次学习SSIS。我试图将多个表从暂存数据库加载到数据仓库中的多个表。我的暂存数据库只是一个数据库,其中所有源数据库中的表都复制到了该数据库中。我发现每个数据流任务只允许将一个源表连接到一个目标表。我是否必须使用与源数据库中表数量相同的数据流任务?有没有一种更简单、更有效的方法 据我所知,我需要一个空数据库,其中包含在SQL Server中创建的空Dim和事实表,它们将充当目标数据仓库,并从临时数据库接收数据。因此,我已经创建了这个空数据仓库。请提供帮助。DFT(数据流任务)中没有只需要一个
据我所知,我需要一个空数据库,其中包含在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:尝试正确映射列,或通过详细说明所面临问题的查询和错误,将其作为新问题发布