首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SSIS:并行处理热文件夹项的方法?

SSIS:并行处理热文件夹项的方法?
EN

Stack Overflow用户
提问于 2010-04-26 16:22:27
回答 2查看 722关注 0票数 0

我们有8个Xeon (i7)核心和16G内存在我们的SSIS盒。我们有大约200个图像文件,我们想要转换使用一个命令行实用程序每天。目前这个过程是使用和液滴(非常手动,每天花费两个多小时)。

使用SSIS热文件夹,有没有一次执行最多8个转换的方法?

有什么方法可以告诉流程已经完成或在完成时执行代码吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-04-29 11:44:47

根据您正在尝试执行的操作的注释中的描述,您是否可以让循环将文件从“热文件夹”移动到八个处理文件夹中(或您希望并行运行的任意多个文件夹)。然后,您可以有八个循环使用这些处理“热文件夹”来实际进行处理。这样你就可以让八个循环并行处理。

我会这样做:

在你的控制表面:

ForEach循环容器

  • 配置为查看容器内的“热文件夹”
  • 文件系统任务将文件移动到

处理文件夹。

  • 是从FELC中设置的一个变量,用于获取要操作的文件名。(我使用USER::HotFolderFilePath)

  • A第二个变量来包含移动的目的地。(我使用USER::DestPath)

  • A脚本任务在每次迭代后更改目标文件夹名

进口制度

进口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

  • 在ForEach循环容器完成后,您有8个文件夹,每个文件夹中都有一些文件。此时,

  • 为每个处理文件夹创建一个新的ForEach循环容器,并像在原来的“热文件夹”中那样处理它,因为这些容器都在您的控制面上链接到原始的ForEach循环容器中,您将从中得到一定程度的细化。您可能需要使用package属性"max并发可执行文件“。这通常设置为-1,这使Server可以根据服务器资源确定max。
票数 1
EN

Stack Overflow用户

发布于 2010-05-01 16:42:35

如果“热文件夹”指的是SSIS将监视的文件夹,则可以尝试使用“从FileWatcher到sqlis.com”。此实用工具将坐着等待一个文件被放置到一个被监视的文件夹中。它可以使用通配符,只是不是很复杂的通配符。我看到你想要处理200多张图片,但我看不出有多少个文件夹这些图像将被放入。如果将它们放在一个文件夹中,那么您可以使用我使用的技术并行处理.pdfs。我已经将完整文件名(包括目录)中的脚本任务读入一个平面文件中,所以在最后,我有如下所示:

  1. c:\rootfolder\images\image1.png
  2. c:\rootfolder\images\image2.png
  3. c:\rootfolder\images\image3.png

然后,我将其作为varchar(x)字段加载到sql 'Task‘表中。在我的示例8中,我有并行数据流任务,每个任务从表中提取一个行。我在几分钟内处理发票/语句pdfs,就像这样做1,000次。我开发的过程通过让所有N个线程从同一个源中提取来防止瓶颈。如果您选择从N个文件中提取N个任务,则其中一个或多个数据流任务将落后于延迟整个过程。我没有地方可以发布我使用的代码,但是我非常乐意将它连同关于并行任务结构的演示一起发送给您。给我发封电子邮件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2715052

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档