Informatic ETL开发步骤
一、 Designer
1.创建sources(源和目标库操作一样)
- 在Source Analyzer视图下 ==> 菜单栏sources ==> import from database 创建odbc data source
创建新数据源这里没有对应数据库类型的ODBC则需要从网上下载安装,mysql odbc创建见附录
- 填好username/ owner name/password选择需要拉取和推送的表
2. 创建mapping
打开文件夹===> 选择mapping designer视图===> 菜单栏mappings选择create
3. 创建映射关系
- 选择source analyzer视图===>菜单栏sources选择import from database
- 选择target designer视图===>菜单栏targets选择import from database(不要把之前的target删掉了!!!)
- 选择mapping designer视图===>从左边树形菜单下拖对应的source和target到这个视图下===>然后连线创建字段映射关系
- 菜单栏mappings选择parameters and variable 添加增量参数
Name |
Type |
Datatype |
Prec |
Scale |
Aggregation |
IsExprVar |
$$INCR_START_DT |
Variable |
string |
20 |
0 |
Max |
FALSE |
$$INCR_END_DT |
Variable |
string |
20 |
0 |
Max |
FALSE |
$$INCR_START_ID |
Variable |
decimal |
22 |
0 |
Max |
FALSE |
$$INCR_END_ID |
Variable |
decimal |
22 |
0 |
Max |
FALSE |
点击w图标进入workflow工具
二、 Workflow
1. 创建流程
- 菜单栏 ==> workflows ==> create(按标准命名)
- 拖一个start assignment,复制其他ETL项目的pre post 修改pre数据连接的配置,拖一个session选中Design中创建的mapping,按标准命名,然后用连接线连起来
- 参数配置 菜单栏 ==> workflows ==> edit ==> variable
2. 参数配置
Name |
Datatype |
Persistent |
$$SOURCE_OWNER |
nstring |
|
$$SOURCE_TABLE |
nstring |
|
$$WORK_DATE |
nstring |
|
$$TARGET_OWNER |
nstring |
|
$$TARGET_TABLE |
nstring |
|
$$SESSION_NAME |
nstring |
|
$$PARAM_FILE |
nstring |
|
$$REJECT_FILE |
nstring |
|
以及其他自定义参数 |
nstring |
|
- assignment参数值配置 assignment ==> 右键edit ==> expressions
User Defined Variables |
Operator |
Expression(与初始化表中的值对应,大小写也要相同) |
$$TARGET_OWNER |
- |
'VMAP' |
$$TARGET_TABLE |
- |
'TMVMAPCONTRACTSYNTMP' |
$$SOURCE_OWNER |
- |
'SRM' |
$$SOURCE_TABLE |
- |
'CONTRACTVM01VM02_VIEW' |
$$SESSION_NAME |
- |
'S'||SUBSTR($PMWorkflowName,3,LENGTH($PMWorkflowName)-2) |
$$PARAM_FILE |
- |
$PMFolderName||''||$$SESSIONNAME'.PARAM' |
$$REJECT_FILE |
- |
$PMFolderName''||$$TARGETTABLE||'.bad' |
其他自定义参数 |
- |
值 |
3. session配置
properties配置
Attribute |
value |
Parameter Filename(这个需要配置,否则数据库增量设置的值不会复制到增量变量上) |
$PMRootDir/BWParam/$$PARAM_FILE |
Enable high precision |
勾上 |
mapping配置
sources
| -- connections 选择对应的源数据库连接
| -- properties
| -- source filter 增量条件 modify_time >= str_to_date('$$INCR_START_DT','%Y-%m-%d %H:%i:%s') and modify_time < str_to_date('$$INCR_END_DT','%Y-%m-%d %H:%i:%s')
| -- owner name 数据库owner
| -- source table name 源表的表名 $$SOURCE_TABLE
targets
| -- connections 选择对应的目标数据库连接
| -- properties
| -- Truncate target table option 如果同步前需要清空所有数据,可以勾选
| -- reject file directory $PMBadFileDir\
| -- reject filename
| -- post SQL 存储过程 call $$TARGET_OWNER.SYN_REPAIR_CONTRACT_FROM_SRM($$REMAIN_DAYS);
| -- target table name $$TARGET_OWNER.$$TARGET_TABLE
点击M图标进入monitor工具
4.额外工作
源库对源etl账号授查询权,目标库表对目标etl账号查询插入更新授权
用目标库etl账号登录数据库,在etlmgr库(可能看不到,实际上有权限)中增加workflow的初始化数据
insert into etlmgr.etl_incr_param(FOLDER,
WORKFLOW,
SESSION_NAME,
TARGET_OWNER,
TARGET_TABLE,
INCR_TYPE,
INCR_COLUMN,
LAST_RUN_STATE,
INCR_START_VALUE,
INCR_END_VALUE,
LAST_START_TIME,
LAST_END_TIME,
TIME_MODE,
TIME_RANGE,
TIME_BEFORE_NOW)
values('VMS_VMS',
'WF_M_TA_OUT_ROLE',
'S_M_TA_OUT_ROLE',
'VMS',
'TM_UUPM_ROLE',
'TIME',
'CREATE_TM',
'INIT',
'2015-08-01 00:00:00',
'',
'',
'',
'YYYY-MM-DD HH24:MI:SS',
0,
0);
commit;
三、 Monitor
在workflow工具上,右键Start Workflow, monitor选中对应的文件夹即可看到运行状态和session日志。
四、导入和导出
点击R图标进入Repository
导入
选择文件夹==》菜单栏 Repository选择import objects
导出
选择文件夹==》workflows==》选中对应的workflow右键export
五、 附录
1. Designer mysql数据源配置
- 安装mysql ODBC
- client 修改配置文件
找到Informatica Client的安装目录,按如下图所示的位置找到 powrmart.ini 文件,添加内容如红圈所示。
2. Workflow 配置 Connector(SF可省略)
开发好的 Mapping,需要运行在 Workflow,这时候需要对 Mapping 对应的数据源配置 Connector,以便支持 Workflow 的运行。打开 Workflow 工具,配置 MySQL Connector,步骤如下所示: