【问题标题】:SSIS - Polling Files Folder and Trigger ETL PackagesSSIS - 轮询文件文件夹和触发 ETL 包
【发布时间】:2013-02-22 19:02:12
【问题描述】:

需要建议,看下面的场景

我们开发了 1 个 ETL 包,可以一次处理 5 个文件(通常需要 1 分钟)。我们预计在早上(即早上 6 点到 7 点之间)可以有近 100 多个文件进入 PROCESSING 文件夹。

我正在努力设计/开发某种轮询机制,它会不断寻找文件,如果它们到达,它将触发 ETL 包(通过 SQL Server 代理作业触发)。

如何进行轮询然后触发该 ETL 包 - 服务代理会有所帮助

我是 SSIS 的新手,所以需要建议。需要在 SQL Server 中找到解决方案,而不是开发 .net 应用程序来轮询文件夹然后触发作业

问候

【问题讨论】:

    标签: sql-server-2008 ssis


    【解决方案1】:

    你有两个选择:

    1. 设置一个文件夹监视器,它应该从命令行调用包,例如 MyTrigger download it from CNET
    2. 正如您所说,您希望 SQL 代理执行它,另一个可能更有效的选项是设置一个文件表并在表上创建一个触发器以进行插入,它应该使用 @987654322 执行代理作业@系统存储过程。

    【讨论】:

      【解决方案2】:

      【讨论】:

        【解决方案3】:

        我要做的是设置一个代理来按计划触发 SSIS 包。我在 SSIS 中做的第一件事是确定是否有要处理的文件。出于各种原因,我更喜欢为此执行一个小脚本任务。如果存在文件,我设置一个变量,以便脚本任务之后的约束可以转到下一个任务,或者如果没有文件,则结束包报告成功。

        如果您没有任何辅助需求(如日志记录),那么您可以只为每个文件使用一个枚举器,如果没有找到文件,它将成功结束包。

        ps 如果您将计划设置为一分钟并且包需要更长的时间来运行(导入多个文件),那么下一个计划将在原始进程完成之前不会触发。因此您不必担心多个进程相互干扰。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2014-03-13
          • 1970-01-01
          • 2015-09-07
          • 2014-02-21
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多