OGG 整理简洁笔记 VI

ogg 对所有数据选择,映射,过滤 都是通过 两个参数 table 和map 来完成,TABLE 用在extract 参数文件中,而 map 用在 replicat 参数文件中, 如果在 table 或者map 的参数基础上添加属性(eg where,filter等) 可实现数据选择,过滤。

一般不建议在pump进程中实现数据转换,也一般在target端 实现,考虑到影响source端性能。



1 数据的选择 与 过滤:     ---函数使用详见 -p102
 
where 选择只是基于SQL 的where操作,而filter 比where可以使用更多函数,一般filter 多余where 使用。

eg:  
  table  <table spec>, 
   filter ( [,on insert | on update | on delete] 
              [, ignore insert |ignore update | ignore delete] , 
 <filter clause>]);

 map <table spec>, target <table spec>,
filter (
  [, on insert | on update |on delete]
  [, ignore insert | ignore update | ignore delete ]
  [, raiseerror <error_num>] , <filter clause>);


 FILTER  是基于数值的操作,以下情况建议使用filter 操作:
数值类型、所操作的字段包括数值、函数的返回值是数值类型、所支持的数学操作的数据类型 :+,-,*,/,\ >、>=、<、<=、<>、=、 and or 等。

2.1 当使用filter属性时,下列参数可以和 filter 一起使用。
on insert  | on update | on delete 及    ignore insert |ignore update | ignore delete

2.2 当filter 发生错误时,target端使用 raiseerror 参数可以唤起用户自定义错误信息
    在 filter中使用字符串需加 双引号。
 
eg: 调用 gg 的@compute 函数抽取价格操作 10000的记录
   MAP SALES.TCUSTORD,TARGET sales.tord, 
   FILTER (@COMPUTE (PRODUCT_PRICE*product_amount) > 10000);

eg : 调用gg的@strfind 函数,抽取包含joe字符串 的记录。
table act.tcustord ,filter (@strfind (name ,"joe")>0);

eg : 当select 记录大于50条时,在update和delete上执行filter

TABLE ACT.TCUSTORD, FILTER (ON UPDATE,ON DELETE ,AMOUNT >50);

eg: 调用gg的@range 函数,把表拆分到两个进程中去。
  (replicat group 1 parameter file)
  map sales.acct,target sales.acct, filter (@range (1,2,id));

   (replicat group 2 parameter file)
 map sales.acct, target sales.acct ,filter(@range (2,2, id));



-----------------------------------------------------------------------------
3 列映射:   ---p98 详见

OGG 支持table级别,全局级别的列映射

table-level 列映射: --需要在table 和map 中使用colmap 参数来进行映射。

3.1 source,target 端库的列名字不同。
3.2 COLMAP 参数提供从source端到 target端库 的列 选择,映射,转换,数据移动。







  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值