华为云云数据库rds集成服务(SSIS)_云淘科技

操作背景

SQL Server Integration Services(SSIS)是SQL Server实现商业智能(BI)的重要组件,提供了企业级数据集成和工作流处理方案。可以用于各种数据源的提取、转换、加载(ETL)操作。RDS for SQL Server提供了开启SSIS特性、同步项目文件、授权及项目部署、配置job执行项目等功能。

约束条件

开启该特性的实例必须是加域(AD域)实例,使用域账号进行登录。加域实例的实例详情的“数据库信息”模块会展示“域名|目录地址”信息。创建加域(AD域)实例请参见购买实例。
只读实例不支持打开SSIS功能。
需要设置实例的“clr enabled”参数值为1,开启CLR功能。
仅支持项目部署模式。
支持使用SQL Server Agent运行SSIS程序包。
仅支持如下版本:2014标准版、2014企业版、2016标准版、2016企业版、2017标准版、2017企业版、2019企业版、2022企业版。
包处理路径必须以“D:\SSIS”开头。在构建SSIS包时用到的路径都必须以“D:\SSIS”开头,部署到实例后台后包会自动存在放在“D:\SSIS\{projectName}\{projectFile}”路径下。确保工程中用到的所有文件、参数变量、表达式路径均是以此路径开头。
您不能直接部署SSIS项目,请使用msdb.dbo.rds_ssis_task存储过程执行,详细信息请参考部署SSIS工程。
请使用DontSaveSensitive的安全规则来构建SSIS项目(.ispac)用于部署。
请不要手动创建或者恢复SSISDB数据库,否则可能造成实例SSIS无法正常使用。
构建的SSIS项目文件需要上传到用户的OBS桶,目前支持的文件格式包括:“.zip”、“.ispac”。文件名需要和工程名保持一致,zip中需要包含有.ispac的工程文件,文件名只能包含大小写字母、数字、中划线、下划线等字符。

开启集成服务

登录管理控制台。
单击管理控制台左上角的,选择区域和项目。
单击页面左上角的,选择“数据库 > 云数据库 RDS”,进入RDS信息页面。
在“实例管理”页面,选择目标实例,单击实例名称,进入实例的“基本信息”页签。
在左侧导航栏单击“集成服务”,在“集成服务”页面单击“开启SSIS”后的
在“确认”弹出框中,单击“确认”,开启SSIS。

开启后不支持关闭。
开启SSIS默认会设置“clr enabled”参数值为1,请不要手动关闭该参数,否则将造成SSIS无法正常工作。

开启成功后可以添加SSIS项目包。

开启成功后,实例会进入数据同步状态,等待SSISDB同步完成后,状态恢复正常。
用户需要将RDS的host信息添加到用户将要加域访问的ECS中或者线下加域的机器中。

添加SSIS包

构建的SSIS项目文件需要上传到用户的OBS桶,才能执行后续步骤。

登录管理控制台。
单击管理控制台左上角的,选择区域和项目。
单击页面左上角的,选择“数据库 > 云数据库 RDS”,进入RDS信息页面。
在“实例管理”页面,选择目标实例,单击实例名称,进入实例的“基本信息”页签。
在左侧导航栏单击“集成服务”,单击“添加包”。
在“添加包”弹出框中,选择包名,单击“确定”,当添加包成功后,在集成服务页面会显示添加成功的包信息。

图1 添加包

部署SSIS工程

使用SSMS等工具连接数据库。
执行存储过程(master.dbo.rds_grant_ssis_to_login),为域账号授予SSIS相关权限。详细内容请参见域账号授权SSIS。
选择“Integration Service Catalogs > SSISDB”,右键新建目录,输入SSIS目录名称。目录创建成功后,会自动产生Projects和Environments子目录。

使用域账号执行存储过程(msdb.dbo.rds_ssis_task)部署SSIS工程包。详细内容请参见部署SSIS工程。
右键包名,可以执行配置、运行、校验等操作。构建包时采用DontSaveSensitive安全策略,因此在运行包之前需要配置相关的连接器的密码信息,以及运行参数。

右键包名,单击“Configure”,配置相关参数。

图2 配置参数

配置完成后,单击“Execute”运行SSIS工程。如下图,表示运行成功。

图3 运行报告

Agent job在运行时需要提供proxy的认证信息。选择“Security > Credentials”,右键单击“New Credentials”,输入域账号认证信息,创建认证。
Agent job中需要使用代理来负责运行SSIS包,执行以下SQL创建Proxy。

USE [msdb]
GO
EXEC msdb.dbo.sp_add_proxy @proxy_name=N'test_proxy', @credential_name=N'ssis_credential', @enabled=1
go
exec msdb.dbo.rds_grant_proxy_subsystem 'test_proxy', 'SSIS'
 
USE [msdb]
GO
EXEC msdb.dbo.sp_grant_login_to_proxy @proxy_name=N'test_proxy', @login_name=N'JHN\dcadmin'
GO

sp_add_proxy:系统存储过程,创建proxy名称为@proxy_name的并且指定访问认证信息名字为@credential_name的代理。
sp_grant_login_to_proxy:系统存储过程,为@proxy_name的授予@login_name账号的使用权限。
rds_grant_proxy_subsystem:RDS提供的存储过程,为proxy授予子系统权限。

参数说明

@proxy_name:需要授予权限的proxy名称。

@proxy_subsystem:子系统名称,SSIS子系统则填写“SSIS”即可。

创建Agent job。选择“SQL Server Agent > Jobs”,输入job名称,添加step信息。创建完成后可看到对应的job信息。
右键job名称,单击“start job” ,等待运行结果。
SSISDB提供视图可查询SSIS工程及操作相关的记录。

父主题: RDS for SQL Server用户指南

同意关联代理商云淘科技,购买华为云产品更优惠(QQ 78315851)

内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家