我们有8个Xeon (i7)核心和16G内存在我们的SSIS盒。我们有大约200个图像文件,我们想要转换使用一个命令行实用程序每天。目前这个过程是使用和液滴(非常手动,每天花费两个多小时)。
使用SSIS热文件夹,有没有一次执行最多8个转换的方法?
有什么方法可以告诉流程已经完成或在完成时执行代码吗?
发布于 2010-04-29 11:44:47
根据您正在尝试执行的操作的注释中的描述,您是否可以让循环将文件从“热文件夹”移动到八个处理文件夹中(或您希望并行运行的任意多个文件夹)。然后,您可以有八个循环使用这些处理“热文件夹”来实际进行处理。这样你就可以让八个循环并行处理。
我会这样做:
在你的控制表面:
ForEach循环容器
处理文件夹。
进口制度
进口System.Data
进口System.Math
导入Microsoft.SqlServer.Dts.RuntimePublic类ScriptMain
选择Case Dts.Variables("User::DestPath").Value.ToString Case“E:\Processing\ProcFolder5 7”Dts.Variables("User::DestPath").Value =“E:Processing\ProcFolder5 8”(E:Processing\ProcFolder5 6“Dts.Variables("User::DestPath").Value =”E:ProcFolder5 7“Case:\ProcFolder5 5”Dts.Variables("User::DestPath").Value = "E:\Processing \ProcFolder5 6“大小写”E:Processing\ProcFolder5 4“Dts.Variables("User::DestPath").Value =”E:Processing\ProcFolder5 5“大小写”E:Processing\ProcFolder5 3“Dts.Variables("User::DestPath").Value =”E:Processing\ProcFolder5 4“\ProcFolder2 2“Dts.Variables("User::DestPath").Value =”E:\Processing\ProcFolder2 3“大小写”E:\Processing\ProcFolder2 1“Dts.Variables("User::DestPath").Value =”E:Processing\ProcFolder2 2“Case .Value Dts.Variables("User::DestPath").Value =”E:Processing\ProcFolder2 1“结束选择Dts.TaskResult = Dts.Results.Success End Sub
End Class
发布于 2010-05-01 16:42:35
如果“热文件夹”指的是SSIS将监视的文件夹,则可以尝试使用“从FileWatcher到sqlis.com”。此实用工具将坐着等待一个文件被放置到一个被监视的文件夹中。它可以使用通配符,只是不是很复杂的通配符。我看到你想要处理200多张图片,但我看不出有多少个文件夹这些图像将被放入。如果将它们放在一个文件夹中,那么您可以使用我使用的技术并行处理.pdfs。我已经将完整文件名(包括目录)中的脚本任务读入一个平面文件中,所以在最后,我有如下所示:
然后,我将其作为varchar(x)字段加载到sql 'Task‘表中。在我的示例8中,我有并行数据流任务,每个任务从表中提取一个行。我在几分钟内处理发票/语句pdfs,就像这样做1,000次。我开发的过程通过让所有N个线程从同一个源中提取来防止瓶颈。如果您选择从N个文件中提取N个任务,则其中一个或多个数据流任务将落后于延迟整个过程。我没有地方可以发布我使用的代码,但是我非常乐意将它连同关于并行任务结构的演示一起发送给您。给我发封电子邮件。
https://stackoverflow.com/questions/2715052
复制相似问题