需要建议,见下文方案
我们开发了1个ETL包,可以一次处理5个文件(通常需要1分钟)。我们预计在早上时间内有近100多个文件可以进入PROCESSING文件夹(意思是在早上6点到早上7点之间)。
我正在努力设计/开发某种轮询机制,这种机制一直在寻找文件,如果它们到达,它将触发ETL包(通过SQL Server代理作业触发)。
如何进行轮询,然后触发该ETL包 - Service Broker将提供帮助
我是SSIS的新手所以需要建议。需要在SQL Server中找到解决方案而不是开发.net应用程序来轮询文件夹然后触发作业
此致
答案 0 :(得分:0)
您有两个选择:
答案 1 :(得分:0)
答案 2 :(得分:0)
我所做的是设置代理程序以按计划启动SSIS包。我在SSIS中做的第一件事是确定是否有要处理的文件。出于各种原因,我更喜欢有一个小脚本任务。如果存在文件,我设置一个变量,以便脚本任务后面的约束可以转到下一个任务,或者如果没有文件,则结束包报告成功。
如果您没有任何辅助需求,例如日志记录,那么您可以为每个文件枚举器使用a,如果没有找到文件,它将成功结束包。
ps如果您将计划设置为一分钟并且程序包运行时间较长(导入多个文件),则在原始流程完成之前,下一个计划将不会触发。因此,您不必担心多个进程互相干扰。