我可以自动执行需要用户输入的SSIS程序包吗?

时间:2018-07-18 15:13:10

标签: sql sql-server visual-studio ssis

在实习期间,我一直在本地VM上的SSIS中开发数据管道,并负责从Marketo收集数据(re:https://www.marketo.com/)。该程序包运行无错,从截断表执行SQL任务开始,然后是5个数据流任务,这些数据流任务从Marketo内的不同源收集数据并将它们移至SQL Server的登台表,最后以执行SQL任务装载处理表仅包含新数据。

我遇到的问题:我的项目负责人希望该流程每天自动运行,并且我注意到在线上有大量资源显示SSIS软件包的自动化,但是在我的软件包中,我必须要有用户输入用于Marketo来源。 Marketo来源需要用户输入一个时间范围以从中收集数据。

即使需要用户输入,是否可以使此程序包每天自动运行?我在想可能有一种方法可以将开始日期和结束日期的日期值增加一个(因此开始日期可以是2018-07-01,结束日期可以是2018-07-02,每天增加一个) ,以使程序包自行运行。预先感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

在自动执行提取时,这表明您有一个预定义的计划来提取数据。通过此计划,您应该能够根据程序包的运行日期来计算开始日期和结束日期。

在SSIS中,有多种方法可以实现此目标,具体取决于数据源和您的连接方法。如果使用脚本任务,则只需使用.Net代码即可计算所需的日期。另一种选择是使用返回表达式结果的计算变量,例如:

DATEADD("Month", -1, GETDATE())

假设您安排提取运行在每月的第一天,则上面的表达式将返回上个月的第一天。