!-
Informatica PowerCenter V8
参数和变量使用指南
中国区唯一总代理 神州数码(中国)有限公司
提交人:夏凯 冷鹏
2007年8月
!-
目 录
!-
第一章 参数和变量
1、概述
参数和变量可以定义在工作流、工作集或会话中。您可以使用 WordPad 或 Notepad 等文本编辑器来创建参数文件。您在参数文件中列出参数或变量及其值。
参数文件可以包含以下类型的参数和变量: ? Integration Service变量 ? Integration Service process变量 ? Workflow变量 ? Worklet变量 ? Session参数 ? Mapping参数和变量
当您在工作流、工作集或会话中使用参数或变量时,PowerCenter Server将检查参数文件以确定参数或变量的开始值。您可以使用参数文件来初始化工作流变量、工作集变量、映射参数和映射变量。如果您不定义这些参数和变量的开始值,PowerCenter Server将在其它位置检查参数或变量的开始值。
您可以将参数文件放置在PowerCenter Server计算机上,也可以放置在本机上。如果您无法访问 PowerCenter Server计算机上的参数文件,请使用本地参数文件。使用本地参数文件时,pmcmd会将文件中的变量和值传递到PowerCenter Server。本地参数文件可以与startworkflow pmcmd命令配合使用。
您必须在参数文件中定义会话参数。由于会话参数没有默认值,因此如果 PowerCenter Server 在参数文件中找不到会话参数的值,就无法初始化会话。
通过为参数文件中的每个对象单独创建分区,您可以在一个参数文件中包含多个工作流、工作集或会话的参数或变量信息。
您还可以为单个工作流、工作集或会话创建多个参数文件,并在必要时更改这些任务使用的文件。要指定 PowerCenter Server 用于工作流、工作集或会话的参数文件,您可以执行以下任一项操作:
? 在工作流、工作集或会话属性中输入参数文件名和目录。
? 使用 pmcmd 启动工作流、工作集或会话,然后在命令行中输入参数文件名和目录。
如果您同时在工作流、工作集或会话属性以及 pmcmd 命令行中输入参数文件名和目录,PowerCenter Server 将使用您在 pmcmd 命令行中输入的信息。
参数文件的应用体现在以下几个方面: ? 对源文本文件名进行参数化
!-
? 对源表名进行参数化
? 对目标输出文本文件名进行参数化 ? 对源与目标的数据库连接进行参数化 ? 对日志文件及路径进行参数化
2、参数与变量存在的三种形式 2.1系统级变量
? SYSDATE 系统日期
? SESSSTARTTIME SESSION启动时间
? $$$SessStartTime 返回Session启动时间的字符串值
2.2 Mapping级参数与变量
在 Designer 中,您可以使用映射参数和变量,让映射变得更灵活。映射参数和变量表示映射和映射组件中的值。如果在映射中声明映射参数和变量,那么您可以在会话中,通过更改映射的参数和变量值,来重新使用该映射。这可以减少创建多个映射所带来的管理费用,因为只需更改映射中的某些特性即可。
在映射中使用映射参数或变量时,您要先声明映射参数或变量供每个映射组件或映射使用。然后,在运行会话之前,您要为映射参数或变量定义值。
您可以在映射中使用映射参数和变量来增量提取数据。在“源限定符”转换的源过滤器中使用映射参数或变量可以确定增量提取数据的开始时间标记和结束时间标记。
例如,您可以创建用户定义的映射变量 $$LastUpdateDateTime,用以保存 PowerCenter Server 在上一个会话中读取的最后一行的时间标记。在源过滤器中,将 $$LastUpdateDateTime 用于开始时间标记,而将内置变量 $$$SessStartTime 用于结束时间标记。使用以下过滤器基于源中的 SALES.sales_datetime 列增量提取数据:
SALES.sales_datetime > TO_DATE (‘$$LastUpdateDateTime’) AND SALES.sales_datetime < TO_DATE (‘$$$SessStartTime’)
2.1.1 Mapping参数
映射参数表示在运行会话之前您可以定义的常量值。映射参数在整个会话中保持相同的值。
使用映射参数时,您要在映射或映射组件中声明并使用该参数。然后在参数文件中定义该参数的值。在会话过程中,PowerCenter Server 将依照该值对参数的所有引用进行计算。
例如,您希望使用相同的会话来分别提取每个客户的事务记录。您可以创建一个映射参数以表示单个客户帐户,而无需为每个客户帐户创建单独的映射。然后,您可以在源过滤器中使用该参数,只提取该客户帐户的数据。
!-
运行会话之前,您需要在参数文件中输入该参数的值。
要重新使用相同的映射来提取其他客户帐户的记录,您可以在参数文件中为该参数输入新的值,然后运行会话。或者,您可以为每个客户帐户创建参数文件,然后每当使用 pmcmd 时就以不同的参数文件启动会话。通过使用参数文件,您可以减少创建多个映射和会话(用于提取不同客户帐户的事务记录)所带来的管理费用。
每当您运行会话时,如果要使用映射参数的相同值,请对每个会话运行使用相同的参数文件。要在会话之间更改映射参数的值时,您可以执行以下任一操作:
? 更新会话之间的参数文件。
? 创建不同的参数文件并配置会话使用新的文件。
? 从会话属性中移除参数文件,以便会话使用映射中参数的配置初始值。 ? 选择类型为参数
字 段 名称 类型 数据类型 精度或标度 聚合 必需/可选 必需 母数字或下划线字符。 必需 变量或参数。 说 明 参数名称。名称参数 $$ParameterName。参数名称的语法必须是在 $$ 后面加上字参数的数据类型。选择有效的转换数据类型。使用除 Binary 或 Raw 之外的任何必需 数据类型。 必需 不适用 参数的精度和标度。 用于变量。 参数的初始值。如果您没有在参数文件中为参数设置一个值,PowerCenter Server 在会话过程中将使用该参数的初始值。如果此值也未定义,PowerCenter Server 将基于映射变量的数据类型使用默认值。 对日期/时间参数的初始值使用以下任一格式: 初始值 可选 - MM/DD/RR - MM/DD/RR HH24:MI:SS - MM/DD/YYYY - MM/DD/YYYY HH24:MI:SS 说明 可选 与参数相关联的说明。 2.2.2 Mapping变量
与映射参数不同的是,映射变量表示在会话进行时一个可以改变的值。在每个会话成功运行后,PowerCenter