在托管实例和数据工厂中的 SSMS 中调度作业之间的区别

问题描述

如果我有 Azure 托管实例,使用 sql 代理和 Azure 数据工厂在 SSMS 上的 MI 内调度包含 T-sql 和/或包的作业有什么区别?计划作业是否在 VM/托管实例而不是数据工厂中的 IR 上运行?如果是这样,它如何处理 SSIS 包?我认为它只会失败?

我以为你只能在数据工厂中使用 SSIS 包来安排作业,但我想我错了,因为它让我创建了一个时间表(尽管它还没有运行)。

其中一些作业是从离线 sql server 数据库创建的,并使用 T-sql 脚本重新创建。

编辑:我知道数据工厂和 sql 代理之间的差异。我想我要问的问题是:

  1. sql 代理作业调度程序是否可以像普通的 sql server 一样运行同时具有 T-sql 步骤和 SSIS 包步骤的作业,或者必须严格安排包在具有 SSIS IR 的数据工厂中运行?微软官方文档令人困惑

  2. 如果是这样,在托管实例中运行同时使用 T-sql 脚本和 SSIS 包的作业的最佳方法是什么?

解决方法

对于您的第一个问题“SQL Agent Job Scheduler 是否可以在一个步骤中运行具有 SSIS 包的作业,还是必须严格安排这些包在具有 SSIS IR 的数据工厂中严格运行?

是的,很多教程都讲过这个,你可以参考这个官方文档:

  1. Microsoft: SQL Server Agent Jobs for Packages:您可以使用 SQL Server 代理自动执行和安排 SQL Server Integration Services 包的执行。您可以安排部署到 Integration Services 服务器并存储在 SQL Server、SSIS 包存储和文件系统中的包。

Azure SQL 托管实例支持 SQL Agent job 并且可以调度运行 SSIS 包,数据工厂也可以通过 SSIS-IR 实现这一点。 enter image description here

第二个问题,在托管实例中运行同时使用 T-SQL 脚本和 SSIS 包的作业的最佳方法是什么?

Azure SQL 托管实例与本地 SQL Server 具有几乎相同的功能。因此,您可以创建 SQL 代理作业来执行 T-SQL 脚本或本地部署的 SSIS 包。

HTH。