Sql server SSIS并行性-Microsoft HPC群集?

Sql server SSIS并行性-Microsoft HPC群集?,sql-server,ssis,soa,hpc,parallel-processing,Sql Server,Ssis,Soa,Hpc,Parallel Processing,我是SSIS新手,正在尝试使用它的并行功能从数据库导入数据 我的工作就是这样做:尽快将一个多TB的数据库导入到一组平面文件中 我在想: 我有一个Microsoft Server 2008 HPC群集(由3个节点组成)供我使用。我正在考虑编写一个HPCSOA作业,这样所有三个计算节点都可以独立连接到SQL Server并并行导入一部分数据。当然,这与SSI无关,是一个独立的实用程序 然后我遇到了SSIS及其并行导入功能。我的SSIS服务器不是很高端,只是一台4GB的机器。我在某种程度上倾向于使用S

我是SSIS新手,正在尝试使用它的并行功能从数据库导入数据

我的工作就是这样做:尽快将一个多TB的数据库导入到一组平面文件中

我在想:

我有一个Microsoft Server 2008 HPC群集(由3个节点组成)供我使用。我正在考虑编写一个HPCSOA作业,这样所有三个计算节点都可以独立连接到SQL Server并并行导入一部分数据。当然,这与SSI无关,是一个独立的实用程序

然后我遇到了SSIS及其并行导入功能。我的SSIS服务器不是很高端,只是一台4GB的机器。我在某种程度上倾向于使用SSIS,因为这是Microsoft进行数据导入的理想方式,而且我不必重写很多东西,也不必使用现有的转换等


使用自定义任务(或可用任务)并并行执行此导入的最佳方式是什么?

Gitmo,我可能误解了你的问题,但我会尝试一下。您需要将数据从SQL Server实例移动到多个文件,对吗?您希望利用SSIS提供的并行数据移动功能。这意味着多个同时运行的数据流任务(DFT)。由于并发写入问题,每个目标文件只能有一个DFT

要获取多个同时运行的数据流任务,其中源是SQL Server数据库,目标是一组文件,可以尝试以下方法(请注意,基于许多因素,包括CPU核心数、是否在BIDS/Visual Studio中运行、软件包中的各种设置、服务器、SQL server实例和许多其他考虑因素,SSI的并行化有上限):

  • 多个同时DFT解决方案:一个SSIS包,其中一个连接管理器指向源SQL Server数据库,多个连接管理器分别指向一个单独的目标文件,每个目标文件加上一个DFT。DFT都彼此断开连接(无优先级约束或绿色/红色/蓝色线/箭头)。如果需要运行ETL之前或之后的步骤,并行化这些DFT的一个好方法是将它们全部放入序列容器中,该容器通过优先级约束/箭头连接到早期和后期任务。这些断开连接的DFT在其自己的序列容器中将尝试同时运行
  • 多个同步DTEXEC解决方案:多个SSI包,每个包都有自己的特定于目标文件的DFT。您可以通过单独的CMD窗口或GUI手动运行单独的DTEXEC进程。下面的#3是此解决方案的变体,可能是更好的解决方案
  • 运行多个子包的父主包解决方案:将上面#2中开发的每个目标文件包包装在一个父主包中。在父包中有多个同时运行的执行包任务。同样,这些执行包任务将与其他任务断开连接。一个好方法是将多个执行包任务放到它们自己的序列容器中。与以前一样,如果执行包任务断开连接(没有优先约束/箭头),它们将尝试同时运行
  • 请阅读Microsoft SQLCAT团队的这篇优秀文章,了解更多想法/见解:


    这些相同的想法和SSIS内外可能提供的其他解决方案可能会有所不同。祝你好运!

    Gitmo,我可能误解了你的问题,但我会试一试。你需要将数据从SQL Server实例移动到多个文件,对吗?你想利用并行数据移动功能吗由SSIS提供。这意味着多个同时运行的数据流任务(DFT)。对于每个目标文件,由于并发写入问题,您只能有一个DFT

    要获取多个同时运行的数据流任务,其中源是SQL Server数据库,目标是一组文件,可以尝试以下方法(请注意,基于许多因素,包括CPU核心数、是否在BIDS/Visual Studio中运行、软件包中的各种设置、服务器、SQL server实例和许多其他考虑因素,SSI的并行化有上限):

  • 多个同时DFT解决方案:一个SSIS包,其中一个连接管理器指向源SQL Server数据库,多个连接管理器分别指向一个单独的目标文件,每个目标文件加上一个DFT。DFT都彼此断开连接(无优先级约束或绿色/红色/蓝色线/箭头)。如果需要运行ETL之前或之后的步骤,并行化这些DFT的一个好方法是将它们全部放入序列容器中,该容器通过优先级约束/箭头连接到早期和后期任务。这些断开连接的DFT在其自己的序列容器中将尝试同时运行
  • 多个同步DTEXEC解决方案:多个SSI包,每个包都有自己的特定于目标文件的DFT。您可以通过单独的CMD窗口或GUI手动运行单独的DTEXEC进程。下面的#3是此解决方案的变体,可能是更好的解决方案
  • 运行多个子包的父主包解决方案:将上面#2中开发的每个目标文件包包装在一个父主包中。在父包中有多个同时运行的执行包任务。同样,这些执行包任务将与其他任务断开连接。一个好方法是将多个执行包任务放到它们自己的序列容器中。与以前一样,如果执行包任务断开连接(无优先级约束)