SQL Server BI Step by Step SSIS 7 (End)
2010-01-01 15:41:31 来源:WEB开发网SQL Server BI Step by Step SSIS 7 (End) - 事务,错误输出,事件处理,日志记录
和其它程序一样,SSIS包同样需要健壮,稳定的运行,这样的程序才有可靠性和可伸缩性。SSIS提供了如下方面的支持:
1.事务: 可以对一个程序包设置成一个或者多个事务,甚至可以对两个程序包设置成一个事务。为了 保证数据的一致性,你还可以DTC事务或者SQL Server引擎级的事务。
2.检查点: 用来记录一个程序包出错时任务的运行情况,以便程序包再次启动时,直接从发生错误的 任务直接执行.
3.错误输出:即使再完美的程序也会有错误,尤其对于数据流中的任务来说,及有可能由于格式,类 型等问题,导致这一行的发生错误。SSIS允许针对这样的每行进行错误输出处理,你可 以进行修复或者 记录,当然你也可以忽略。
4.优先约束:在控制流中,你不仅可以使用一个任务的成功,失败或执行结束作为条件来执行下面的 任务,甚至可以使用表达式来做为条件。
5.事件处理: 在SSIS包中,事件处理是和控制流,数据流相并列的。在这里,你可以对程序包,任务 或者容器的不同的事件进行处理,事件还可以用于设置断点并控制日志记录。我们可以使用OnError事件 来捕获错误.
6.日志记录: 可以在运行时,记录指定的事件信息,可以保存在本地文本或者XML文件中,也可以保 存到数据库中,或者是Windows EventLog,Profiler文件中,甚至你可以扩展自己的日志记录。
需求:
为了和其它系统集成,AdventureWorks系统的产品价格实时更新,需要从一个指定的URL下载一个压 缩文件,解压后,对这个数据文件进行分析导入。由于下载的文件是由一个非程序维护的文件,由于人 为因素,里面的数据格式有可能有错误,但是要求忽略这样的数据。另外,如果处理失败,需要对保留 历史文件。如果发生错误,需要发送错误Email.同时需要保留程序日志,以便查找错误原因。
实现:
1. 在你的D盘下面新建一个ProductPrice文件夹来存放压缩和数据文件,在下面新建一个bak目录存 储备份文件。
2. 创建一个SSIS包,同时新建以下变量:
变更名 | 类型 | 值 | 说明 |
filePath | String | D:ProductPrice | 数据根目录 |
dataPath | String | D:ProductPriceProductList.txt | 解压后数据文件 |
backPath | String |
@[User::filePath] + "bak\" + (DT_WSTR, 4) YEAR( GETDATE() ) + "-" + (DT_WSTR, 2) MONTH( GETDATE() ) + "-" + (DT_WSTR, 2) DAY( GETDATE() ) + ".zip" |
需要将EvaluateAsExpression设置为True
主要用于存储未执行成功的压缩数据文件,其名称为当前日期(由表达式计算出当前日 期) 比如:D:ProductPricebak2009-9-20.zip |
WinRar | String | C:Program FilesWinRARWinRAR.exe | WINRAR的安装目录 |
zipPath | String | D:ProductPricePrice.zip | zip压缩文件下载路径 |
erroCount | Int32 | 0 | 数据文件解析出错的行数 |
赞助商链接