欢迎来到天天文库
浏览记录
ID:9492388
大小:59.50 KB
页数:8页
时间:2018-05-01
《ssis的检查点文件用法--》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、SSIS的检查点文件用法>> 如果你是一个ETL应用程序开发人员或是管理员,那么你可能会遇到的一个问题就是发生失败后重新运行整个ETL应用程序。从失败处重新运行应用程序通常是不可能的,这有许多原因,但是主要是由于很难执行日志记录和维护应用程序的每一步以及配置基于可用日志的执行。SQLServer集成服务提供了一个在某种程度上自动从失败处重启处理的机制。这个机制是通过使用检查点文件来提供的。它帮助我们配置ETL解决方案在发生一个执行错误后的执行流。这篇文章解释了检查点文件和集成服务的一些有用任务的使用。 这篇文章包括: 建立检查点文档 在for
2、loop中的检查点用法 在事件中的检查点用法 其它约束 建立检查点文档 检查点文件的配置从建立三个包的属性开始:CheckpointFileName、CheckpointUsage、SaveCheckpoints。这些属性在检查点分类下和包的属性一样有效(看分类视图的属性)。CheckpointFileName运行我们设置检查点文件的路径。因为信息是以XML格式存储的,给这个文件一个XML扩展会更好,不过这不是必需的(例如D:CheckpointFiles/LoadDataPackage.xml)。 第二个属性,CheckpointUsag
3、e告诉集成服务这个包是否需要一个检查点文件。它可以使用三个值。Never、IfExists和AlplePackageCheckpoint.xml。之所以创建了这个文件是由于我们将包中的SaveCheckpoints值设置为True。因为包执行失败所以没有删除这个文件。执行失败是由于加载Transaction2文件的FailPackageOnFailure属性设置为True了。 将Tranaction2.txt文件放置在源文件下并运行这个包。你将看到包从加载Trana123下一页>>>>这篇文章来自..,。ction2文件任务开始并继续执行: 它从
4、第三个任务开始,因为检查点文件指导它这么做,而包使用了这个检查点文件因为CheckpointUsage属性设置为IfExists了。如果你检查检查点文件所在的文件夹,那你现在不会看到这个文件了。它已经被删除了,因为包执行成功了。 在forloop中的检查点用法 使用forloop的检查点设置是不同的。我尝试在一个ETL测试应用程序中执行它时遇到了这个问题。为了了解它,让我们试一些简单的代码。 打开一个新的SSIS项目并添加一个ForLoop容器。创建一个叫做Year的变量并设置类型为Int32。设置Year的默认值为2004。假设这样一个场景:
5、你需要从一个给定的年份做一些处理到当前的年份。所以给定的年份是变量Year的值。添加一个脚本任务到显示了这个处理的ForLoop容器上。在ScriptTask的ReadOnlyVaribles中添加变量Year,并添加一个信息框,它显示了如下信息:以下是引用片段: 'code1 MsgBox(CalculationdoneforyearDts.Variables(User::Year).Value.ToString().) Dts.TaskResult=Dts.Results.Success 现在如下所示地配置ForLoop容器。注意
6、我们在InitExpression上不设置Year的值。初始值会从变量那里得到。 完成了!运行这个包。你将看到2004、2005、2006和2007年的信息。现在让我们开始配置检查点文件。如下所示地设置属性: 因为我们需要在某一点上让包执行失败,所以改变脚本任务的代码,如下所示:以下是引用片段: 'code2 If(CInt(Dts.Variables(User::Year).Value)=2005)Then MsgBox(Erroroccurredp;Dts.Variables(User::Year).Value.ToString
7、().) Dts.TaskResult=Dts.Results.Failure Else MsgBox(CalculationdoneforyearDts.Variables(User::Year).Value.ToString().) Dts.TaskResult=Dts.Results.Success EndIf 再次运行这个包。这个包在执行2004年后失败。你将看到检查点文件已经创建了而且没有被删除。改变脚本任务的代码如它原来的样子(代码1)。因为包执行失败了而有一个检查点文件可用,如果我们重启这个包,它将从失败处开始,它应该开始处
8、理2005。重启这个包。它应该从失败处开始,但是它却是从处理2004年开始。这是因为检查点文件说失败处的变量
此文档下载收益归作者所有