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 项目部署模 ... 
随机推荐
- 今天的学习——关于JS时间获取方面的小问题
			①JS获取时间 var myDate = new Date(); myDate.getYear(); //获取当前年份(2位) myDate.getFullYear(); //获取完整的年份(4位,1 ... 
- 一个关于自定义类型作为HashMap的key的问题
			在之前的项目需要用到以自定义类型作为HashMap的key,遇到一个问题:如果修改了已经存储在HashMap中的实例,会发生什么情况呢?用一段代码来试验: import java.util.HashM ... 
- UE3植被工具-支持刷Actor)
			[目标] 植被工具-刷Actor [思路] 1 添加类型FFoliageMeshInfo.AddInstance 的函数 2 添加Instance就直接SpawnActor 3 类结构 4 修改的函数 ... 
- IT自学论坛
			http://yun.baidu.com/share/home?uk=4113898546&view=share#category/type=0 
- .htaccess更改目录下的默认主页
			我们知道apache的配置文件httpd.conf可以配置网站目录的默认主页.配置文件该部分定义如下: #DirectoryIndex: sets the file that Apache will ... 
- 做办公用品、文具方面的 B2C 是否有前景呢?
			企乐买现在正在做这方面的事,从市场角度来说需求是有的,客单价和重复购买率都还可以,但是也存在几个致命问题使得施展不开举步维艰: 1.中国特有的市场环境:在美国企业办公用品一般都是网上采购,避免灰色的东 ... 
- 使用Jsoup 抓取页面的数据
			需要使用的是jsoup-1.7.3.jar包 如果需要看文档我下载请借一步到官网:http://jsoup.org/ 这里贴一下我用到的 Java工程的测试代码 package com.javen ... 
- c# 配置文件之configSections配置(三)
			使用IConfigurationSectionHandler配置configSections ·步骤1:定义一个实体类 using System; using System.Collections.G ... 
- 用python定时文章发布wordpress
			用python定时文章发布wordpress: 流程: 采集 - 筛选文章 - wordpress文章发布. wordpress文章发布代码:python利用模块xmlrpclib发布文章非常便捷,省 ... 
- 高性能Mysql
			高性能 高可用 易伸缩 安全 高并发 定义 吞吐量(单位时间内多少次查询) MTBF(平均失效时间) MTTR(平均恢复时间) 同时工作的线程数或连接数 系统 事务 表锁.行级 ... 
