SSIS包的本地或远程编程执行

本文关键字:编程 执行 程编程 SSIS | 更新日期: 2023-09-27 18:26:01

我的桌面上有一个SSIS包,我在远程盒子上向Integration Services注册了它。

我将用于执行我在该盒子上注册的SSIS包的服务将托管在网络中的其他应用服务器上,并将调用以执行该包。

在我开始编写实现这一目标的最终代码之前,我已经走到了如何进行的岔路口:

MSDN有两篇关于如何以编程方式访问SSIS包的文章。

其中一篇文章的标题是:在远程计算机上以编程方式运行SSIS包

另一篇文章的标题是:在本地计算机上以编程方式运行SSIS包

我都读过,但它们是如何使用术语"本地"answers"远程"的,这让我很困惑

本地文章似乎说,即使你在另一台计算机上有一个包,通过这种实现,它也可以在你的本地机器上运行。

对于远程项目,似乎只有当调用包的服务在同一台机器上运行时,包才会执行。对我来说,这似乎是一个真正的"本地"实现。

为了执行如上所述的包,我需要遵循哪一篇文章/实现?

同样,我正在我的工作站上运行Windows服务,并试图执行在另一个工作站上注册的程序包。对我来说,这似乎是远程路线,但我不知道。

救命!谢谢

SSIS包的本地或远程编程执行

是的,你是对的,这有点令人困惑。你也应该阅读这个博客。Michael Entin发布了一大堆机会。他专注于运行包的本地/远程执行方式。

然而,还有另一种方法,通过PowerShell。

在您的情况下,我认为如果您在应用程序服务器上实现web服务,那将是不好的。如果您在此web服务中使用SMO,那么包将在同一台服务器上执行,我想这台服务器没有安装SSIS。所以这将失败。如果你在数据库服务器上安装你的web服务,它是可以的。但这样,你应该在这个服务器上打开一个特定的端口。(好吧,我知道如果你实现PowerShell的方式,必须打开两个端口。)

更新

我试着用一个小例子来解释。假设您开发了一个WinForms应用程序,其中有一个任务将启动SSIS包。您在应用程序服务器上安装了此应用程序。另一台服务器安装了SQL server(以及SSIS)。这是您的数据库服务器。当我们谈论本地/远程包执行时,我们从WinForms应用程序的角度来观察系统。由于SSIS组件安装在远程服务器(即数据库服务器)上,因此只能使用远程执行。因此,您的windows服务应该在数据库服务器上实现。另一个问题可能是如何访问这个windows服务。在您前面提到的远程执行文章中,有两种不同的实现远程执行的方法:通过SQLServer代理作业和通过web服务。第三个选项是PowerShell,正如我上面提到的。

当然,从工作或web服务的角度来看,它是一个真正的本地实现,正如您所写的那样。但是MSDN的文章主要关注应用程序服务器上的应用程序(例如WinForms应用程序)。