[Azure][SSIS]如何在 Azure SQL Database 上查看 Integration Services 目录

当我们透过相关的操作建立好 Data Factory 上的 Integration Runtime 之后,那接下来该如何在 SSMS 上面使用  Integration Services 目录相关功能呢 ?


在前一篇文章中“在 Azure SQL Database 上搭配 SSIS 来使用”,我们透过 Azure Portal 和 PowerShell 的相关命令,来完成 Integration Runtime 的建置,接下来我们将示范将 SSIS 的封装,要如何部属到 SSISDB 中。

首先您要先了解一下 SSIS 从 SQL Server 2012 开始,已经将原本的“封装部署模式”,改成“项目部署模式” ( 有兴趣的朋友可以参考另外一篇文章“小试项目部署模式( Project Deployment Model ) 和参数 ( Parameter )使用”,而当你需要将 SSIS 的封装,部属到 Azure 云端的时候,则必须使用新的项目部属模式。

接着我们要先用 SSMS 来连接我们的 Azure SQL Database,建议大家要使用 SSMS v17.2 以上的版本,这里我所使用的是 v17.3 的版本。

一开始我们跟以往一样的方式,选择连接到我们的 Azure SQL Database 上面,这个时候您可能会跟我的范例类似,就是您可以看到 SSISDB 的数据库,但是就是没有看到 “Integration Services 目录”的节点,先不要紧张,这个是正常的。

因此我们重新再建立一个连线,这个时候我们在输入完账号和密码之后,先别急着连线,先按下下方的“选项”的按钮

在“连接属性”的下方,设定要连接的数据库,输入 SSISDB,就可以按下下方的连接的按钮了。

此时在 SSMS 上面,就可以看到跟之前的不同了,现在就会多一个 “Integration Services 目录”的节点

因此这个时候我在 VS 2015 内,建立一个测试用的封装。

接着我们就在项目上,按下鼠标右键,选择“部署”

接着输入相关的连接资讯和设定部署的路径,确认无误之后就可以部署上去了。

接下来我们就可以在 SSMS 上透过 GUI 界面来选择要执行的封装,或者是透过 T-SQL 的命令来执行

Declare @execution_id bigint
EXEC [SSISDB].[catalog].[create_execution] @package_name=N'Main.dtsx', @[email protected]_id OUTPUT, @folder_name=N'TEST', @project_name=N'TestAzure', @use32bitruntime=False, @reference_id=Null, @useanyworker=True, @runinscaleout=True
Select @execution_id
DECLARE @var0 smallint = 1
EXEC [SSISDB].[catalog].[set_execution_parameter_value] @execution_id,  @object_type=50, @parameter_name=N'LOGGING_LEVEL', @[email protected]
EXEC [SSISDB].[catalog].[start_execution] @execution_id,  @retry_count=0
GO


也可以很方便的透过 SSMS 上面的 Integration Services 仪表板,轻松地了解到 SSIS 封装执行的状况了。

在这里如果有使用过之前的 SSIS 2012 的时候,会发觉其实在这里是有点不大相同的。以往在 SSIS 2012 的时候,如果采用 SQL 认证登入的话,是无法透过 T-SQL 来执行 SSIS 的封装,而这个问题,目前在 Azure SQL Database 和 SQL Server 2016 ,也都没有这样的限制了,也让大家可以更方便的去使用了。