我是SSIS的新手,我正在尝试使用其Parallelism Feature从数据库导入数据。
我的工作是:尽可能快地将多TB数据库导入到一组平面文件中。
我在想这个:
我有一个Microsoft Server 2008 HPC群集(3个节点)供我使用。我正在考虑编写HPC SOA作业,以便所有三个计算节点可以与SQL Server建立独立连接并并行导入一部分数据。当然,这与SSIS无关,是一个独立的实用工具。
然后我遇到了SSIS及其并行导入功能。我的SSIS服务器不是很高端 - 只有4GB的机器。我不知何故倾向于使用SSIS,因为这是微软进行数据导入的理想方式 - 我不需要重写很多东西,也可能使用现有的转换等。
使用自定义任务(或可用任务)的最佳方法是什么?并行执行此操作?
答案 0 :(得分:1)
Gitmo,我可能会误解你的问题,但会给它一个机会。您需要将数据从SQL Server实例移动到多个文件,对吗?您希望利用SSIS提供的并行化数据移动功能。这意味着多个同时运行的数据流任务(DFT)。对于每个目标文件,由于并发写入问题,您只能有一个DFT。
要获得多个同时运行的数据流任务,其中源是SQL Server数据库,而目标是一组文件,您可以尝试以下方式(请注意,您可以从中获取并行化的上限) SSIS基于许多因素,包括您的CPU核心数,是否在BIDS / Visual Studio中运行,以及包,服务器,SQL Server实例和许多其他注意事项中的各种设置:
请参阅Microsoft SQLCAT小组的这篇优秀文章,了解更多想法/见解:Top 10 SQL Server Integration Services Best Practices
这些相同的想法可能存在差异,并且可能在SSIS内部和外部提供其他解决方案。祝你好运!
答案 1 :(得分:0)
请看这篇文章.....使用多线程输出侧面并实现并行性多线程串行执行
没有修改大部分包
http://sqljunkieshare.com/2011/12/21/parallelism-in-etl-process-ssis-2008-and-ssis-2012/