数据流元素
SQL Server 2005 Integration Services (SSIS) 提供三种不同类型的数据流组件:源、转换和目标。源从数据存储区(如关系数据库中的表和视图、文件以及 Analysis Services 数据库)中提取数据。转换修改、汇总和清除数据。目标将数据加载到数据存储区,或创建内存中的数据集。
此外,Integration Services 还提供将一个组件的输出连接到另一个组件的输入的路径。路径定义组件的序列,并允许您向数据流添加批注或查看列的源。
以下关系图显示的数据流具有一个源、带有一个输入和一个输出的转换以及一个目标。除了输入列、输出列和外部列之外,该关系图还包含输入、输出和错误输出。
源
在 Integration Services 中,源是使数据流中的其他组件可以访问来自不同外部数据源的数据的数据流组件。
数据流的源通常具有一个常规输出。常规输出包含输出列,这些输出列是由源添加到数据流中的。
常规输出引用外部列。外部列是源中的列。例如 AdventureWorks 数据库的 Product 表中的 MadeFlag 列是可以添加常规输出的外部列。外部列的元数据包含诸如源列的名称、数据类型和长度等信息。
源的错误输出包含与常规输出相同的列,此外,还包括提供有关错误信息的两个额外列。Integration Services 对象模型不限制源可拥有的常规输出和错误输出的数目。除脚本组件外,Integration Services 包含的大多数源都具有一个常规输出,许多源具有一个错误输出。对于自定义源,可以通过编码方式实现多个常规输出和错误输出。
所有输出列都可用作数据流中下一个数据流组件的输入列。
有关详细信息,请参阅 Integration Services 源。
转换
转换的功能非常广泛。转换可以执行如更新、汇总、清除、合并和分发数据等任务。
转换的输入和输出定义传入和传出数据的列。根据对数据执行的操作,一些转换具有一个输入和多个输出,而其他转换具有多个输入和一个输出。转换还可以包含错误输出,它们提供关于发生的错误以及失败的数据的信息,例如,无法转换为整数类型的字符串数据。Integration Services 对象模型不限制转换可以包含的输入、常规输出和错误输出的数目。您可以创建自定义转换,这些转换可实现多个输入、常规输出和错误输出的任意组合。
转换的输入被定义为一个或多个输入列。某些 Integration Services 转换还可以引用外部列作为输入。例如 OLE DB 命令转换的输入包含外部列。输出列是转换添加到数据流的列。常规输出和错误输出都包含输出列。这些输出列转而充当数据流中下一个组件(其他转换或目标)的输入列。
有关详细信息,请参阅 Integration Services 转换。
目标
目标是将数据流中的数据写入特定数据存储区或创建内存中的数据集的数据流组件。
一个 Integration Services 目标必须具有至少一个输入。输入包含来自其他数据流组件的输入列。输入列映射到目标中的列。
许多目标还具有一个错误输出。目标的错误输出包含输出列,该输出列通常包含向目标数据存储区写入数据时发生的错误信息。错误的发生有许多不同的原因。例如,列可能包含空值,而目标列不能设置为空值。
Integration Services 对象模型不限制目标可包含的常规输入和错误输出的数目,因此,您可以创建具有多个输入和多个错误输出的自定义目标。
有关详细信息,请参阅 Integration Services 目标。
外部元数据
使用 SSIS 设计器在包中创建数据流时,源和目标的元数据被复制到源和目标的外部列,充当架构的快照。Integration Services 验证包时,SSIS 设计器将此快照与源或目标的架构比较,并根据更改发布错误和警告。
Integration Services 项目提供脱机模式。当您离线工作时,不会建立与包所使用的源或目标的连接,也不会更新外部列的元数据。
输入和输出
源有输出,目标有输入,而转换既有输入,又有输出。此外,可将许多数据流组件配置为使用错误输出。
输入
目标和转换具有输入。输入包含一个或多个输入列,如果数据流组件已配置为使用外部列,则输入列可引用外部列。输入可配置为监视和控制数据流,例如,可指定在出现错误时组件是应失败,忽略错误,还是将错误行重定向至错误输出。还可为输入指派说明,或更新输入名称。在 SSIS 设计器中,使用**“高级编辑器”对话框对输入进行配置。有关“高级编辑器”**的详细信息,请参阅 Integration Services 用户界面。
输出
源和转换始终具有输出。输出包含一个或多个输出列,如果数据流组件已配置为使用外部列,则输出列可引用外部列。可对输出进行配置以提供对数据的下游处理有用的信息。例如,可指示输出是否已排序。还可为输出提供说明或更新输出名称。在 SSIS 设计器中,使用**“高级编辑器”**对话框对输出进行配置。
错误输出
源、目标和转换都可包含错误输出。可使用**“配置错误输出”**对话框指定数据流组件响应每个输入中错误或列中错误的方式。如果错误或数据截断在运行时发生,且将数据流组件配置为重定向行,则有错误的数据行将被发送到错误输出。默认情况下,错误输出包含输出列和两个错误列:ErrorCode 和 ErrorColumn。输出列包含失败行的数据,ErrorCode 提供错误代码,而 ErrorColumn 标识失败的列。
有关详细信息,请参阅处理数据中的错误。
列
输入、输出和错误输出是列的集合。每一列都可配置,并取决于列类型(输入、输出或外部),Integration Services 为列提供不同的属性。Integration Services 提供三种不同的设置列属性的方法,您可以以编程方式、使用组件特定对话框或使用高级编辑器对话框来设置列属性。
路径
路径连接数据流组件。在 SSIS 设计器中,可以查看和修改路径属性,查看路径开始点的输出元数据,以及将数据查看器附加到路径。
有关详细信息,请参阅 Integration Services 路径和调试数据流。
配置数据流组件
数据流组件可在下列级别配置:组件级;输入级、输出级和错误输出级;列级。
- 在组件级,设置对所有组件都通用的属性,并设置组件的自定义属性。
- 在输入级、输出级和错误输出级,设置输入、输出和错误输出的公用属性。如果组件支持多个输出,可添加输出。
- 在列级,除了组件为列提供的任何自定义属性之外,还可以设置所有列共有的属性。如果组件支持添加输出列,则可向输出添加列。
可以通过 SSIS 设计器或以编程方式来设置属性。在 SSIS 设计器中,您可以使用为每个元素类型提供的自定义对话框,或者使用“属性”窗口或**“高级编辑器”**对话框来设置元素属性。
下列主题提供有关如何使用 SSIS 设计器来设置属性的详细信息: