Informatica PowerCenter V8参数和变量使用指南.docx
- 文档编号:24349952
- 上传时间:2023-05-26
- 格式:DOCX
- 页数:26
- 大小:503.60KB
Informatica PowerCenter V8参数和变量使用指南.docx
《Informatica PowerCenter V8参数和变量使用指南.docx》由会员分享,可在线阅读,更多相关《Informatica PowerCenter V8参数和变量使用指南.docx(26页珍藏版)》请在冰豆网上搜索。
InformaticaPowerCenterV8参数和变量使用指南
InformaticaPowerCenterV8
参数和变量使用指南
第一章参数和变量
1、概述
参数和变量可以定义在工作流、工作集或会话中。
您可以使用WordPad或Notepad等文本编辑器来创建参数文件。
您在参数文件中列出参数或变量及其值。
参数文件可以包含以下类型的参数和变量:
◆IntegrationService变量
◆IntegrationServiceprocess变量
◆Workflow变量
◆Worklet变量
◆Session参数
◆Mapping参数和变量
当您在工作流、工作集或会话中使用参数或变量时,PowerCenterServer将检查参数文件以确定参数或变量的开始值。
您可以使用参数文件来初始化工作流变量、工作集变量、映射参数和映射变量。
如果您不定义这些参数和变量的开始值,PowerCenterServer将在其它位置检查参数或变量的开始值。
您可以将参数文件放置在PowerCenterServer计算机上,也可以放置在本机上。
如果您无法访问PowerCenterServer计算机上的参数文件,请使用本地参数文件。
使用本地参数文件时,pmcmd会将文件中的变量和值传递到PowerCenterServer。
本地参数文件可以与startworkflowpmcmd命令配合使用。
您必须在参数文件中定义会话参数。
由于会话参数没有默认值,因此如果PowerCenterServer在参数文件中找不到会话参数的值,就无法初始化会话。
通过为参数文件中的每个对象单独创建分区,您可以在一个参数文件中包含多个工作流、工作集或会话的参数或变量信息。
您还可以为单个工作流、工作集或会话创建多个参数文件,并在必要时更改这些任务使用的文件。
要指定PowerCenterServer用于工作流、工作集或会话的参数文件,您可以执行以下任一项操作:
◆在工作流、工作集或会话属性中输入参数文件名和目录。
◆使用pmcmd启动工作流、工作集或会话,然后在命令行中输入参数文件名和目录。
如果您同时在工作流、工作集或会话属性以及pmcmd命令行中输入参数文件名和目录,PowerCenterServer将使用您在pmcmd命令行中输入的信息。
参数文件的应用体现在以下几个方面:
◆对源文本文件名进行参数化
◆对源表名进行参数化
◆对目标输出文本文件名进行参数化
◆对源与目标的数据库连接进行参数化
◆对日志文件及路径进行参数化
2、参数与变量存在的三种形式
2.1系统级变量
✓SYSDATE系统日期
✓SESSSTARTTIMESESSION启动时间
✓$$$SessStartTime返回Session启动时间的字符串值
2.2Mapping级参数与变量
在Designer中,您可以使用映射参数和变量,让映射变得更灵活。
映射参数和变量表示映射和映射组件中的值。
如果在映射中声明映射参数和变量,那么您可以在会话中,通过更改映射的参数和变量值,来重新使用该映射。
这可以减少创建多个映射所带来的管理费用,因为只需更改映射中的某些特性即可。
在映射中使用映射参数或变量时,您要先声明映射参数或变量供每个映射组件或映射使用。
然后,在运行会话之前,您要为映射参数或变量定义值。
您可以在映射中使用映射参数和变量来增量提取数据。
在“源限定符”转换的源过滤器中使用映射参数或变量可以确定增量提取数据的开始时间标记和结束时间标记。
例如,您可以创建用户定义的映射变量$$LastUpdateDateTime,用以保存PowerCenterServer在上一个会话中读取的最后一行的时间标记。
在源过滤器中,将$$LastUpdateDateTime用于开始时间标记,而将内置变量$$$SessStartTime用于结束时间标记。
使用以下过滤器基于源中的SALES.sales_datetime列增量提取数据:
SALES.sales_datetime>TO_DATE(‘$$LastUpdateDateTime’)
ANDSALES.sales_datetime 2.1.1Mapping参数 映射参数表示在运行会话之前您可以定义的常量值。 映射参数在整个会话中保持相同的值。 使用映射参数时,您要在映射或映射组件中声明并使用该参数。 然后在参数文件中定义该参数的值。 在会话过程中,PowerCenterServer将依照该值对参数的所有引用进行计算。 例如,您希望使用相同的会话来分别提取每个客户的事务记录。 您可以创建一个映射参数以表示单个客户帐户,而无需为每个客户帐户创建单独的映射。 然后,您可以在源过滤器中使用该参数,只提取该客户帐户的数据。 运行会话之前,您需要在参数文件中输入该参数的值。 要重新使用相同的映射来提取其他客户帐户的记录,您可以在参数文件中为该参数输入新的值,然后运行会话。 或者,您可以为每个客户帐户创建参数文件,然后每当使用pmcmd时就以不同的参数文件启动会话。 通过使用参数文件,您可以减少创建多个映射和会话(用于提取不同客户帐户的事务记录)所带来的管理费用。 每当您运行会话时,如果要使用映射参数的相同值,请对每个会话运行使用相同的参数文件。 要在会话之间更改映射参数的值时,您可以执行以下任一操作: ◆更新会话之间的参数文件。 ◆创建不同的参数文件并配置会话使用新的文件。 ◆从会话属性中移除参数文件,以便会话使用映射中参数的配置初始值。 ◆选择类型为参数 字段 必需/可选 说明 名称 必需 参数名称。 名称参数$$ParameterName。 参数名称的语法必须是在$$后面加上字母数字或下划线字符。 类型 必需 变量或参数。 数据类型 必需 参数的数据类型。 选择有效的转换数据类型。 使用除Binary或Raw之外的任何数据类型。 精度或标度 必需 参数的精度和标度。 聚合 不适用 用于变量。 初始值 可选 参数的初始值。 如果您没有在参数文件中为参数设置一个值,PowerCenterServer在会话过程中将使用该参数的初始值。 如果此值也未定义,PowerCenterServer将基于映射变量的数据类型使用默认值。 对日期/时间参数的初始值使用以下任一格式: -MM/DD/RR -MM/DD/RRHH24: MI: SS -MM/DD/YYYY -MM/DD/YYYYHH24: MI: SS 说明 可选 与参数相关联的说明。 2.2.2Mapping变量 与映射参数不同的是,映射变量表示在会话进行时一个可以改变的值。 在每个会话成功运行后,PowerCenterServer都会将映射变量的值保存到资料库并在下次您运行此会话时使用该值。 使用映射变量时,您要在映射或映射组件中对该变量进行声明,然后在映射中使用变量函数来更改变量的值。 会话开始时,PowerCenterServer将依照变量的开始值对变量的引用进行计算。 会话成功结束后,PowerCenterServer会将变量的最终值保存至资料库。 下次您运行该会话时,PowerCenterServer将依照保存的值对变量的引用进行计算。 通过在参数文件中定义变量的开始值,您可以覆盖保存的值。 使用映射变量来执行源的增量读取。 例如,假设以上映射参数示例中客户帐户的编号是从001至065,增量为1。 您可以创建初始值为001的映射变量,而无需创建映射参数。 在映射中,使用一个变量函数给变量值加1。 PowerCenterServer首次运行会话时,它将提取客户帐户001的记录。 会话结束时,它将给变量加1,并将该值保存到资料库。 下次PowerCenterServer运行会话时,它将提取下一个客户帐户002的数据。 它同时还增加变量值,因此下一个会话将提取并查找客户帐户003的数据。 ◆选择类型为变量 字段 必需/可选 说明 名称 必需 变量名。 名称变量$$VariableName。 变量名的语法必须是在$$后面加上字母数字或下划线字符。 类型 必需 变量或参数。 数据类型 必需 变量的数据类型。 选择有效的转换数据类型。 使用除Binary之外的任何数据类型。 您选择的数据类型会影响您选择的聚合类型。 例如,如果创建字符串变量,您就不能使用Count聚合类型对其进行配置。 精度或标度 必需 变量的精度和标度。 聚合 必需 变量的聚合类型。 确定变量可以执行的计算类型。 -如果要使用映射变量确定一组值中的最大值,请将聚合设为Max。 -如果要使用映射变量来计算从源读取的行数量,请将聚合设为Count。 -如果要使用映射变量确定一组值中的最小值,请将聚合设为Min。 初始值 可选 变量的初始值。 如果没有将变量值保存至资料库,或没有在参数文件中定义变量值,那么PowerCenterServer将使用变量的初始值。 如果此值也未定义,PowerCenterServer将基于映射变量的数据类型使用默认值。 对日期时间变量的初始值使用以下任一格式: -MM/DD/RR -MM/DD/RRHH24: MI: SS -MM/DD/YYYY -MM/DD/YYYYHH24: MI: SS 说明 可选 与变量相关联的说明。 2.2.3使用Mapping参数和变量 您可以使用MappingDesigner或MappletDesigner创建映射参数和变量。 映射参数和变量在创建后出现在“表达式编辑器”的“变量”选项卡中。 您可以在映射组件或映射的任何表达式中使用这些参数和变量。 Designer在映射组件和映射的“表达式编辑器”中对映射参数和变量进行验证。 您可以在映射组件或映射的源限定符中使用映射参数和变量。 在“源限定符”转换中使用映射参数和变量时,Designer会展开映射参数和变量,然后再将查询传递至源数据库以进行验证。 这允许源数据库验证查询。 使用TransformationDeveloper创建可再用转换时,您可以使用任何映射参数或变量。 由于可再用转换未包含在任何映射组件或映射中,Designer将验证任意映射参数或变量在可再用转换表达式中的使用。 在映射组件或映射中使用可再用转换时,Designer将再次对该表达式进行验证。 如果在映射组件或映射中没有定义参数或变量,或在可再用转换中错误使用参数或变量,那么当您对映射组件或映射进行验证时,Designer将记录一个错误。 当Designer对可再用转换中的映射变量进行验证时,它会将变量视为整型数据类型。 您不能在映射组件和映射之间交替使用映射参数和变量。 不能在映射组件中使用为映射声明的映射参数和变量。 同样,您不能在映射中使用为映射组件声明的映射参数或变量。 从Designer中的Mappings/Mapplets菜单中进行定义在相应的Mapping或Mapplet中进行引用即可。 2.2.4初始和默认值 在映射或映射组件中声明映射参数或变量时,您可以输入一个初始值。 如果参数文件中没有定义映射参数,PowerCenterServer将使用映射参数的配置初始值。 同样,如果参数文件中没有定义变量值,而且资料库中没有保存的变量值,PowerCenterServer将使用该映射变量的配置初始值。 如果PowerCenterServer需要一个初始值,而您又没有为参数或变量声明初始值,PowerCenterServer将基于参数或变量的数据类型使用一个默认值。 PowerCenterServer所使用的不同类型数据的默认值: 数据 默认值 String 空字符串。 Numeric 0 Datetime 1/1/1753A.D.,或 1/1/1(如果PowerCenterServer配置为与4.0的兼容)。 例如,如果您使用整型映射变量$$MiscellaneousExpenses创建一个新映射,而且,既没有为变量配置一个初始值,也没有在参数文件中对其进行定义,那么当您首次运行一个带有该映射的会话时,PowerCenterServer将使用数值数据类型的默认值0。 或者,假设您创建了一个映射参数$$MiscellaneousCosts来表示附加费用,此费用当前不存在于源数据中,但在将来可能要用到。 配置小数数据类型的参数。 由于在没有附加费用时希望$$MiscellaneousCosts按0进行计算,因此您可以将初始值设为0。 只要您没有在参数文件中定义该参数值,PowerCenterServer就会将$$MiscellaneousCosts替换为0。 如果要在映射计算中包含其它费用,请在参数文件中将$$MiscellaneousCosts设为该值。 2.2.5使用字符串参数和变量 在“源限定符”转换中输入字符串数据类型的映射参数和变量时,请使用适用于源数据库的字符串标识符。 当PowerCenterServer展开“源限定符”转换中的一个参数或变量时,PowerCenterServer会将该参数或变量替换为其开始值,然后将展开的查询传递至源数据库。 多数数据库要求使用单引号将字符串值引起来。 使用Informatica转换语言输入字符串参数或变量时,不要加上多余的引号。 PowerCenterServer将根据Informatica转换语言的命名语法来识别映射参数和变量。 例如,您可能在“源限定符”转换的过滤器中使用名为$$State的参数来提取某个州的行: STATE=‘$$State’ 在会话过程中,PowerCenterServer将参数替换为字符串。 如果在参数文件中将$$State定义为MD,则PowerCenterServer会将参数替换为: STATE=‘MD’ 您可以按如下方法使用Informatica转换语言,在“过滤器”转换中执行类似的过滤操作: STATE=$$State 如果您在“过滤器”转换中使用单引号将参数引起来,PowerCenterServer会将其读作字符串文字“$$State”,而不会将参数替换为“MD”。 2.2.6变量函数 变量函数确定PowerCenterServer如何计算管道中映射变量的当前值。 您可以在表达式中使用变量函数,为该会话的下次运行设置映射变量值。 转换语言提供以下变量函数供映射使用: ✓SETMAXVARIABLE($$Variable,value)设置最大值变量 SetMaxVariable。 将变量设为一组值中的最大值。 它将忽略标记为更新、删除或拒绝的行。 要将SetMaxVariable与映射变量一起使用,必须将映射变量的聚合类型设为Max。 ✓SETMINVARIABLE($$Variable,value)设置最小值变量 SetMinVariable。 将变量设为一组值中的最小值。 它将忽略标记为更新、删除或拒绝的行。 要将SetMinVariable与映射变量一起使用,必须将映射变量的聚合类型设为Min。 ✓SETVARIABLE($$Variable,value)设置变量值 SetVariable。 将变量设为配置的值。 会话结束时,它会将变量的最终当前值与开始值进行比较。 它会基于变量的聚合类型将最终值保存至资料库。 要将SetVariable函数与映射变量一起使用,必须将映射变量的聚合类型设为Max或Min。 SetVariable函数将忽略标记为删除或拒绝的行。 ✓SETCOUNTVARIABLE($$Variable)设置递增、减变量 SetCountVariable。 将变量值加1。 换句话说,当一行标记为插入时,变量值将加1,而当该行标记为删除时,变量值将减1。 它将忽略标记为更新或拒绝的行。 要将SetCountVariable与映射变量一起使用,必须将映射变量的聚合类型设为Count。 对于管道中的每个映射变量,您只能使用一次SetVariable函数。 当您在管道中创建多个分区时,PowerCenterServer将使用多个线程来处理该管道。 如果您对同一变量多次使用此函数,则映射变量的当前值可能会得到不确定结果。 变量函数及可以与各个函数一起使用的聚合类型和数据类型: 变量函数 有效的聚合类型 有效的数据类型 SetVariable Max或Min 除二进制数据类型以外的所有转换数据类型。 SetMaxVariable 仅限Max 除二进制数据类型以外的所有转换数据类型。 SetMinVariable 仅限Min 除二进制数据类型以外的所有转换数据类型。 SetCountVariable 仅限Count 仅限Integer和SmallInteger数据类型。 注意: 变量的聚合类型。 确定变量可以执行的计算类型。 ✓如果要使用映射变量确定一组值中的最大值,请将聚合设为Max。 ✓如果要使用映射变量确定一组值中的最小值,请将聚合设为Min。 ✓您不能在“等级”(Rank)或“聚合”(Aggregator)转换中使用变量函数。 2.3参数文件级参数与变量 2.3.1参数文件形式 2.3.2参数文件的设置 2.3.3参数文件的级别规则 第二章参数文件格式 1、标题格式和适用范围 在参数文件中求值时,您必须在条目前面加上标题,用于识别要分配其参数和变量的IntegrationService,IntegrationServiceprocess,workflow,worklet或者session。 您在此标题下面直接分配各个参数和变量,并在新行上输入每个参数或变量。 对于每项任务,您可以按任意顺序列出参数和变量。 您可以定义下列标题格式: 标 题 范 围 [Global] 全局使用,在IntegrationServices,IntegrationServiceprocesses,workflows,worklets和sessions。 [Service: servicename] 应用在服务运行的IntegrationService,workflows,worklets和sessions。 [Service: servicename.ND: nodename] 应用在服务进程运行的IntegrationServiceprocess,workflows,worklets,和sessions。 [foldername.WF: workflowname] 应用在指定workflow和所有sessions。 [foldername.WF: workflowname.WT: workletname] 应用在指定worklet和所有sessions。 [foldername.WF: workflowname.WT: workletname.WT: workletname...] 应用在嵌套worklet和所有sessions。 [foldername.WF: workflowname.ST: sessionname] 或 [foldername.WF: workflowname.WT: workletname.ST: sessionname] 或 [foldername.sessionname] 或 [sessionname] 应用在指定session。 在每个标题下面,如下所示定义参数和变量值: parametername=value parameter2name=value variablename=value variable2name=value 例如,Production文件夹中有一个会话s_MonthlyCalculations。 该会话使用一个字符串映射参数$$State(您希望将其设为“MA”)以及一个datetime映射变量$$Time。 $$Time已有一个保存在资料库中的初始值“9/30/200000: 00: 00”,但是您需要将此值覆盖为“10/1/200000: 00: 00”。 该会话还使用会话参数来连接至源文件和目标数据库,并且将会话日志写入相应的会话日志文件。 2、参数和变量类型 参数文件中定义的参数和变量: 参数和变量类型 参数和变量名称 所需的定义 服务变量 $PMFailureEmailUser pcadmin@ 字符串映射参数 $$State MA Datetime映射变量 $$Time 10/1/200505: 04: 11 源文件(会话参数) $InputFile1 Sales.txt 数据库连接(会话参数) $DBConnection_Target Sales(databaseconnection) 会话日志文件(会话参数) $PMSessionLogFile d: /sessionlogs/firstrun.txt 会话的参数文件包括文件夹和会话名称以及每个参数和变量: [Production.s_MonthlyCalculations] $PMFailureEmailUser=pcadmin@ $$State=MA $$Time=10/1/200000: 00: 00 $InputFile1=sales.txt $DBConnection_target=sales $PMSessionLogFile=D: /sessionlogs/firstrun.txt 您可以在下一次运行会话时编辑参数文件,以便将状态更改为MD并删除$$Time变量。 这样,PowerCenterServer就可以使用前一次会话运行时设置的变量值。 3、实例 以下文本摘自一个参数文件: [Service: IntSvs_01] $PMSuccessEmailUser=pcadmin@ $PMFailureEmailUser=pcadmin@ [HET_TGTS.WF: wf_TCOMMIT_INST_ALIAS] $$platform=unix [HET_TGTS.WF: wf_TGTS_ASC_ORDR.ST: s_TGTS_ASC_ORDR] $$platform=unix $DBConnection_ora=qasrvrk2_hp817 [ORDERS.WF: wf_PARAM_FILE.WT: WL_PARAM_Lvl_1] $$DT_WL_lvl_1=02/01/200501: 05: 11 $$Double_WL_lvl_1=2.2 [ORDERS.WF: wf_PARAM_FILE.WT: WL_PARAM_Lvl_1.WT: NWL_PARAM_Lvl_2] $$DT_WL_lvl_2=03/01/200501: 01: 01 $$Int_WL_lvl_2=3 $$String_WL_lvl_2=ccccc 第三章参数文件使用要点 1、创建准则和使用注意事项
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Informatica PowerCenter V8参数和变量使用指南 V8 参数 变量 使用指南
![提示](https://static.bdocx.com/images/bang_tan.gif)