powercenter 工作流

三、workflow执行、监控
workflow是PowerCenter的执行单元;
一个workflow包括一个或者多个session(或task)。

1.session
session是mapping的实例化。
session是给mapping提供配置文件的场所或机制。
有了这些配置信息,mapping就可以执行了,所以说session是mapping的一个可执行实例。
session的两种类型:Reusable session(可重复使用)和非Reusable session(不可重复使用)。
1.1 Reusable session(可重复使用session)
创建一次,可以被多次重用。
选中“Task Developer”,打开菜单“Tasks–》create”,输入session名点“create”,选择对应的mapping.
Reusable session可用以多个workflow或者worklet。

1.2 非Reusable session(不可重复使用session)
先创建workflow,再创建session。
选中“workflow designer”,打开菜单“workflows–》create”,输入workflow名点“OK”,workflow的起始点“Start”创建成功;
再在workflow的工作区内创建session,即非Reusable session。
非Reusable session可以转换为Reusable session,双击session,选中“make reuseable”。

2.workflow
2.1 并行执行
一个workflow同时链接多个session,并且多个session之间没有依赖关系,可以并行执行以提升效率。
2.2 串行执行
一个workflow同时链接多个session,并且多个session之间存在依赖关系,需要按照依赖关系顺序依次执行。
例外处理:对于后一个session依赖于前一个session的运行状态时,双击连线,增加条件“$session1.status=succeeded”
2.3 调度:周期性的定时运行workflow
在“workflow designer”中打开一个workflow,打开菜单“workflows–》edit–》Scheduler Tab”,选中"Non Reuseable",点“应用”,
设置完成后,需要执行Schedule workflow。

3.worklet
worklet也是task/session的集合(和workflow一样);
worklet不能单独运行,只能放在workflow中,作为workflow的子集运行(和workflow的区别)。
worklet可以被一个或多个workflow调用。
选择“worklet designer”,打开菜单“worklets–>create”,
worklets虽然也有“Start”,但他不可以独立执行。
只有将worklets加入到workflow中才可以被执行。

4.command
command是workflow中的一个Task。
可以使用command调用外部命令或者shell。

5.control
control task 提供了通过workflow/worklet内的任务,控制workflow/worklet状态的能力。
当关键任务失败时,可以将进程指向control task,
在control task内设置控制选项。

6.发送e-mail
6.1 配置发送e-mail
需要配置集成服务确保其能够发送邮件;
在PowerCenter服务器端安装PowerCenter支持的发送邮件e-mail的客户端;
–单独安装邮件服务器。
PowerCenter是否能发送邮件事实上和(具体的)邮件服务器无关,
重要的是邮件客户端是否支持相关的协议,并且该客户端可以支持相应的邮件服务器。

6.2 在workflow中使用e-mail
1.在workflow/worklet中发送e-mail
2.在session的components Tab中发送e-mail
3.在workflow的General Tab中发送e-mail

7.event tasks
event raise触发事件,
event wait等待event raise触发的事件,
一旦获得了正在等待的时间,就会触发其后续的Task。
7.1 用户自定义事件使用
用户自定义事件需要在workflow中定义一个Event对象。
首先在workflow中定义事件。菜单“workflows–>edit”,选中events Tab,增加一个事件(EventX);
在workflow中可以使用event raise和event wait;
在event raise中配置需要抛出的事件(EventX);
在event wait中配置需要监听的事件(EventX);
当事件(EventX)被event raise抛出后,event wait将监听到事件(EventX),从而触发后续的流程。
7.2 预定义事件使用
预定义事件是一种File-Watch事件,即event wait等待一个触发文件(.trigger文件)。
由人为手动触发,仅使用event wait任务监听是否发现触发文件(.trigger文件)即可;
当发现该文件后,event wait任务触发后续的流程。
触发后触发文件(.trigger文件)不会被自动删除,
在event wait的属性页签配置delete filewatch file选项即可删除触发文件(.trigger文件)

8.timer
timer是一个定时任务,它可以指定后续任务的启动时间。
在timer页签指定时间,包括绝对时间和相对时间。
绝对时间可以使用物理时间,也可以用变量指定。
相对时间是指定距离上一个任务启动的时间间隔。

9.decision
decision Task用于多个前置任务的与或非判断。
“$s_1.Status=succeeded OR $s_2.Status=succeeded OR $s_2.Status=succeeded”
即前3个session只要有一个成功就执行后续session。

10.assignment
assignment Task的作用是给用户定义的变量赋值(赋值可以是一个常量或者一个表达式)。
给workflow定义一个变量,菜单“workflows–》edit”,选择Variables页签,输入变量名( v a r i n t ) 、 类 型 、 是 否 永 久 。 在 a s s i g n m e n t T a s k 中 定 义 “ var_int)、类型、是否永久。 在assignment Task中定义“ varintassignmentTaskvar_int:=$$var_int+1”,并在后续的link condition中使用该变量做判断。

四、常用功能汇集
11.debugger
D客户端–》Mapping–》Debugger–》Start Debugger命令(快捷键F9);
依次选择Next–》Using Existing Session–》Next–》Next即可。
菜单功能:
Start Debugger (快捷键F9) 开始调试;
Next Instance (快捷键F10) 继续运行;
Continue (快捷键F5)运行到下一个断点,如果没有断点,则运行到结束;
Edit Breakpoints (快捷键Alt+F9) 编辑断点
Evaluate Expression 对表达式进行计算
进入Debug模式后,会在下方输出窗口看到mapping中任一组件正在流入的数据和计算的结果。

12.Mapplet/Reusable transformation
Mapplet/Reusable transformation类似与存储过程和函数,是某一种功能的集合,是为了提供公共功能的可重用性。
Mapplet与Reusable transformation区别在于Reusable transformation只能使用一个转换组件,Mapplet可以使用多个转换组件。

12.1 Reusable transformation
Reusable transformation是用一个转换组件实现通用功能;
所有的Mapping都可以调用,但不能修改;
只能在Reusable transformation中进行修改,并且修改后所有调用的mapping全部适用。
举例:
工资加100

12.2 Mapplet
Mapplet是用多个转换组件实现通用功能,可是实现比Reusable transformation更复杂的功能;
所有的Mapping都可以调用,但不能修改;
只能在Mapplet中进行修改,并且修改后所有调用的mapping全部适用。
点击“Mapplet Designer”,菜单Mapplet–》create,
Mapplet Input–》转换组件–》Mapplet Output
注意:Mapplet可以包含源表,但是不能包含目标表。
举例:
只对工资小于2000的员工工资加100

13.shortcut快捷方式
shortcut是为了解决数据源、数据目标或其他对象在跨Folder(文件夹)和跨Repository(存储库)方面的一致性及可重用能力。
用于解决公共对象重复存储的问题,及重复存储所带来的同步更新问题。
解决方案:
创建一个Global Repository作为公司级的共享对象管理和存放位置;
在每个Repository中创建一个共享文件夹作为部门级的共享对象管理和存放位置。
分别成为Global shortcut和Local shortcut。
可以创建shortcut的对象包括:源定义、可重用的transformation、Mapplet、Mapping、目标定义、业务组件。
13.1 Local shortcut:在同一个存储库下的不同文件夹内共享。
创建Local shortcut是在同一个Repository中从共享文件夹向其他文件夹创建共享对象的过程。
首先,创建共享文件夹。在R客户端,菜单“Folder–》Create”,勾选“Allow shortcut”。
其次,将所有公共的对象创建到共享文件夹中。
最后,创建Local shortcut,同时打开共享文件夹和其他非共享文件夹,将共享文件夹中的某个对象拖入非共享文件夹中。
在工作区双击shortcut,即可查看shortcut的详细信息。

13.2 Global shortcut:在不同存储库之间共享。
创建Global shortcut是在不同的Repository之间从Global Repository向Local Repository创建共享对象的过程。
首先,必须有一个Global Repository和一个Local Repository。
PowerCenter默认创建的Repository都是Local类型,需要将Local存储库升级为Global存储库。
在控制台(Admin Console)中,选择要升级的Local Repository,在属性Tab中编辑,将Global Repository的值由false改为true;
注意:模式必须是独占,并且该升级是不可逆的。
接着,注册Local Repository。
在控制台(Admin Console)中,选择Local Repository,选择右侧的菜单“Action–》Repository Domain–》Register Local Repository”,
在弹出框中选择Global Repository和Local Repository,并输入密码,单击OK。
打开R客户端,发现Global Repository被加入到Local Repository中,即可以在本地存储库中看到全局存储库的对象。
最后,需要在本地存储库中创建共享文件夹,在共享文件夹中创建共享对象,将共享对象拖入到本地存储库的非共享文件夹的过程中即生成Global shortcut。
注意:Global Repository需要在命名上与Local Repository进行区分。

14.session相关属性
session是mapping的可运行实例,一个mapping可以有多个session;
session提供了大量的属性和配置选项以控制、优化session的运行。
14.1 Properties Tab相关参数
1.Write Backward Compatible Session Log File:兼容日志文件的格式(文本文件、*.bin文件)
Session Log File Name:指定日志文件的文件名;
Session Log File driectory:修改日志文件默认的存放路径。
2.Enable Test Load & Number of Rows to Test:指定以较少的数据对session进行测试。
启用Enable Test Load时集成服务不会将数据写入目标表,但会执行session的全部其他逻辑。
3.Treat source rows as:指定每行数据的操作标签,默认Insert。
Insert 插入数据;
Update 更新数据;
Delete 删除数据;对于更新和删除操作,目标表必须要有逻辑主键(powercenter内定义的主键),否则不能正确执行。
Data Driven 数据驱动, 需要与Update Stragety配合使用,由Update Stragety来为每行数据指定增、删、改、拒绝中的某一种操作。
4.Rollback Transactions on Errors:集成服务(Integration Service)遇到非致命错误时也会回滚当前事务。
举例:插入10条数据时,其中一条主键冲突,不勾选该选项,9条成功,1条失败;选择该选项10条数据都被回滚。
5.Java Classpath:如果在PowerCenter中使用了第三方的Java类包或者自定义的类,需要在此指定相关的Java类包的路径,
尤其是使用Java Transformation时。
6.Session retry on deadlock:在Normal写的情况下,发生目标写死锁,PowerCenter将尝试再次向目标写入,
尝试写入的次数取决于参数Number of Deadlock Retires,这是集成服务的一个属性。
14.2 Config Object Tab相关参数
1.Contraint Base Load Ordering:PowerCenter基于主外键的约束向目标表加载数据。
2.Custom Properties:PowerCenter在遇到问题时,有时需要使用一些内部参数辅助执行或者解决遇到的问题。
例如:OptimizeODBCWrite、OptimizeODBCRead等参数,一般为非公开属性,联系售后指导。
3.Log Options:为了跟踪Session的历史运行情况,包括解决问题、性能调优、满足合规要求等。
Save Session log by:按次或者按照时间戳保存日志;
Save Session log for these runs:按次保存日志时设置的保存个数;
Session Log File Max Size: 设置Session Log文件的文件大小,默认为0,表示无限制;
对于Session Log特别大或者Real-Time Session时,最好设置Session Log文件的大小限制,单位为MB。
Session Log File Max Time Period: 设置Session Log文件的存放周期,单位为小时。
Maximum Partial Session Log Files: 设置Session Log的最大保存量,与单个文件的大小和保存周期有关;
如果超出最大保存量,保存期内最早的日志将被复写。
Write Commit Statistics Log Frequency:默认值为1,每个commit都会被写入日志。
Write Commit Statistics Log Interval: 写Commit统计的时间间隔,单位是分钟。
4.Stop on errors:即使有一行数据错误session也要停止运行,并标记为失败(可用于关键的session)。
5.Override tracing:当session发生错误时,在调试中为了跟踪session运行错误而启动的不同日志级别;
日志级别过高会影响session的性能,因此在调试完成后需要恢复到默认值。
6.On Stored Procedure ERROR:默认为Stop,即当Stored Procedure发生错误时停止整个session;
选择Continue时,即当Stored Procedure发生错误时继续运行session。
7.On Pre-Session command task ERROR:默认为Stop,即当Pre-Session command发生错误时停止整个session;
选择Continue时,即当Pre-Session command发生错误时继续运行session。
8.On Pre-Post SQL ERROR:默认为Stop,即当Pre-Post SQL发生错误时停止整个session;
选择Continue时,即当Pre-Post SQL发生错误时继续运行session。
9.Error Log Type:有三个选项(None、Database、Flat File),默认值为None。
选择Database可以将错误信息、异常信息存放到数据库中;
选择Flat File可以将错误信息、异常信息存放到文件中。

15.参数和变量
在程序中有可能变化的地方都应该尽量使用参数和变量。
15.1 Mapping参数
例子:
从EMP表中获取某天入职的人员。
1.定义参数:
参数在使用前必须先定义。
在Mapping中定义参数。
Mapping参数是在Mapping层面的参数,不能跨Mapping使用。
新建/选择一个mapping,菜单“映射–》参数和变量”,
“新建”参数,输入参数名“ V A R D A T E ” , 数 据 类 型 “ s t r i n g ” , 长 度 “ 29 ” , 初 始 值 “ Y Y Y Y − M M − D D H H 24 : M I : S S ” 。 2. 使 用 参 数 在 M a p p i n g 中 使 用 参 数 。 打 开 S Q − − 》 属 性 页 签 , 改 写 S q l Q u e r y 属 性 : S E L E C T E M P . E M P N O , E M P . E N A M E , E M P . S A L F R O M E M P W H E R E E M P . H I R E D A T E &gt; = t o d a t e ( VARDATE”,数据类型“string”,长度“29”,初始值“YYYY-MM-DD HH24:MI:SS”。 2.使用参数 在Mapping中使用参数。 打开SQ--》属性页签,改写Sql Query属性: SELECT EMP.EMPNO, EMP.ENAME, EMP.SAL FROM EMP WHERE EMP.HIREDATE &gt;=to_date( VARDATE,string29YYYYMMDDHH24:MI:SS2.使Mapping使SQSqlQuerySELECTEMP.EMPNO,EMP.ENAME,EMP.SALFROMEMPWHEREEMP.HIREDATE>=todate(VARDATE,‘YYYY-MM-DD HH24:MI:SS’) and EMP.HIREDATE <to_date(KaTeX parse error: Expected 'EOF', got '\para' at position 112: …参数文件目录及文件名:如:c:\̲p̲a̲r̲a̲\para.txt。 文件内容…VARDATE=‘1987-4-19 00:00:00’
新建/选择一个Workflow,菜单“工作流–》编辑”,打开“属性”页签,
在Parameter Filename属性中添加参数文件的路径信息,如:c:\para\para.txt。
日期类型为什么要设置为string呢?
V A R D A T E 参 数 定 义 为 s t r i n g 类 型 时 , 在 参 数 文 件 中 定 义 参 数 值 必 须 使 用 单 引 号 。 当 VARDATE参数定义为string类型时,在参数文件中定义参数值必须使用单引号。 当 VARDATEstring使VARDATE参数定义为日期类型时,在参数文件中定义参数值不能使用单引号;
但传递后的参数值1987-4-19 00:00:00不能和日期类型的数据库字段比较,仍需要转换;
并且数据库中日期类型的长度和informatica日期类型的长度还存在差异。
4.参数文件格式
参数使用范围用[]进行标注;
参数前缀格式:$ 和 和

15.2 Mapping变量
参数在文件中定义,执行中不能被修改。
变量可以在PowerCenter中被重置,即通过函数动态的修改变量值。
例子:
从EMP表中获取陆续入职的人员。
1.定义变量:与定义参数一致。
新建/选择一个mapping,菜单“映射–》参数和变量”,
“新建”参数,输入参数名“ V A R D A T E ” , 数 据 类 型 “ s t r i n g ” , 长 度 “ 29 ” , 汇 总 “ M a x ” , 初 始 值 “ 1900 − 01 − 0100 : 00 : 00 “ 。 汇 总 分 为 “ M a x ” 和 “ M i n ” , “ M a x ” 可 以 获 取 上 次 运 行 的 参 数 VARDATE”,数据类型“string”,长度“29”,汇总“Max”,初始值“1900-01-01 00:00:00“。 汇总分为“Max”和“Min”,“Max”可以获取上次运行的参数 VARDATE,string29Max1900010100:00:00MaxMin,MaxVARDATE的最大值;
当设置为“Max”后,可以使用SetMaxVariable函数,设置为“Min”则不可以使用SetMaxVariable函数。
2.编辑SQ:使用变量
打开SQ–》属性页签,改写Sql Query属性:
SELECT EMP.EMPNO, EMP.ENAME, EMP.HIREDATE, EMP.SAL
FROM
EMP
where EMP.HIREDATE>to_date(' V A R D A T E ′ , ′ Y Y Y Y − M M − D D H H 24 : M I : S S ′ ) 为 了 支 持 c o n t i n o u s 运 行 , 使 用 大 于 号 ( &gt; ) 获 取 上 次 运 行 结 束 到 当 前 最 新 的 全 部 数 据 。 3. 更 新 变 量 : 使 用 f ( x ) 增 加 表 达 式 转 换 组 件 , 输 入 H I R E D A T E , 输 出 O U T V A R D A T E , 表 达 式 为 : S E T M A X V A R I A B L E ( VARDATE&#x27;,&#x27;YYYY-MM-DD HH24:MI:SS&#x27;) 为了支持continous运行,使用大于号(&gt;)获取上次运行结束到当前最新的全部数据。 3.更新变量:使用f(x) 增加表达式转换组件,输入HIREDATE,输出OUT_VARDATE, 表达式为:SETMAXVARIABLE( VARDATE,YYYYMMDDHH24:MI:SS)continous使(>)3.使f(x)HIREDATEOUTVARDATE,SETMAXVARIABLE(VARDATE,TO_CHAR(HIREDATE,‘YYYY-MM-DD HH24:MI:SS’))
– 再增加表达式转换组件,输入OUT_VARDATE,输出HIREDATE,并链接到目标表中,
– 表达式为:TO_DATE(OUT_VARDATE,‘YYYY-MM-DD HH24:MI:SS’);
在目标表中增加HIREDATE_S字段,将OUT_VARDATE链接到目标表中;
从SQ中链接其他字段到目标表中。

注意:
PowerCenter为了执行优化的目的,没有被下游使用的端口将不被计算。
即如果不将计算后的HIREDATE链接到目标表,则变量不会被更新为最大值。
4.测试
制作工作流(不需要使用参数文件)并运行,session使用了变量的初始值“1900-01-01 00:00:00“。
运行完成后,选中Session右键–》查看永久值,可以看到变量值已进行了更新;
给EMP再增加数据,再次运行工作流新增加的数据被同步到目标表,变量值再次更新。
5.变量操作函数
SetMaxVariable( V a r i a b l e , v a l u e ) 从 v a l u e 和 Variable,value) 从value和 Variable,valuevalueVariable中选择最大值更新 V a r i a b l e ; S e t M i n V a r i a b l e ( Variable; SetMinVariable( VariableSetMinVariableVariable,value) 从value和 V a r i a b l e 中 选 择 最 小 值 更 新 Variable中选择最小值更新 VariableVariable;
SetVariable( V a r i a b l e , v a l u e ) 直 接 使 用 v a l u e 更 新 Variable,value) 直接使用value更新 Variable,value使valueVariable;
SetCountVariable( V a r i a b l e ) 根 据 s e s s i o n 运 行 时 行 标 签 更 新 Variable) 根据session运行时行标签更新 VariablesessionVariable,
当行标签为Insert时变量值加1,当行标签为Delete时变量值减1,当行标签为Update时变量值不变。

15.3 系统/session参数与变量
参数和变量都配置在Session中,如 P M T a r g e t F i l e D i r 、 PMTargetFileDir、 PMTargetFileDirPMBadFileDir等。
这些变量有哪些、在哪里定义、是否可以修改呢?
在控制台(Admin Console)中打开"集成服务–》进程“ 可以看到所有的参数,
修改后将影响集成服务下的所有session,这些参数被称为系统参数。
$PMRootDir E:\Informatica\9.6.1\server\infa_shared
$PMSessionLogDir $PMRootDir/SessLogs
$PMBadFileDir $PMRootDir/BadFiles
$PMCacheDir $PMRootDir/Cache
$PMTargetFileDir $PMRootDir/TgtFiles
$PMSourceFileDir $PMRootDir/SrcFiles
$PMExtProcDir ./ExtProc
$PMTempDir $PMRootDir/Temp
$PMWorkflowLogDir $PMRootDir/WorkflowLogs
$PMLookupFileDir $PMRootDir/LkpFiles
$PMStorageDir $PMRootDir/Storage

PowerCenter还提供了大量session级别的参数,根据特性分为:
用户定义的session参数(User-Defined Parameter);
内置的session参数(Build-in Parameter)。
1.用户定义的session参数
参数类型 命名规范 描述
Session Log File $PMSessionLogFile 定义Session Log文件名
Number of Partitions $DynamicPartitionCount 定义Session Partition的数量
Source File $InputFile* 定义Source File文件名
Lookup File $LookupFile* 定义Lookup File文件名
Target File $OutputFile* 定义Target File文件名
Reject File $BadFile* 定义Reject File文件名
Database Connection $DBConnection* 定义关系型数据库连接的连接名,包括源、目标、Lookup和存储过程等。
External Loader Connection $LoaderConnection* 定义Loader连接的连接名
FTP Connection $FTPConnection* 定义FTP连接名
Queue Connection $QueueConnection* 定义Queue连接名
Application Connection $AppConnection* 定义Application连接名
General Session Parameter $Param* 通用Session参数定义,可以通过此参数定义如:table owner name、
table name prefix、FPT file or目录名、lookup cache file name prefix、email address等
除*外其余不能修改,*为用户自定义部分,可根据需要替换为实际的名称。
参数需要定义在参数文件中,并为参数赋值。
使用场景:
场景1:项目中有开发、测试、生产3个环境,分别使用不同的数据库,部署过程需要修改大量的mapping和session的数据库连接,可以将数据库连接作为参数。
场景2:批量目录修改的问题,对目录使用参数,仅修改参数文件即可。
2.内置的session参数
session内置的参数可以帮助开发人员在Post-Session shell commands、sql commands和E-mail中获取session运行时状态或者信息。
参数类型 命名规范
Folder Name $PMFolderName
Integration Service Name $PMIntegrationServiceName
Repository Service Name $PMRepositoryServiceName
Repository User Name $PMRepositoryUserName
Session Name $PMSessionName
Session Run Mode $PMSessionRunMode
Source Number of affected Rows $PMSourceQualifierName@numAffectedRows
Source Number of applied Rows $PMSourceQualifierName@numAppliedRows
Source Number of rejected Rows $PMSourceQualifierName@numRejectedRows
Source table name $PMSourceName@TableName
Target Number of affected Rows $PMTargetName@numAffectedRows
Target Number of applied Rows $PMTargetName@numAppliedRows
Target Number of rejected Rows $PMTargetName@numRejectedRows
Target table name $PMTargetName@TableName
Workflow name $PMWorkflowName
Workflow run ID $PMWorkflowRunId
Workflow run instance name $PMWorkflowRunInstanceName

15.4 workflow/worklet变量
例子:
将session的输出文件写入对应日期的文件夹,如果文件夹不存在,则自动创建文件夹。
1.创建mapping,目标为文件
源为EMP表,目标为EMP文件。
”目标–》创建“,输入目标表名称,数据库类型选择”Flat File“后点”创建“,维护列信息。
2.创建workflow,并定义变量
”工作流–》创建“,输入工作流名称,点”变量”页签–》“新增”,输入变量名"$ F O L D E R N A M E &quot; 及 类 型 “ n s t r i n g ” 3. 创 建 任 务 并 , 使 用 变 量 生 成 文 件 夹 &quot; 任 务 − − 》 创 建 &quot; , 输 入 任 务 名 称 , 创 建 , 选 择 m a p p i n g , 完 成 ; 双 击 编 辑 任 务 − − 》 映 射 页 签 − − 》 目 标 表 − − 》 属 性 栏 : 勾 选 c r e a t e t a r g e t D i r e c t o r y , O u t p u t f i l e d i r e c t o r y 设 置 为 “ FOLDER_NAME&quot;及类型“nstring” 3.创建任务并,使用变量生成文件夹 &quot;任务--》创建&quot;,输入任务名称,创建,选择mapping,完成; 双击编辑任务--》映射页签--》目标表--》属性栏:勾选create target Directory,Output file directory设置为“ FOLDERNAME"nstring3.使""mappingcreatetargetDirectoryOutputfiledirectoryPMTargetFileDir$ F O L D E R N A M E ” 4. 创 建 A s s i g n m e n t 为 变 量 赋 值 拖 一 个 分 配 ( “ A s s i g n m e n t ” ) 并 双 击 打 开 − − 》 表 达 式 页 签 − − 》 新 增 : &quot; FOLDER_NAME” 4.创建Assignment为变量赋值 拖一个分配(“Assignment”)并双击打开--》表达式页签--》新增:&quot; FOLDERNAME4.AssignmentAssignment"$FOLDER_NAME=to_char(sysdate,‘yyyy-mm-dd’)"–》应用、确定。
链接“启动”–》“分配”–》“Session”,并启动工作流。
5.监控工作流并检查目录和文件的生成情况。
E:\Informatica\9.6.1\server\infa_shared\TgtFiles\2018-04-05\emp_file1.out

15.5 Local变量
Local变量用于比较相邻的两条记录的某一个字段的值。
如计算相邻记录的某个字段的差,或者比较相邻记录的某个字段的值是否相等。
例子:
超市需要掌握(同一)客户到超市采购的时间间隔(即两次采购的时间差)。
采购表如下:
create table s_order (
o_id number(16) not null primary key,
ac_id number(8) not null,
o_amount number(10,2),
o_date date
);
目标表如下:
create table t_order (
o_id number(16) not null primary key,
ac_id number(8) not null,
o_amount number(10,2),
o_date date,
day_diff number(5)
);
mapping如下:
源表–》SQ–》f(x)–》目标表
SQ内需要改写sql,按账户和日期进行排序:select * from s_order order by ac_id,o_date
f(x)内需要定义变量记录上次和本次的账户和日期,
如果账户相同(上次账户=本次账户),则day_diff赋值为上次日期减本次日期;
如果账户不同(上次账户!=本次账户),则day_diff赋值为0。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值