包开发故障排除
Integration Services 包括在 Business Intelligence Development Studio 中开发包的过程中可用于对包进行故障排除的功能和工具。
设计时验证问题故障排除
在 BI Development Studio 中开发包时,有时可能会无法连接到数据源,或者只有在运行时执行了包中靠前的任务后,才能对包的部分内容进行验证。Integration Services 包括以下功能,可帮助您避免由这些情况导致的验证错误:
数据源不可用时脱机工作。通常,SSIS 设计器将尝试连接包使用的每个数据源以验证与源和目标相关联的元数据。这会导致在数据源不可用时出现验证错误。若要阻止这些连接尝试,您可以从**“SSIS”菜单中启用“脱机工作”。与 DelayValidation 属性不同,“脱机工作”选项即使在包打开之前也可用。您还可以启用“脱机工作”**以加快设计器中操作的速度,而仅在需要验证包的时候再禁用此选项。
针对在运行时之前无效的包元素配置 DelayValidation 属性。对于其配置在设计时无效的包元素,您可以将 DelayValidation 设置为 True 以防止出现验证错误。例如,可以使用只有在运行时通过执行 SQL 任务创建才存在的目标表来执行数据流任务。可以在包级或包中的各个任务和容器级启用 DelayValidation 属性。在部署包时,对于相同的包元素,通常必须将此属性设置为 True,以防止运行时出现相同的验证错误。
可以对数据流任务设置 DelayValidation 属性,但不能对单个数据流组件设置该属性。可以通过将单个数据流组件的 ValidateExternalMetadata 属性设置为 false 来实现类似的效果。但是,当此属性的值为 false 时,该组件不能识别外部数据源的元数据的更改。
如果进行验证时包使用的数据库对象被锁定,则验证过程可能会停止响应。在这些情况下,SSIS 设计器也会停止响应。可以使用 Management Studio 继续验证过程,以结束 SQL Server 中的关联会话。还可以使用本节中介绍的设置避免此问题。
重要提示 |
---|
在运行具有 DTC 事务的包(TransactionOption 属性 = required)并且验证数据流组件中的外部元数据(ValidateExternalMetadata 属性 = true)时,在以下条件下该包可能会挂起:在执行数据流之前其他任务在 DTC 事务中已存在,并且“表或视图”或“表名变量或视图名变量”用作 OLE DB 目标的数据访问方法。在此情况下,验证过程将被已在运行中的其他任务阻止。其原因在于,用于验证是连接在 DTC 事务中从未登记。这是默认设置。若要避免此情况,请将数据流组件 ValidateExternalMetadata 属性设置为 false。 |
控制流故障排除
Integration Services 包括以下功能和工具,可用于在包开发过程中对包中的控制流进行故障排除:
对任务、容器和包设置断点。可以使用 SSIS 设计器提供的图形工具设置断点。可以在包级或包中的各个任务和容器级启用断点。某些任务和容器提供用于设置断点的其他中断条件。例如,可以对 For 循环容器启用一个中断条件,该中断条件在循环的每次迭代开始时挂起执行。
使用调试窗口。在运行具有断点的包时,Business Intelligence Development Studio 中的调试窗口提供对变量值和状态消息的访问。
查看“进度”选项卡中的信息。SSIS 设计器提供有关在 Business Intelligence Development Studio 中运行包时控制流的其他信息。“进度”选项卡按执行顺序列出任务和容器,而且还包括每个任务和容器及包自身的开始时间和结束时间、警告以及错误消息。
有关这些功能的详细信息,请参阅调试控制流。
数据流故障排除
Integration Services 包括以下功能和工具,可用于在包开发过程中对包中的数据流进行故障排除:
仅使用数据的子集进行测试。如果只想通过使用一个数据集的示例对包中的数据流进行故障排除,您可以包括百分比抽样转换或行抽样转换,以便在运行时创建一个内联的数据示例。有关详细信息,请参阅百分比抽样转换和行抽样转换。
使用数据查看器监视在数据流中移动的数据。数据查看器随着数据在源、转换和目标之间的移动显示相关数据值。数据查看器可以网格、直方图、散点图或柱形图的方式显示数据。您可以将数据从数据查看器复制到剪贴板中,然后再将数据粘贴到文件或 Excel 电子表格中。有关详细信息,请参阅如何将数据查看器添加到数据流。
对支持错误输出的数据流组件配置错误输出。许多数据流的源、转换和目标也支持错误输出。通过配置数据流组件的错误输出,可以将包含错误的数据定向到不同的目标。例如,您可以将失败或截断的数据捕获到一个单独的文本文件中。也可以将数据查看器附加到错误输出,而且只检查错误数据。在设计时,错误输出捕获错误的数据值,以帮助您开发可高效处理实际数据的包。不过,其他故障排除工具和功能仅在设计时有用,而错误输出在生产环境中仍然非常有用。有关详细信息,请参阅处理数据流中的错误。
捕获处理的行数。在 SSIS 设计器中运行包时,通过某路径传递的行数将显示在数据流设计器中。随着数据在路径中的移动,该数量会定期更新。您还可以将行计数转换添加到数据流中,以捕获变量中的最终行计数。有关详细信息,请参阅行计数转换。
查看“进度”选项卡中的信息。SSIS 设计器提供有关在 Business Intelligence Development Studio 中运行包时数据流的其他信息。“进度”选项卡按执行顺序列出数据流组件,而且还包括包的每个阶段的进度(显示为完成百分比)以及写入目标的行数。
有关这些功能的详细信息,请参阅调试数据流。
脚本故障排除
Microsoft Visual Studio Tools for Applications (VSTA) 是一种可以用来编写脚本任务和脚本组件所使用的脚本的开发环境。VSTA 提供了可用于排除包开发过程中的脚本故障的以下功能和工具:
**在脚本任务的脚本中设置断点。**VSTA 仅对脚本任务中的脚本提供调试支持。通过综合使用在脚本任务中设置的断点与对包以及包中的任务和容器设置的断点,可以对所有包元素进行无缝调试。
注意 当调试一个包含多个脚本任务的包时,调试器将只命中其中一个脚本任务中的断点,而将忽略其他脚本任务中的断点。如果脚本任务是 Foreach 循环容器或 For 循环容器的一部分,则调试器将在循环的第一次迭代之后忽略脚本任务中的断点。
有关详细信息,请参阅调试脚本。有关如何调试脚本组件的建议,请参阅 脚本组件的编码和调试。
无说明错误的故障排除
如果在包开发过程中遇到了没有附带说明的 Integration Services 错误号,可以在 SSIS 错误和消息参考 中查找说明。目前该列表中不包括故障排除信息。
|