




免费预览已结束,剩余20页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
神州数码(中国)有限公司Informatica PowerCenter V8参数和变量使用指南中国区唯一总代理神州数码(中国)有限公司提交人:夏凯 冷鹏2007年8月目 录第一章 参数和变量1、概述参数和变量可以定义在工作流、工作集或会话中。您可以使用 WordPad 或 Notepad 等文本编辑器来创建参数文件。您在参数文件中列出参数或变量及其值。参数文件可以包含以下类型的参数和变量:u Integration Service变量u Integration Service process变量u Workflow变量u Worklet变量u Session参数u Mapping参数和变量当您在工作流、工作集或会话中使用参数或变量时,PowerCenter Server将检查参数文件以确定参数或变量的开始值。您可以使用参数文件来初始化工作流变量、工作集变量、映射参数和映射变量。如果您不定义这些参数和变量的开始值,PowerCenter Server将在其它位置检查参数或变量的开始值。您可以将参数文件放置在PowerCenter Server计算机上,也可以放置在本机上。如果您无法访问 PowerCenter Server计算机上的参数文件,请使用本地参数文件。使用本地参数文件时,pmcmd会将文件中的变量和值传递到PowerCenter Server。本地参数文件可以与startworkflow pmcmd命令配合使用。您必须在参数文件中定义会话参数。由于会话参数没有默认值,因此如果 PowerCenter Server 在参数文件中找不到会话参数的值,就无法初始化会话。通过为参数文件中的每个对象单独创建分区,您可以在一个参数文件中包含多个工作流、工作集或会话的参数或变量信息。您还可以为单个工作流、工作集或会话创建多个参数文件,并在必要时更改这些任务使用的文件。要指定 PowerCenter Server 用于工作流、工作集或会话的参数文件,您可以执行以下任一项操作:u 在工作流、工作集或会话属性中输入参数文件名和目录。u 使用 pmcmd 启动工作流、工作集或会话,然后在命令行中输入参数文件名和目录。如果您同时在工作流、工作集或会话属性以及 pmcmd 命令行中输入参数文件名和目录,PowerCenter Server 将使用您在 pmcmd 命令行中输入的信息。参数文件的应用体现在以下几个方面:u 对源文本文件名进行参数化u 对源表名进行参数化u 对目标输出文本文件名进行参数化u 对源与目标的数据库连接进行参数化u 对日志文件及路径进行参数化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 时就以不同的参数文件启动会话。通过使用参数文件,您可以减少创建多个映射和会话(用于提取不同客户帐户的事务记录)所带来的管理费用。每当您运行会话时,如果要使用映射参数的相同值,请对每个会话运行使用相同的参数文件。要在会话之间更改映射参数的值时,您可以执行以下任一操作:u 更新会话之间的参数文件。u 创建不同的参数文件并配置会话使用新的文件。u 从会话属性中移除参数文件,以便会话使用映射中参数的配置初始值。u 选择类型为参数字 段必需/可选说 明名称必需参数名称。名称参数 $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 Server 都会将映射变量的值保存到资料库并在下次您运行此会话时使用该值。使用映射变量时,您要在映射或映射组件中对该变量进行声明,然后在映射中使用变量函数来更改变量的值。会话开始时,PowerCenter Server 将依照变量的开始值对变量的引用进行计算。会话成功结束后,PowerCenter Server 会将变量的最终值保存至资料库。下次您运行该会话时,PowerCenter Server 将依照保存的值对变量的引用进行计算。通过在参数文件中定义变量的开始值,您可以覆盖保存的值。使用映射变量来执行源的增量读取。例如,假设以上映射参数示例中客户帐户的编号是从 001 至 065,增量为 1。您可以创建初始值为 001 的映射变量,而无需创建映射参数。在映射中,使用一个变量函数给变量值加 1。PowerCenter Server 首次运行会话时,它将提取客户帐户 001 的记录。会话结束时,它将给变量加 1,并将该值保存到资料库。下次 PowerCenter Server 运行会话时,它将提取下一个客户帐户 002 的数据。它同时还增加变量值,因此下一个会话将提取并查找客户帐户 003 的数据。u 选择类型为变量字 段必需/可选说 明名称必需变量名。名称变量 $VariableName。变量名的语法必须是在 $ 后面加上字母数字或下划线字符。类型必需变量或参数。数据类型必需变量的数据类型。选择有效的转换数据类型。使用除 Binary 之外的任何数据类型。您选择的数据类型会影响您选择的聚合类型。例如,如果创建字符串变量,您就不能使用 Count 聚合类型对其进行配置。精度或标度必需变量的精度和标度。聚合必需变量的聚合类型。确定变量可以执行的计算类型。- 如果要使用映射变量确定一组值中的最大值,请将聚合设为 Max。- 如果要使用映射变量来计算从源读取的行数量,请将聚合设为 Count。- 如果要使用映射变量确定一组值中的最小值,请将聚合设为 Min。初始值可选变量的初始值。如果没有将变量值保存至资料库,或没有在参数文件中定义变量值,那么 PowerCenter Server 将使用变量的初始值。如果此值也未定义,PowerCenter Server 将基于映射变量的数据类型使用默认值。对日期时间变量的初始值使用以下任一格式:- MM/DD/RR- MM/DD/RR HH24:MI:SS- MM/DD/YYYY- MM/DD/YYYY HH24:MI:SS说明可选与变量相关联的说明。2.2.3 使用Mapping参数和变量您可以使用 Mapping Designer 或 Mapplet Designer 创建映射参数和变量。映射参数和变量在创建后出现在“表达式编辑器”的“变量”选项卡中。您可以在映射组件或映射的任何表达式中使用这些参数和变量。Designer 在映射组件和映射的“表达式编辑器”中对映射参数和变量进行验证。您可以在映射组件或映射的源限定符中使用映射参数和变量。在“源限定符”转换中使用映射参数和变量时,Designer 会展开映射参数和变量,然后再将查询传递至源数据库以进行验证。这允许源数据库验证查询。使用 Transformation Developer 创建可再用转换时,您可以使用任何映射参数或变量。由于可再用转换未包含在任何映射组件或映射中,Designer 将验证任意映射参数或变量在可再用转换表达式中的使用。在映射组件或映射中使用可再用转换时,Designer 将再次对该表达式进行验证。如果在映射组件或映射中没有定义参数或变量,或在可再用转换中错误使用参数或变量,那么当您对映射组件或映射进行验证时,Designer 将记录一个错误。当 Designer 对可再用转换中的映射变量进行验证时,它会将变量视为整型数据类型。您不能在映射组件和映射之间交替使用映射参数和变量。不能在映射组件中使用为映射声明的映射参数和变量。同样,您不能在映射中使用为映射组件声明的映射参数或变量。从Designer 中的Mappings/Mapplets 菜单中进行定义在相应的Mapping或Mapplet中进行引用即可。2.2.4 初始和默认值在映射或映射组件中声明映射参数或变量时,您可以输入一个初始值。如果参数文件中没有定义映射参数,PowerCenter Server 将使用映射参数的配置初始值。同样,如果参数文件中没有定义变量值,而且资料库中没有保存的变量值,PowerCenter Server 将使用该映射变量的配置初始值。如果 PowerCenter Server 需要一个初始值,而您又没有为参数或变量声明初始值,PowerCenter Server 将基于参数或变量的数据类型使用一个默认值。PowerCenter Server 所使用的不同类型数据的默认值:数据默认值String空字符串。Numeric0Datetime1/1/1753 A.D.,或1/1/1(如果 PowerCenter Server 配置为与 4.0 的兼容)。例如,如果您使用整型映射变量 $MiscellaneousExpenses 创建一个新映射,而且,既没有为变量配置一个初始值,也没有在参数文件中对其进行定义,那么当您首次运行一个带有该映射的会话时,PowerCenter Server 将使用数值数据类型的默认值 0 。或者,假设您创建了一个映射参数 $MiscellaneousCosts 来表示附加费用,此费用当前不存在于源数据中,但在将来可能要用到。配置小数数据类型的参数。由于在没有附加费用时希望 $MiscellaneousCosts 按 0 进行计算,因此您可以将初始值设为 0。只要您没有在参数文件中定义该参数值,PowerCenter Server 就会将 $MiscellaneousCosts 替换为 0。如果要在映射计算中包含其它费用,请在参数文件中将 $MiscellaneousCosts 设为该值。2.2.5 使用字符串参数和变量在“源限定符”转换中输入字符串数据类型的映射参数和变量时,请使用适用于源数据库的字符串标识符。当 PowerCenter Server 展开“源限定符”转换中的一个参数或变量时,PowerCenter Server 会将该参数或变量替换为其开始值,然后将展开的查询传递至源数据库。多数数据库要求使用单引号将字符串值引起来。使用 Informatica 转换语言输入字符串参数或变量时,不要加上多余的引号。PowerCenter Server 将根据 Informatica 转换语言的命名语法来识别映射参数和变量。例如,您可能在“源限定符”转换的过滤器中使用名为 $State 的参数来提取某个州的行:STATE = $State在会话过程中,PowerCenter Server 将参数替换为字符串。如果在参数文件中将 $State 定义为 MD,则 PowerCenter Server 会将参数替换为:STATE = MD您可以按如下方法使用 Informatica 转换语言,在“过滤器”转换中执行类似的过滤操作:STATE = $State如果您在“过滤器”转换中使用单引号将参数引起来,PowerCenter Server 会将其读作字符串文字 “$State”,而不会将参数替换为 “MD”。2.2.6 变量函数变量函数确定 PowerCenter Server 如何计算管道中映射变量的当前值。您可以在表达式中使用变量函数,为该会话的下次运行设置映射变量值。转换语言提供以下变量函数供映射使用: 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 函数。当您在管道中创建多个分区时,PowerCenter Server 将使用多个线程来处理该管道。如果您对同一变量多次使用此函数,则映射变量的当前值可能会得到不确定结果。变量函数及可以与各个函数一起使用的聚合类型和数据类型:变量函数有效的聚合类型有效的数据类型SetVariableMax 或 Min除二进制数据类型以外的所有转换数据类型。SetMaxVariable仅限 Max除二进制数据类型以外的所有转换数据类型。SetMinVariable仅限 Min除二进制数据类型以外的所有转换数据类型。SetCountVariable仅限 Count仅限 Integer 和 Small Integer 数据类型。注意:变量的聚合类型。确定变量可以执行的计算类型。 如果要使用映射变量确定一组值中的最大值,请将聚合设为 Max。 如果要使用映射变量确定一组值中的最小值,请将聚合设为 Min。 您不能在“等级”(Rank)或“聚合”(Aggregator)转换中使用变量函数。2.3 参数文件级参数与变量2.3.1 参数文件形式2.3.2 参数文件的设置2.3.3 参数文件的级别规则第二章 参数文件格式1、标题格式和适用范围在参数文件中求值时,您必须在条目前面加上标题,用于识别要分配其参数和变量的Integration Service,Integration Service process,workflow,worklet或者session。您在此标题下面直接分配各个参数和变量,并在新行上输入每个参数或变量。对于每项任务,您可以按任意顺序列出参数和变量。您可以定义下列标题格式:标题范围Global全局使用,在Integration Services, Integration Service processes, workflows, worklets和sessions。Service:service name应用在服务运行的 Integration Service, workflows, worklets和sessions。Service:service name.ND:node name应用在服务进程运行的Integration Service process, workflows, worklets, 和 sessions。folder name.WF:workflow name应用在指定workflow和所有sessions。folder name.WF:workflow name.WT:worklet name应用在指定worklet和所有sessions。folder name.WF:workflow name.WT:worklet name.WT:worklet name.应用在嵌套worklet和所有sessions。folder name.WF:workflow name.ST:session name或folder name.WF:workflow name.WT:worklet name.ST:session name或folder name.session name或session name应用在指定session。在每个标题下面,如下所示定义参数和变量值:parameter name=valueparameter2 name=valuevariable name=valuevariable2 name=value例如,Production 文件夹中有一个会话 s_MonthlyCalculations。该会话使用一个字符串映射参数 $State(您希望将其设为 “MA”)以及一个 datetime 映射变量 $Time。$Time 已有一个保存在资料库中的初始值 “9/30/2000 00:00:00”,但是您需要将此值覆盖为 “10/1/2000 00:00:00”。该会话还使用会话参数来连接至源文件和目标数据库,并且将会话日志写入相应的会话日志文件。2、参数和变量类型参数文件中定义的参数和变量:参数和变量类型参数和变量名称所需的定义服务变量$PMFailureEmailU字符串映射参数$StateMADatetime 映射变量$Time10/1/2005 05:04:11源文件(会话参数)$InputFile1Sales.txt数据库连接(会话参数)$DBConnection_TargetSales (database connection)会话日志文件(会话参数)$PMSessionLogFiled:/session logs/firstrun.txt会话的参数文件包括文件夹和会话名称以及每个参数和变量:Production.s_MonthlyCalculations$PMFailureEmailUser=$State=MA$Time=10/1/2000 00:00:00$InputFile1=sales.txt$DBConnection_target=sales$PMSessionLogFile=D:/session logs/firstrun.txt您可以在下一次运行会话时编辑参数文件,以便将状态更改为 MD 并删除 $Time 变量。这样,PowerCenter Server 就可以使用前一次会话运行时设置的变量值。3、实例以下文本摘自一个参数文件:Service:IntSvs_01$PMSuccessEmailUser=$PMFailureEmailUser=HET_TGTS.WF:wf_TCOMMIT_INST_ALIAS$platform=unixHET_TGTS.WF:wf_TGTS_ASC_ORDR.ST:s_TGTS_ASC_ORDR$platform=unix$DBConnection_ora=qasrvrk2_hp817ORDERS.WF:wf_PARAM_FILE.WT:WL_PARAM_Lvl_1$DT_WL_lvl_1=02/01/2005 01:05:11$Double_WL_lvl_1=2.2ORDERS.WF:wf_PARAM_FILE.WT:WL_PARAM_Lvl_1.WT:NWL_PARAM_Lvl_2$DT_WL_lvl_2=03/01/2005 01:01:01$Int_WL_lvl_2=3$String_WL_lvl_2=ccccc第三章 参数文件使用要点1、创建准则和使用注意事项u 必要时使用大写文件夹和会话名称。参数文件中的文件夹和会话名称区分大小写。Folder名和Session名在参数文件中是敏感的;Service名和Node名不敏感。u 适当定义服务和服务进程变量。Service和 service process变量必须使用$PM开头。否则Integration Service不认可service和service process变量。u 可以为workflows, worklets和sessions定义一个服务和服务进程变量。如果您定义在参数文件中定义一个workflow, worklet或session 的service和service process变量,那么该变量可以在运行在该service process中的任意一个TASK生效。u 罗列mapping必须的所有参数和变量。Mapping参数和变量的值会在任务开始的时候转换成相应的值。 u 输入非唯一会话名称的文件夹名称。如果某个会话名称在一个资料库中出现不止一次,请输入文件夹名称以指示会话的位置。u 创建一个或更多参数文件。您将参数文件单独分配给工作流、工作集和会话。您可以为所有这些任务指定相同的参数文件,也可以创建几个参数文件。u 如果您需要在文件中包含一个以上会话的参数和变量信息,请如下所示为每个会话创建一个新分区。文件夹名称可选。folder_name.session_nameparameter_name=valuevariable_name=valuemapplet_name.parameter_name=valuefolder2_name.session_nameparameter_name=valuevariable_name=valuemapplet_name.parameter_name=valueu 按任意顺序指定标题。在参数文件中,您可以按任意顺序放置标题。但是如果您在文件中对相同的参数或变量定义一次以上,则 PowerCenter Server 将使用参数或变量的第一个实例来分配参数或变量值。u 按任意顺序指定参数和变量。在每个标题下面,您可以按任意顺序指定参数和变量。u 在定义参数值时,请勿使用不必要的换行符或空格。PowerCenter Server 可能会将多余的空格解释为值的一部分。u 列出所有必要的映射参数和变量。为映射参数和变量输入的值将成为映射中的参数和变量的开始值。映射参数和变量名称不区分大小写。u 列出所有会话参数。会话参数不具有默认值。未定义的会话参数可能会导致会话失败。会话参数名称不区分大小写。u 为 datetime 值使用正确的日期格式。在输入 datetime 值时,请使用以下日期格式: MM/DD/RR MM/DD/RR HH24:MI:SS MM/DD/YYYY MM/DD/YYYY HH24:MI:SSu 不要在参数或变量两边加上引号。PowerCenter Server 会将等号后面的任何字符都解释为值的一部分。u 如下所示,将映射组件名称附加到在映射组件中创建的参数变量前面:mapplet_name.parameter_name=valuemapplet2_name.variable_name=valueu 定义Workflow和Mapping的参数和变量时,注意两处的参数和变量名称不要一样,否则Mapping定义的将不被识别。u 在参数文件中,文件夹和会话名称区分大小写。请确保完全按照 Workflow Manager 中的显示来输入文件夹和会话名称。另外,请为所有用户定义会话参数使用相应的前缀。用户定义会话参数的必要命名惯例参数类型命名惯例数据库连接$DBConnectionName拒绝文件$BadFileName源文件$InputFileName目标文件$OutputFileName查找文件$LookupFileNameu 为可再用参数集创建单独的参数文件。如果您打算轮流使用会话的参数集,请为每个参数集创建一个参数文件。使用 pmcmd 开始会话并指定要使用的参数文件的名称,或者编辑会话以使用不同的参数文件。u 将所有参数文件保存至其中一个服务器变量目录。如果您将所有参数文件保存至其中一个服务器变量目录(例如 $SourceFileDir),您就可以在会话属性表中使用该服务器变量。如果日后要移动源和参数文件,您可以通过将服务器变量更改为指向新目录,来更新所有会话。u 在 SQL 编辑器中,使用引号将字符串和日期时间参数及变量引起来。在“源限定符”转换中使用字符串参数或变量时,请使用源系统能
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论