SSIS 部署到SQL Job
微软 BI 系列随笔 - SSIS 基础 - 部署SQL Job
简介
在之前博客中,讲述了如何实现SSIS的项目部署以及利用SSIS的参数与环境加速部署,参见 微软 BI 系列随笔 - SSIS 基础 - 参数与环境。文章末尾提到了将SSIS部署到SQL Job。本文将讲述如何利用SQL Job来规划SSIS包的运行任务。
关于SQL Job
SQL Server Agent是一个任务规划器和警报管理器,在实际应用和环境下,可以将那些周期性的活动定义成一个任务,而让其在SQL Server Agent 的帮助下自动运行。
准备工作
首先来回顾一下,在之前的博文SSIS 项目部署模型和微软 BI 系列随笔 - SSIS 基础 - 参数与环境中,我们将一个SSIS项目部署到了SSISDB目录,并对其进行了环境参数的配置。下图是完成上述步骤之后的结构图

创建SQL Job
右击上图的Jobs,选择"New Job",系统将打开Job创建窗口。
基本信息
基本信息页主要是Job的名字,拥有者,类别以及描述。

添加步骤
接下来就是为Job添加步骤了,这里我们需要给出步骤的名称,选择类型和执行的账户。

在上图的第一步中我们选择类型为SQL Server Integration Services Package,表示这个步骤是基于SSIS包的。
第二步中我们选择执行账户,这里选择的是SQL Server Agent Account,他是SQL Server的一个内建账户,如果你有其他的账户的话也可以使用。但是要注意他的权限问题,比如这个SQL Server Agent Account就没有对一般磁盘文件夹的读写权限,如果你的包有文件读写的话,就需要在文件夹上给这个账户读写权限。
第三布是选择包所在的服务器以及具体的包的位置。
第四步是配置,参数可以使用之前配置的环境变量,这样就和前面的SSISDB目录里面的环境变量对应上了。
点击OK保存步骤。
设置执行计划
设置计划的类型,执行周期以及起始时间。这一步比较简单。

接下来设置警报,通知以及目标。如果你在包中设置了针对错误和警报的处理,创建了邮件通知任务,就不要另外单独设置了,使用系统默认的就可以了。如果需要这些信息的话,就自己去配置一下。
点击OK,好了,任务创建完成。可以看到我们的新Job出现在Jobs目录下面了。

脚本研究
生成这个Job的脚本来看看:
/****** Object: Step [CoposOrderProcessing] Script Date: 8/28/2015 10:32:02 AM ******/
EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'CoposOrderProcessing',
@step_id=1,
@cmdexec_success_code=0,
@on_success_action=1,
@on_success_step_id=0,
@on_fail_action=2,
@on_fail_step_id=0,
@retry_attempts=0,
@retry_interval=0,
@os_run_priority=0, @subsystem=N'SSIS',
@command=N'/ISSERVER "\"\SSISDB\EDCSSISProcessing\EDCSSISProcessing\CoposOrderProcessing.dtsx\"" /SERVER "\"PRCSGI12071D\MSSQLSERVER12\"" /ENVREFERENCE 1 /Par "\"$ServerOption::LOGGING_LEVEL(Int16)\"";1 /Par "\"$ServerOption::SYNCHRONIZED(Boolean)\"";True /CALLERINFO SQLAGENT /REPORTING E',
@database_name=N'master',
@flags=0
在上面的代码中,重点看@command的内容。
/ISSERVER "\"\SSISDB\EDCSSISProcessing\EDCSSISProcessing\CoposOrderProcessing.dtsx\""
--指定执行一个部署在SSIS上的包.
/SERVER "\"PRCSGI12071D\MSSQLSERVER12\""
--指定从那个服务器获取那个包
/ENVREFERENCE 1
--指定包运行时使用的环境变量
/Par "\"$ServerOption::LOGGING_LEVEL(Int16)\"";1
--logging记录级别
/Par "\"$ServerOption::SYNCHRONIZED(Boolean)\"";True
--同步运行的,意思是如果这个实例在运行,那么就不能重复执行
/CALLERINFO SQLAGENT
--这个任务是要SQL Agent来调用的
/REPORTING E
--只有错误信息会被报告
看来一切都在这里了啊。所有的包信息,环境变量,执行参数都在这一句command里面说的明明白白。
好了,执行一下吧,看看是不是和在SSISDB里面执行是一个效果,看看我们的[internal].[executable_statistics]表是不是记录了运行的信息了呢。
总结
本文详细讲解了如何使用SQL Agent规划SSIS包的执行工作,通过结合SSIS参数和环境变量,实现了他们之间的无缝结合,极大的方便了部署工作。
SSIS 部署到SQL Job的更多相关文章
- SSIS中执行SQL任务组件参数传递的问题
原文:SSIS中执行SQL任务组件参数传递的问题 症状: 执行SQL任务,传递参数到子查询中,执行报错. 错误: 失败,错误如下:"无法从使用 sub-select 查询的 SQL 语句中派 ...
- c#直接调用ssis包实现Sql Server的数据导入功能
调用ssis包实现Sql Server的数据导入功能网上已经有很多人讨论过,自己参考后也动手实现了一下,上一次笔者的项目中还用了一下这个功能.思前想后,决定还是贴一下增强记忆,高手请54. 1.直接调 ...
- 介绍几种SSIS部署方式
介绍 如果你已经开发完一个不错的SSIS包并且能够在你的本地完美的运行,每个任务都亮起绿色的通过标志.这时为了能够让这个包处理能够在指定时间运行,你需要将其发布到一个服务器上,并做好相关配置.作为开发 ...
- SSIS 实例——将SQL获取的信息传递到Email中
最近在为公司财务开发一个邮件通知时遇到了一个技术问题.原来我设计SSIS的是每天将ERP系统支付数据导出到财务支付平台后 Email 通知财务,然后财务到支付平台上进行支付操作.由于那个时候开发时间很 ...
- 微软BI 之SSIS 系列 - 使用 SQL Profilling Task (数据探测) 检测数据源数据
开篇介绍 SQL Profilling Task 可能我们很多人都没有在 SSIS 中真正使用过,所以对于这个控件的用法可能也不太了解.那我们换一个讲法,假设我们有这样的一个需求 - 需要对数据库表中 ...
- 微软BI 之SSIS 系列 - 在 SQL 和 SSIS 中实现行转列的 PIVOT 透视操作
开篇介绍 记得笔者在 2006年左右刚开始学习 SQL Server 2000 的时候,遇到一个面试题就是行转列,列转行的操作,当时写了很长时间的 SQL 语句最终还是以失败而告终.后来即使能写出来, ...
- 微软BI 之SSIS 系列 - Execute SQL Task 中的 Single Row 与 Full Result Set 的处理技巧
开篇介绍 Execute SQL Task 这个控件在微软BI ETL 项目中使用的频率还是非常高的,也是大部分入门 SSIS 初学者最早接触到的几个控制流控件. 我们通常使用 Execute SQL ...
- SSIS部署后执行失败,无法将保护的XML节点解密
将包属性中的 protectionLevel 设置成DontSaveSensitive 即可.
- SSIS 参数与环境
微软 BI 系列随笔 - SSIS 基础 - 参数与环境 简介 在上一篇博客中,主要讲述了如何实现SSIS的项目部署,参见 微软 BI 系列随笔 - SSIS 2012 基础 - SSIS 项目部署模 ...
随机推荐
- SPSS数据分析—多元方差分析
之前的单因素方差分析和多因素方差分析,都在针对一个因变量,而实际工作中,经常会碰到多个因变量的情况,如果单纯的将其拆分为多个单因变量的做法不妥,需要使用多元方差分析或因子分析 多元方差分析与一元方差分 ...
- WPF仿Word头部格式,涉及DEV RibbonControl,NarvbarControl,ContentPresenter,Navigation
时隔1个月,2015/06/17走进新的环境. 最近一个星期在学习仿Word菜单栏的WPF实现方式,废话不多说,先看一下效果. 打开界面后,默认选中[市场A],A对应的菜单栏,如上图, 选择[市场B] ...
- 使用Python创建简单的HTTP和FTP服务
不管工作中还是其他场合,经常会有文件分享的需求,比如自己下了一个4GB的游戏,同事下了一个800MB的软件,其他人如果也需要这些文件,显然直接分享是最快捷.最方便.最环保的方式了,如果再重新下,既浪费 ...
- js对汉字首字母排序
var city = ["北京","天津","上海","重庆","杭州"];city.sort(fu ...
- DOM创建和删除节点、HTML DOM常用对象[转]
创建和删除节点:——核心DOM 1. 创建单个元素节点:3步: 1. 创建空元素节点对象: var elem=document.createElement("标 ...
- iOS开发UI篇—xib的简单使用
iOS开发UI篇—xib的简单使用 一.简单介绍 xib和storyboard的比较,一个轻量级一个重量级. 共同点: 都用来描述软件界面 都用Interface Builder工具来编辑 不同点: ...
- 用Handler图片轮播练习
XML代码 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:andr ...
- Ubuntu 中文输入法安装包
1. 打开 Dashboard http://www.2cto.com/os/201207/144189.html
- rails之 Migrations (转)
1.简介 在rails中用migration可以很方便的管理数据库的结构.可以创建数据库,创建表,删除表,添加字段,删除字段,整理数据. migration就是一系列的class,这些类都继承了Act ...
- JavaScript基础--DOM对象(十三):(windows对象:history\location\navigator\screen\event)
DOM编程1.为什么要学习DOM(1) 通过dom编程,我们可以写出各种网页游戏(2)dom编程也是ajax的重要基础2.DOM编程介绍DOM = Document Object Model(文档对象 ...