SSIS:在服务器之间移动数据 - 数据会通过我的工作站吗?

Mat*_*ert 5 sql-server ssis

我刚刚Microsoft SQL Server Data Tools for Visual Studio 2017在我的工作站上安装了并创建了一个简单的 SSIS 包 (.dtsx),它基本上将数据从一个 MSSQL 服务器复制到另一个。

现在我想知道数据是否会通过我的工作站,或者是否在两台服务器之间建立了直接连接。提前致谢!

Dav*_*ett 4

数据将穿过 SSIS 包运行的位置。在开发中,这将是您的工作站,一旦部署,这将是您的包/项目部署到的位置。SSIS 不会在任何类型的两个数据源之间产生您所描述的直接连接

即使除了“从这里读取,写入那里”之外不涉及其他处理,情况也是如此,并且这样做有实际和安全的原因。实际原因主要包括大多数数据源/接收器不支持与其他资源的远程连接,而安全问题是即使 SSIS 可以指示数据接收器直接与数据源通信(反之亦然) )它必须交出安全凭证才能知道如何交出。

当然,如果您的 SSIS 包部署在其中一台相关服务器上,那么实际上存在直接连接,但数据仍将通过 SSIS 进程,而不是直接发送到 SQL Server 实例。此外,即使您在同一数据库中的表之间移动数据(因此同一 SQL 实例上的同一数据库既是 ETL 过程的源又是目标),数据仍然会离开 SQL Server,由 SSIS 处理(但最少) )然后发送回 SQL Server。

如果您需要SQL Server之间的直接通信,那么您可以使用链接服务器功能直接读取/写入数据,但这将不允许SSIS的其他处理功能。此外,这不适用于 Azure SQL。有一个针对每个表/视图的选项,适用于外部数据源中的 Azure SQL(以及较新的本地 SQL 实例) 。这两个选项都要求至少一个 SQL 实例具有访问另一个 SQL 实例的凭据,根据您的情况和安全模型,这可能是不可取的。