本文主要介绍OGG中一些过滤或计算函数的用法,以及sqlexec的基本用法

SQLPREDICATE

在使用OGG初始化时,可以添加此参数到extract中,用于选择符合条件的记录,下面是OGG官方文档中的描述 :

“在用OGG初始化数据时,使用SQLPredicate是比where或filter更好的一个选项。使用此语句比其它参数初始化更快,因为它直接作用于SQL语句,告诉OGG不应该取所有数据之后再过滤(这正是其它参数的运行方式),而是应该只取需要的部分。”

如下

TABLE ggs_owner.emp_details, SQLPREDICATE “where ename=’Gavin’”;

针对目标端的数据过滤,仍然可以在replicat上使用where条件进行数据过滤,即只取extract出来的部分数据进行投递,如下:

MAP ggs_owner.emp_details, TARGET ggs_owner.emp_details, WHERE (ename=”Gavin”);

FILTER

Filter的功能远比where强大,你可以在任何有字段转换的地方使用它进行数据过滤,而where只能使用基本的操作符。比如,我们可以在OGG的这些函数(@COMPUTE, @DATE, @STRFIND, @STRNUM等)中使用数值运算符:

‘+’,’-’,’/’,’*’或比较操作符‘>’,’<', '='。

下面的配置示例中我们在extract中使用STRFIND函数,捕获ename字段中只符合相应条件的记录,配置如下:

TABLE ggs_owner.emp_details,FILTER (@STRFIND (ename, “Gavin”) > 0);

COMPUTE

接下来的示例讲解如何使用@COMPUTE函数,本示例中基于某原始字段值,计算同一张表中其它字段的值。

在本示例中的目标表EMP与源表结构不同,目标表上有多出来的一个字段COMM。COMM字段的值由源字段SAL*1.1计算得到。由于两边表结构不同,因此,我们需要先用defgen程序创建一个定义文件。

首先,我们在目标端上基于EMP表创建defgen参数文件:

edit params defgen

DEFSFILE /home/oracle/goldengate/dirsql/emp.sql
USERID ggs_owner, PASSWORD ggs_owner
TABLE ggs_owner.emp;

然后在OGG安装目录下执行:

[oracle@linux02 goldengate]$ ./defgen paramfile ./dirprm/defgen.prm

目标端的replicat参数文件定义如下,里面用到了colmap和compute。colmap中的useDefaults告诉OGG,源和目标表的字段按名称自动匹配,而目标表的comm字段,则由源端的sal字段运算得到。

REPLICAT rep1
USERID ggs_owner, PASSWORD *********
SOURCEDEFS /home/oracle/goldengate/dirsql/emp.sql
MAP ggs_owner.emp_details, TARGET ggs_owner.emp_details,
COLMAP (usedefaults,
comm= @compute(sal +sal *.10));

基于上面的配置进行数据同步测试,可以看到目标表中comm的字段值是sal字段值的1.1倍,如下:

SQL> select * from emp;

EMPNO ENAME                    DEPTNO        SAL       COMM

---------- -------------------- ---------- ---------- ----------

1001 Gavin                        10       1000       1100

1002 Mark                         20       2000       2200

1003 John                         30       3000       3300

SQLEXEC

SQLEXEC可以在extract或replicat中用于执行SQL语句、存储过程或SQL函数。比如,针对大批量的数据加载,我们可以先将表的索引删除,待数据加载完成之后,再重建索引,从而提高数据同步的性能。在下面replicat示例中,可以看到类似的配置示例:

REPLICAT rep1
USERID ggs_owner, PASSWORD ggs_owner
ASSUMETARGETDEFS
sqlexec “drop index loc_ind”;
MAP ggs_owner.emp_details, TARGET ggs_owner.emp_details, WHERE (location=”Sydney”);
sqlexec “create index loc_ind on emp_details(location)”;

转载于:https://www.cnblogs.com/quanweiru/p/4957633.html

GoldenGate中使用FILTER,COMPUTE 和SQLEXEC命令相关推荐

  1. Oracle在命令行中输入clear,Oracle SQLPlus 常用命令及解释

    Oracle SQLPlus 常用命令及解释 1.@ 执行位于指定脚本中的SQLPlus语句.可以从本地文件系统或Web服务器中调用脚本.可以为脚本中的变量传递值.在iSQL*Plus中只能从Web服 ...

  2. matlab中集合的表示,Matlab常用命令集合

    1.常用命令-->管理命令和函数 addpath添加目录到MATLAB搜索路径doc在Web浏览器上现实HTML文档help显示Matlab命令和M文件的在线帮助helpwin helpdesk ...

  3. android工具am的用法,Android中AM、PM、dumpsys命令使用总结

    在平时开发中,通过命令行有时候能够快速的帮我们实现一些功能,这里对常用的命令做一些总结. 1.AM命令用法 1.1.简单介绍 am指令是 activity manager的缩写,可以启动Service ...

  4. 计算机命令vty是什么意思,讲述华为交换机配置中HTTP访问和vty访问命令 -电脑资料...

    讲述华为交换机配置中HTTP访问和vty访问命令,有很多热心的网友对华为交换机配置问题给出了答复,不知道是不是提问者想要的答案,感谢网友对HTTP访问和vty访问命令命令的详细解答, 华为交换机配置标 ...

  5. SpringBoot学习之路:09.Spring Boot中添加Filter应用

    2019独角兽企业重金招聘Python工程师标准>>> 上篇文章中说了SpringBoot中是如何使用servlet的,本文将讲解在SpringBoot中对过滤器Filter的实现 ...

  6. 模拟一下goldengate中断后,重新同步操作

    转载来源: http://www.woxihuan.com/48450446/1331372453085421.shtml 本想写一篇,但觉得这篇,文主写的很清晰就直接转了. 模拟一下goldenga ...

  7. Java Web中的Filter和Interceptor的区别

    2019独角兽企业重金招聘Python工程师标准>>> 1.问题的来源 项目中使用了Filter,进行白名单的控制,同时使用了Filter进行了跨域请求的控制,使用了Intercep ...

  8. linux默认csh修改命令,Solaris中默认Shell的修改以及命令行补全的设置

    Solaris中默认Shell的修改以及命令行补全的设置 发布时间:2008-02-18 00:01:41来源:红联作者:qtsmy Solaris10 x86虽然可以跑起来,但有很多方面都用这和以前 ...

  9. mysql 密码 特殊符号_MySQL数据库之mysql设置复杂密码中含$特殊符号导致无法命令行登录...

    本文主要向大家介绍了MySQL数据库之mysql设置复杂密码中含$特殊符号导致无法命令行登录 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. 安全考虑 在设置MYSQL 密码时候 ...

最新文章

  1. 可汗学院向量入门 矩阵入门
  2. 百分点宣布完成C轮融资2500万美元 将进一步开放云平台应用
  3. boost::iostreams模块实现具有64位大文件偏移量的测试程序
  4. dagger android 学习(二):AndroidInjector的使用
  5. php 追查框架生命周期,ThinkPHP5框架的生命周期:从发出请求到响应完成
  6. qt编写触摸事件的关键
  7. 以太坊开发入门,如何搭建一个区块链DApp投票系统
  8. lombok构造方法_最佳实践Lombok
  9. 存储盟主将要退位云计算会是最后盟主?
  10. MongoDB学习(黑马教程)-4-数据库MongoDB的更新(修改)文档操作
  11. 【Python】Python爬取小说标题及内容——晋江文学网
  12. oracle 校验 统一社会信用代码 函数
  13. 【LG-P5072 [Ynoi2015]】盼君勿忘
  14. Docker 与 K8S学习笔记(二十)—— 使用Downward API向容器注入Pod信息
  15. 【论文阅读】DNS隧道攻击检测算法整合
  16. 【软件相关】EverythingSumatraPDF的一个小bug
  17. 天津市高中计算机会考,天津高中会考科目有哪些
  18. 前端seo优化详细方案
  19. S7-PLCSIM与WINCC 通讯【工控老鬼】
  20. 20220302显著性算法:Itti

热门文章

  1. “最严版权令”披荆两年,正版化努力让中国音乐价值回归
  2. 名称节点和数据节点作用
  3. Android -- 自定义View小Demo,绘制四位数随机码(一)
  4. 回文绝对求下联:亚冠决赛决冠亚
  5. I.MX6 Linux Serial Baud Rate hacking
  6. BGP 同步 黑洞 peergroup rr 联邦 full-mesh
  7. Linux系统资源控制
  8. 如何在Linux上安装设备驱动程序
  9. res.data.data_在Data.gov进行幕后推销
  10. 善解人意,改善您的在线关系