INFORMATICA 开发规范有哪些

58次阅读
没有评论

共计 14327 个字符,预计需要花费 36 分钟才能阅读完成。

自动写代码机器人,免费开通

INFORMATICA 开发规范有哪些,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

  ETL 研发运维责任人界定

  1)资科内部业务数据流转,采取使用方研发原则,即谁取用数据,谁负责 ETL 版本研发。目标系统运维人员进行运维。

  2)对于业务用户的独立管理系统,没有专门研发,由取数源端研发负责 informatica 版本研发推送数据。源端系统对应运维人员负责对应 workflow 运维。

3  ETL 研发数据库操作约束条件

1)对于增量同步表,需要源表和目标表存在主键。

2)增量字段上,需要有索引

3)增量字段(如时间条件,必须严格顺序进入数据库,或者增量同步完成后,严格保证增量同步的取数范围后续不会有数据进入)

同步场景

同步要求

同步类型

源表和目标表是否存在主键或者唯一键

增量字段上是否有索引(源表和目标表)

update  同步

delte 同步

有标识字段增量

存在 pk 或者索引

需要存在索引

需要存在 updatetime 字段,并使用 update 字段 PK 进行 update 更新同步。

需要将删除数据写入临时表,etl 同时同步临时表后将目标库对应数据删除,源端也需要进行定期清理临时表

源表全量读取同步

不存在约束或者索引

N/A

N/A

N/A

源表全量读取同步

存在 pk 或者索引

N/A

N/A

N/A

4  定义

序号

术语或缩略语

说明性定义

1

ETL

Extraction-Transformation-Loading,数据加载

2

Source

3

Target

目标

4

Transformation

组件

5

Mapping

数据映射

6

Mapplet

数据映射集,可复用的 Transformation 组合

7

Session

执行任务

8

Worklet

数据工作集

9

Workflow

数据工作流

10

Schedule

调度频率

11

Parameter

参数

12

ETLUser

用与 ETL 数据同步的数据库用户

13

ProductDatabaseSID

生产系统数据库 SID

5  范围

本文档读者包括:

l  项目经理;

l  系统管理员;

l  DBA 管理员;

l  开发人员;

l  测试人员;

l  运维人员;

本项目需要使用到的技术:

l  ETL 数据整合及转换:Informatica;

l  操作系统:Linux、Windows

l  数据库:Oracle、Mysql、DB2、MS SQLServer 等

6  系统通用属性

Service Variable

Description

1

$PMRootDir

Infa_share 根目录

Installation_Directory \server\infa_shared

2

$PMSessionLogDir

Session 运行日志目录

$PMRootDir/SessLogs.

3

$PMBadFileDir

Reject files 拒绝文件目录

$PMRootDir/BadFiles.

4

$PMCacheDir

Temporary cache files

$PMRootDir/Cache

5

$PMTargetFileDir

Target files 目标文件生成目录

$PMRootDir/TgtFiles

6

$PMSourceFileDir

Source files 平面文件源文件目录

$PMRootDir/SrcFiles

9

$PMWorkflowLogDir

Workflow logs workflow 执行日志目录

$PMRootDir/WorkflowLogs.

10

$PMLookupFileDir

Lookup files lookup 生成的 cache 目录

$PMRootDir/LkpFiles.

11

$PMTempDir

临时文件目录

$PMRootDir/Temp

12

$PMStorageDir

HA 时,记录 workflow 的运行状态

$PMRootDir/Storage.

7  命名规则 7.1 通用规则

以下元素,数据库表,字段名称,函数名称,函数表达式,SQL 语句均采用大写字母。

7.2 Connection 数据源连接 7.2.1  Connection 数据连接命名

数据链接分为源数据库链接与目标数据库链接,ETL 的 E(抽取)与 L(加载)的链接。

  数据库链接方式分为 Native、ODBC 两种方式:

1)Native 是采用相应数据的客户端连接来抽取、加载数据,比如 oracle、DB2 等;

2)ODBC 是采用 DataDirect ODBC 的方式连接数据库,比如 mysql、MSSQL。

数据连接的命名采用:DataBaseType_ProductDatabaseSID_ETLUSER。

说明:DataBaseType 为数据源类型,ProductDatabaseSID 生产数据库的 SID,ETLUser 为用与 ETL 数据同步的用户。

例如: Ora_ASURE_BILETL,连接方式为 Native 方式,Ora 表示数据类型为 Oracle,ASURE 为阿修罗生产数据库 SID,BILETL 为 ETL 的操作用户。

例如:ODBC_ Mysql_ASURE_BILETL,ODBC 表示采用 ODBC 的方式连接。Mysql 为数据库类型,ASURE 为阿修罗系统,BILETL 为 ETL 操作用户。

7.2.2  数据库类型对应缩写

表 5 -1 数据库类型缩写

序号

数据源类型

缩写

1

Oracle

Ora_

2

DB2

DB2_

3

Mysql

Mysql_

4

Microsoft SQL Server

MSSQL_

5

Sybase

Sybase_

6

Greenplum

GP_

7

Teradata

TD_

8

ODBC

ODBC_DataType_

7.2.3  生产数据库的 SID   

表 5 -2 数据库信息表

序号

数据库中文名

数据库 SID

备注

1

阿修罗系统

ASURE

2

新车辆管理系统

VMS

3

短信系统

SMSDB

4

7.3 组件命名  

表 5 -3 常用组件命名前缀

序号

组件名称

图标

命名规范

含义

1

Source Qualifier

 INFORMATICA 开发规范有哪些

 

 

sq_

从数据源读取数据

2

Expression

 INFORMATICA 开发规范有哪些

 

exp_desc

行级转换

3

Filter

 INFORMATICA 开发规范有哪些

 

fil_

数据过滤

4

Sorter

 INFORMATICA 开发规范有哪些

 

sort_

数据排序

5

Aggregator

 INFORMATICA 开发规范有哪些

 

agg_

聚合

6

Joiner

 INFORMATICA 开发规范有哪些

 

jnr_

异构数据关接连接

7

Lookup

 INFORMATICA 开发规范有哪些

 

lkp_

查询连接

8

Update Strategy

 INFORMATICA 开发规范有哪些

 

ust_

对目标编辑 insert, update, delete, reject

9

Router

 INFORMATICA 开发规范有哪些

 

rot_

条件分发

10

Sequence Generator

 INFORMATICA 开发规范有哪些

 

sqg_

序列号生成器

11

Normalizer

 INFORMATICA 开发规范有哪些

 

nrm_

记录规范化

12

Rank

 INFORMATICA 开发规范有哪些

 

rnk_

对记录进行 TOPx

13

Union

 INFORMATICA 开发规范有哪些

 

uni_

数据合并

14

Transaction Control

 INFORMATICA 开发规范有哪些

 

tc_

对装载数据按条件进行事务控制

15

Stored Procedure

 INFORMATICA 开发规范有哪些

 

sp_

存储过程组件

16

Custom

 INFORMATICA 开发规范有哪些

 

cus_

用户自定义组件

17

HTTP

 INFORMATICA 开发规范有哪些

 

http_

WWW 组件

18

Java

 INFORMATICA 开发规范有哪些

 

java_

Java 自编程组件

7.4  Folder/mapplet/Mapping/Session/Workflow/Schedule 命名

表 5 -4 Folder/mapplet/Mapping/Session/Workflow 命名规范

情形

名称

例如

FOLDER

公用文件夹

000_Shared

文件夹

ProductDatabaseSID_OWNER

SFOSS_ EXP5(sfoss 是生产阿修罗数据库 sid,exp5 是我们要操作的表 owner)

MAPPLET

MPL_Business Name

MPL_LRNull

MAPPING

单源单目标

M_Target Table Name

M_TT_WAYBILL

多源单目标

M_Target Table Name

M_TT_WAYBILL

单源多目标

M_1ToN_Function description

M_1ToN__Broadcost

多源多目标

M_NToN_Function description

M_NToN_Gather

SESSION

可复用 post_S_

post_S_ mapping name

post_S_M_STGOMS_ORDERS

可复用 pre_S_

pre_S_ mapping name

pre_S_M_STGOMS_ORDERS

单 mapping 单 session

S_mapping name

S_M_STGOMS_ORDERS

单 mapping 多 session

S_mapping name_区域 / 子系统

S_M_STGOMS_ORDERS_BJ

S_M_STGOMS_ORDERS_GX

(BJ 代表北京,GX 体表广西)

WORKFLOW

单 mapping 单 session

WF_mapping name

WF_STGOMS_ORDERS

单 mapping 多 session

WF_mapping name

WF_STGOMS_ORDERS

多 mapping 多 session

WF_function description

WF_UpdateUsersAndGroups

Schedule

SCHDL_运行间隔_(运行时间)_(截止时间)

每 5 分钟运行一次,2014 年 5 月 6 号过期

SCHDL_5MIN_Stop20140506

每 5 分钟运行一次,永不过期

SCHDL_5MIN_FOREVER

每天 21:30 运行,永不过期

SCHDL_1Day_AT2130_FOREVER

每月 4 号 21:30 运行,永不过期

SCHDL_1MON_4THAT2130__FOREVER

8  创建 Connection 连接

创建 Connection 由 Informatica 管理员完成,但在开发环境和测试中开发人员有修改 Connection 属性的权限。

以创建 Oracle Connection“Ora_ASURE_SFMAP”为例进行说明

登陆到 Informatica 服务器,查看对应的 SID“ASURE”是否已经添加到 tnsname.ora 文件中,否则在 tnsname.ora 中添加

登陆到 Workflow ManageràConnection(连接)àRelationalàSelect Type =“Oracle”àNew…(按钮)

 INFORMATICA 开发规范有哪些

8‑1 创建 Connection

修改 Connection 连接的权限,登陆到 Workflow ManageràConnection(连接)àRelationalàObjects:选择需要修改的 Connection 连接àPermission…(按钮)à修改属主。给 Others 组执行的权限。

 INFORMATICA 开发规范有哪些

8‑2 修改 Connection 属主

9  创建文件夹

在创建文件夹前,需要在目标数据创建用户 ETLMGR,脚本在文件夹“ETLMGR”中,请按照顺序执行

9.1 创建文件夹

登陆 Repository Manager 参考第 5 章的命名规则创建文件夹

操作:FolderàCreateà在弹出的对话框中输入文件夹名称

  不关闭对话框进入下一步

选择新建文件夹的属主

 INFORMATICA 开发规范有哪些

9‑1 选择文件夹属主

9.2 复制共享对象

此部分操作由开发从员完成

登陆 Repository Manager 将文件夹“000_Shared”下的 Mapping“M_GetParam”、“M_getSessionRunStatus”拖拽到新建的文件夹中,并在弹出的创建快捷链接对话框选择“全部确定”。

 INFORMATICA 开发规范有哪些

9‑2 创建共享 Mapping 快捷链接

登陆 Workflow Manager 打开新建的文件夹,将文件夹“000_Shared”下的 Session“pre_S”、“post_S”拖拽到新建的文件夹中,并在弹出的复制对话框选择“确定”,

 INFORMATICA 开发规范有哪些

9‑3 复制共享 Session

然后处理 Mapping 冲突,为找不到的 Mapping 重新选择对应的快捷方式

 INFORMATICA 开发规范有哪些

9‑4 Mapping 冲突处理

冲突处理完接提示选择下一步并确认,完成这一步骤的操作

登陆到 Workflow Manager 打开新建的文件夹,编辑“post_S”、“pre_S”源和目标的 Connection(连接)

 INFORMATICA 开发规范有哪些

9‑5 编辑“post_S”

 INFORMATICA 开发规范有哪些

9‑6 编辑“pre_S”

10  Mapping 设计

注意 1:在进行 Mapping 之前,需要在目标表数据库的 ETLMGR.ETL_INCR_PARAM 中插入对应目标表相关的信息,具体内容可能过查询 ETLMGR.ETL_DICT 获得帮助

注意 2:ETLMGR.ETL_INCR_PARAM.TIME_BEFORE_NOW(增量结束时间与当前时间的时间差,以秒为单位)的值建议不小于 300,以避免一些来不及 commit 的数据会丢失。

登陆到 Designer,本章所述的所有操作均在 Designer 客户端。

10.1  导入源和目标的表结构

导入源表结构

创建源表的 ODBC 连接

EnableNcharSupport: 默认是不打勾的,不打勾的情况下导入 char,varchar,varchar2 会变成 nchar,nvarchar,nvarchar2

ODBC 连接只是作为导入源表和目标表的结构的媒介,不会进行实际数据的处理,实际数据的处理由服务端 Connection 完成

 INFORMATICA 开发规范有哪些

从 ODBC 连接中导入源表的结构

 INFORMATICA 开发规范有哪些

导入目标表结构

导入目标表结构与导入源表结构相似,但是要先切换到目标表的编辑窗口

 INFORMATICA 开发规范有哪些

10.2  Mapping 设计

开发时注意查看客户端左上方的 Folder 显示,一定要在正确的 Folder 里面工作。

INFORMATICA 开发规范有哪些

创建 Mapping

展开文件夹“000_Sample”,找到 Mapping“M_for_copy”并将其拖拽到目标文件夹,在弹出的对话框中选择“Yes”

根据第五章的命名规范重命名“M_for_copy”并添加注释

操作:菜单 MappingàEdit

Comment(注释) 内容填写如下:

Create date: 日期

Create by:  用户名(现实中文名)

  Desc: decription 例:用户信息交换

  [

  Modify Date:

  Modify by: 用户

Desc: decription 例:过期用户信息不再交换

]

所有的 Mapping 都添加四个参数 (Parameter),

操作:在复制 Mapping 的过程中已经创建

$$INCR_START_DT STRING(20)  DEFAULT: 1900-01-01 00:00:00  à增量起始时间 (表示增量区间的起点)

$$INCR_END_DT  STRING(20)  DEFAULT: 2900-01-01 00:00:00 à增量截至时间 (表示增量区间的终点)

$$INCR_START_ID DECIMAL(19,0) DEFAULT: 0  à增量起始主键值

$$INCR_END_ID  DECIMAL(19,0) DEFAULT: 9999999999999999999 à增量截至主键值

Mapping 具体设计参考文档《Informatica 觉见场景设计》

l  在组件中创建变量时,注意选择数据类型,选择长度,在给变量赋值或将变量赋值给字段时要保持数据类型一致,不一致时要使用显式类型转换。

l  在做字符处理时,注意 NULL,空字符串和空格的区别以及不同的判读和处理方式

l  不需要输出的端口不勾选 OutputPort。当组件中有重名的字段时,输入的字段在原字段后加 _IN,变量的字段在原字段后加 _V,输出字段名尽量保持和下一个组件的输入字段名名称一致,以便使用按名称自动连接

l  数据加载方式:全量,增量

全量: Truncate Insert

基于时间的增量(具体实现方案参考 Informatica 常见场景设计)

基于主键的增量(具体实现方案参考 Informatica 常见场景设计)

对于所有的 Mapping 要求尽量使用增量(增量区间可优先按时间确定,没有时间戳时按主键确定)

对于数据源表确实无法提供增量时间或主键的则全量抽取。全量抽取只适用于只适用于数据量小的表,如果数据表的数据量特别大,则需要跟需求方重新确定需求。

10.3  常用组件设计说明

l  Source Qualifier 组件使用:

对于源系统使用 nvarchar2,导入时确保在 mapping 中使用 nstring 与之匹配,这样才能确保字符传递的正确性,否则会出现乱码,字符被截断等问题

如果 Mapping 中存储存在两个及以上的 Source 表,同时他们来自相同的源系统,尽量使用 Source Qualifier 进行关联,并在 Source Qualifier 中添加关联条件,而不是用 Joiner 控件

在 Source Qualifier 中添加增量条件: 

时间戳字段 = TO_DATE($$INCR_START_DT,’YYYYMMDD HH24:MI:SS’) And

时间戳字段 TO_DATE($$INCR_END_DT,’YYYYMMDD HH24:MI:SS’) (注意这里是小于,而不是小于等于)  或

主键字段 TO_DATE($$INCR_START_ID,’YYYYMMDD HH24:MI:SS’) And

主键字段 = TO_DATE($$INCR_END_ID,’YYYYMMDD HH24:MI:SS’) (注意这里是大于,而不是大于等于)

l  Joiner 组件使用:

对于大表(大于 500000 行)的连接查询一定要使用 Joiner

使用 Joiner 控件时,要以小表为 master 表,同时要对两组数据进行排序,根据 Joiner 的字段进行排序,排序一定要使用同一个方式:升序或降序。此时控件中的 Sorted input 要打勾

l  Lookup 组件使用:

尽量使用有连接的 Lookup,降低性能风险

Lookup 中如果内部有 SQL,保证 SQL 的字段顺序和 Port 的字段顺序一致

如果是无连接的 Lookup,对于组件的命名采用 LKP_返回的字段名称;如果是有连接的 Lookup,如果是返回一个值,那组件的命名采用 LKP_返回的字段名称,如果是多个值,那组件的命名采用 LKP_被查询表名称

对于小表(小于 500000 行)的连接查询使用 Lookup 控件

对于 Lookup 维表查找维度 ID 时,需要在输出字段添加 default value = -1, 如下图:

 INFORMATICA 开发规范有哪些

Lookup 控件的使用有三种方式, 同时注意几点

1: Connect

  对于 mapping 中对某个表只查询一次的尽量使用 Connect Lookup,在使用 Connect lookup 的时候对于没有用到的 Column 可以删除掉,防止浪费 Cache 空间, 一定要使用 Cache –Lookup Caching Enabled

2: Unconnect

对于 mapping 中对某个表查询多次的尽量使用 Unconnect Lookup, 对于没有用到的

字段可以进行删除,防止浪费 Cache 空间

3: Lookup 函数

对于 mapping 中的 Expression 中进行查询的尽量使用 Lookup 函数

4:Lookup 表最好从 Targets 中获取,也可以从 Sources 中获取

5:Lookup 函数不能在 mapplet 中使用

  6:Lookup 使用中的条件允许 Null = Null

l   Update Strategy 组件使用:

要求目标表有主键索引

将 SESSION 的属性设置为 UPDATE ELSE INSERT。会导致 SESSION 的运行速度明显的下降,因为 INFORMATICA 对每行记录都执行两个操作:更新(根据主键),如果返回的结果时更新了 0 条记录,再执行一个插入操作。

  改变这种情况的办法是,提前知道在 MAPPING 中要执行的是 DD_UPDATE,还是 DD_INSERT,然后告诉 UPDATE 控件采用什么更新策略

不能使用 DD_REJECT,可以在 Update Strategy 组件前添加 filter 组件将需要做 DD_REJECT 的数据过滤掉

l  AGGREGATOR 组件使用:

在使用 Aggregator 前,最好对数据进行排序,这样会极大提高系统性能,此时 Sorted Input 应该打勾

一个 mapping 中最好只用一个 Aggregator 控件。要使用多个 Aggregator 可以考虑使用临时表把 mapping 拆开

Aggregator 与 Lookup 控件的一起使用时,每个控件都需要索引缓冲、数据缓冲并且他们共享内核里面同样的 HEAP 段, 这些内存区域是非常关键的,当处理的记录数量非常巨大时会引起内存的不稳定

当包含它的 Mapping 速度比较慢时,可以调整 Session 中的参数:

 Maximum Memory Allowed For Auto Memory Attributes  512M

 Maximum Percentage of Total Memory Allowed For Auto Memory Attributes 5%

Worklfow 运行的时候会从他们中取小的一个值

11  Workflow 设计

开发时注意查看客户端左上方的 Folder 显示,一定要在正确的 Folder 里面工作。

INFORMATICA 开发规范有哪些

11‑1 查看工作文件夹

Workflow 设计概览:Workflow 设计完成后的样子及各部分功能

 INFORMATICA 开发规范有哪些

11.1  创建 Workflow

登陆到 Repository Manager,打开目标文件夹,展开(不是打开)文件夹“000_Shared”,找到 Workflow“WF_for_copy”并将其拖拽到目标文件夹,此时将会弹出一个“Copy Wizard”对话框。在冲突处置中选择“rename”并按命名规范重命名。

 INFORMATICA 开发规范有哪些

11‑2 按命名规范重命名

11.2  Workflow 属性设置

General(通用),添加注释

Create date: 日期

Create by:  用户

Source table: Source table1

Source table2

……

Target table: Target table1

Target table2

……

  Desc: decription 例:将广西用户信息同步到集团

  [

  Modify Date:

  Modify by: 用户名(现实中文名)

Desc: decription 例:添加北京用户信息同步到集团

]

Properties(属性)

Enable HA recovery:打勾

Automatically recover terminated task:打勾

Maximum automatic recovery attemps:5

Schedule

创建可复用的计划

 INFORMATICA 开发规范有哪些

为 Workflow 分配计划

 INFORMATICA 开发规范有哪些

11.3    添加可复用 Session“pre_sql”、“post_sql”

如果在文件夹下找不到 pre_S”、“post_S”,参考
复制共享对象

将可复用 Session“pre_S”、“post_S”,添加到在 Workflow 中, 并按命名规范重命名,如 workflow 名为“WF_M_CJN001”,则 Session 的名称分别为“pre_ S_M_CJN001”、“post_ S_M_CJN001”

INFORMATICA 开发规范有哪些

11‑3 可复用 Session 添加到 Workflow

修改 Session“pre_sql”、“post_sql”的属性

General 属性

Failed Parent if this task failed:勾选

Treat the input link as: And

INFORMATICA 开发规范有哪些

11‑4 修改 General 属性

Properties 属性

Session Log File Name:FolderName_SessionName.log

(如:000_Sample_pre_S_M_CJN001.log、  000_Sample_post_S_M_CJN001.log)

 INFORMATICA 开发规范有哪些

11‑5 设置 pre_S_* 的日志文件

11.4  编辑 Assignment

设置 $$TARGET_OWNER,$$TARGER_TABLE 的值

$$TARGET_OWNER = 目标表的 owner

$$TARGET_TABLE = 目标表名

 INFORMATICA 开发规范有哪些

11‑6 编辑 Assignment

12  Session 设计

登陆到 Workflow Manager,开发时注意查看客户端左上方的 Folder 显示,一定要在正确的 Folder 里面工作。

12.1  创建 Session

登陆到 Workflow Manager,,打开 Session 放置的 Workflow

在工具栏的左上角左击 session 创建图标后松开鼠标,然后在工作区任意位置左击一下弹出 Session 创建对话框,选择正确的 mapping,并按照 5.4 规范命名

 INFORMATICA 开发规范有哪些

12‑1 创建 Session

将 Assignment、Sessionpre_S_*、新建的 Session、post_S_* 串联

 INFORMATICA 开发规范有哪些

12‑2 串联 Session

12.2  必要 Session 属性设置

对于 Session 的修改和设置一定去到 Session 工作区设置,尽量不要在 Worklet 或者 Workflow 里面做特殊设置,比如指定表名或者指定用户名等。

12.2.1  General 属性

Failed Parent if this task failed:勾选

Treat the input link as: And

INFORMATICA 开发规范有哪些

12‑3 General 属性设置

12.2.2  Property 属性

Session Log File Name:FolderName_SessionName.log,(参照样例,需要手动写入)

Parameter Filename:

当 增量参数是由 pre_S* 生成的参数文件控制时:$PMRootDir/BWParam/$$PARAM_FILE(固定值)

当 增量参数不是由参数文件控制时:留空

Treat Source Rows as, 有几种类型:1: Insert 2:Update 3:Data driven

对于目标表只有 Insert 的,就选择,Insert,

对于目标表中存在更新,同时没有使用 UpdateStrategy 控件的使用: Update

对于 Mapping 中使用 UpdateStrategry 控件的使用 Data driven

Commit Interval:默认值 10000,当单次加载超过 10 0000 行时将值设置为 100000

Recovery Strategy:

调度增量(或者一次全量)超过 500 万 并且 在加载数据之前没有删除冗余数据操作的调度 选择:Resume from last checkpoint

其它:Restart task

Enable high precision:勾选

INFORMATICA 开发规范有哪些

12‑4 Properties 属性设置

12.2.3  Config Object 属性

Default buffer block size

当运行速度较慢时考虑调整

Informatica 用来存储数据的最小单位,默认值 12KB。Information 初始化 Session 时,对每个 Session 分配 2 个 Block 作为初始化分配。如果一行数据大于 Block 的大小时则每一行数据均要移动多个 Block,影响执行效率。建议取一行数据最大值的整数倍作为 Block 的大小。如一行数据的大小是 8KB,可以调整 Default buffer block size 为 24KB 或者 16KB

Maximum Memory Allowed For Auto Memory Attributes

 512M  单次取数介于 500000 行到 2000000

 1024M  单次取数介于 2000000 行到 5000000

Maximum Percentage of Total Memory Allowed For Auto Memory Attributes:10%

以上两个参数通常情况下保留缺省值即可,对于某些占用内存较大的 Mapping 可以考虑增大,最大不能超过 1G, 同时他们之中取小的值作为最终值

Save session log for these runs:100,保存最近 N 次的运行日志

Tips: 菜单— TaskàSession ConfigurationàEditàPropertiesà 将 Save session log for these runs 设为 100

可修改整个文件夹所有 session 的“Save session log for these runs”的值

12.2.4  Mapping 属性 12.2.4.1 Source 属性

配置源表的连接信息,包括使用的 Connection(连接),源表

INFORMATICA 开发规范有哪些

12‑5 设置源表的连接信息

检查源表的过滤条件(可选),默认是继承 mapping 中 Source Qualifier 中的过滤条件一致,在 session 里可以进行个性化设置

 INFORMATICA 开发规范有哪些

12‑6 设置 Source Filter

12.2.4.2 Target 属性

Target load type : Bulk/Normal  对于目标表中存在索引的,Target load type 只能选择 l 装载方式。默认值是 Bulk,本文要求统一设置成 Normal

Tips: 可在 Workflow Manager 中的 Tools- Options- Miscellaneous 中进行初始设置

Insert:  勾选

Update as Update :勾选,当指定的目标表中只有 Update 动作时,使用

Update as Insert :不勾选,à当指定的目标表中只有 Insert 动作时,使用

Update else Insert:不勾选 à 可用于维表或其它主数据表的数据增量操作,如果已经有 US 更 新策略组件则不用。

Delete :不勾选  

Truncate target table option :  通常是全量抽取时,用于目标表需要先进行清除动作时,这个选项要慎重选择因为会清空全表的数据。默认是末被勾选的。

Reject filename: $$REJECT_FILE

Pre Sql 设置数据的重载机制,根据情况添加以下脚本

情况 1:按时间增量基于 delete-insert 方式时填写以下语句,否则留空

Delete from $$TARGET_OWNER.$$TARGET_TABLE

Where (increment column) =to_date(‘$incr_start_dt’,‘YYYY-MM-DD HH24:MI:SS’)

And  (increment column) to_date(‘$incr_end_dt’,‘YYYY-MM-DD HH24:MI:SS’);

Commit;

情况 2:按主键增量且基于 delete-insert 方式时填写以下语句,否则留空

Delete from $$TARGET_OWNER.$$TARGET_TABLE

Where (increment column) $$incr_start_ID

And  (increment column) = $$incr_end_ID

Commit;

情况 3:全量

留空

Post SQL:  默认留空,如果需要在目标表加载完成在数据库执行的任务可自行编写

Target Table Name: $$TARGET_OWNER.$$TARGET_TABLE

13  从中间库取数据

    从中间库取数据时的设计需要在中间库数据加载不及时的情况下,从中间库的源库取数据来避免数据漏采,所以在 Workflow 中要设计两个 Session 分别能从中间库、中间库的源库抽取数据。可复用 Session‘pre_s_MID’可以生成当批次的增量时间值,并根据中间库取数据的及时情况让其中一个 Session 空跑。

参考:文件夹 000_Sample 下 WF_M_FOR_MID

注意:以下设计只能针对基于时间的增量。

13.1  复制共享对象

参考复制共享对象创建‘M_GetParam_Mid’的快捷方式,复制’re_S_MID’、’post_S_MID’

13.2   Workflow 设计

 INFORMATICA 开发规范有哪些

  向目标库的  ETLMGR.ETL_INCR_PARAM 插入所需的数据,ETL_INCR_PARAM.SESSON_NAME = S_M_TargetTable

创建 Workflow 时从 000_Sample 复制 WF_for_copy_mid 进行重命名。参考
添加可复用 Session
添加‘pre_S’,‘pre_S_MID’,‘post_S_MID’

Assignment:跟直接从源库数据不同,从中间库取数据时需要检查中间库的数据是否及时,所以要指定中间库的源表。

INFORMATICA 开发规范有哪些

pre_S_M_ TargetTable:由‘pre_S’重命名而来, 属性设置与
添加可复用 Session
一致。

pre_S_ M_ TargetTable_MID:由‘pre_S_MID’重命名而来, 属性设置与
添加可复用 Session
一致,但是要指定两个源表的 Connection 分别到中间库和目标库.

 INFORMATICA 开发规范有哪些

post_S_ M_ TargetTable:由‘post_S_MID’重命名而来, 属性设置与
添加可复用 Session
一致.

S_M_TargetTable_MID:属性设置参考
Session 设计
,源表的 Connection 指向中间库

S_M_TargetTable:属性设置参考
Session 设计
,源表的 Connection 指向中间库的源库,可能需要向管理员申请对应 Connection 的执行权限。

特殊设置:’treat the input link as’=‘or’

 INFORMATICA 开发规范有哪些

Link1: $pre_S_M_TargetTable_MID.ErrorCode 0

Link2: $pre_S_M_TargetTable.ErrorCode =  0

Link3: $pre_S_M_TargetTable.ErrorCode =  0

双击连线(link)可以编辑连线的条件

 INFORMATICA 开发规范有哪些

14  写数据到 FTP 文件

可参考文件夹 000_Sample 下 WF_M_FOR_FTP 的 Workflow 的设计

FTP Connection: 在帮助文档的搜索‘FTP Connection’关键字

写数据到 FTP 文件时,由于目标不再是数据库,所以不需要在 ETLMGR.ETL_INCR_PARAM 设置增量参数的值,也不能在将运行日志写入日志表中。增量的控制一般采用 sysdate(DB 参数) 来实现。建议每 FTP 文件的命名带上时间戳并且在 FTP 文件顺利生成后写一个标志文件来标志 FTP 文件顺利生成。

15  开发建议

1)  习惯点击 Ctrl+ S 进行 Mapping 的保存,避免客户端崩溃造成的不必要损失

2)  习惯性的经常去 Refresh Mapping 和 Validate Session 和 Workflow,保持 Session 和 Mapping 的一致,保持 Session 的正确可用性

3)  下班前及在进行重大修改前对相关内容做备份,备份操作参考 12 章

16  备份及恢复 16.1  备份

登陆到 Repository Manager

备份 Workflow

操作:选择需要备份的 Workflow(结合 Shift 及 Ctrl 可多选)à右键àExport(导出)à选择保存路径并填写文件名称à点击保存按钮

上述操作会备份 Workflow 及 Workflow 所有子对象如:Session、Mapping、Source、Target 等

备份 Mapping

操作:选择需要备份的 Mapping(结合 Shift 及 Ctrl 可多选)à右键àExport(导出)à选择保存路径并填写文件名称à点击保存按钮

上述操作会备份 Mapping 及 Mapping 的所有子对象如:Mapping、Mapplet、Source、Target 等

备份其它对象,参考上述两种备份操作

16.2  恢复

登陆到 Repository Manager

操作:菜单 RepositoryàImportant Objectà选择需要导入的 XML 文件,打开à选择下一步à选择需要导入的对象à选择并确认目标文件夹àImportà (有冲突时会出现) 处置冲突的解决方法à下一步

Tips:在处置冲突时可对多外对象应用相几的处置方法

 INFORMATICA 开发规范有哪些

14‑1 导入对象时处置冲突

18  常见问题解决

 INFORMATICA 开发规范有哪些

解决方法:检查 Workflow、Session 的命名规范,如 S_M_TCMS_TM_DEPARTMENT 写成

s_M_TCMS_TM_DEPARTMENT

看完上述内容,你们掌握 INFORMATICA 开发规范有哪些的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注丸趣 TV 行业资讯频道,感谢各位的阅读!

向 AI 问一下细节

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-12-04发表,共计14327字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)