OGG(Oracle GoldenGate)是一款Oracle数据库实时抓取、同步和复制工具,而OGG采集则是OGG其中的一个组成部分。实际上OGG的采集功能十分强大,不仅可以采集Oracle数据库中的表、视图等对象,还可以提供高效的数据过滤和转换功能。
比如,我们需要将一个Oracle数据库的customer表的所有修改和删除数据进行采集,并将采集到的数据同步到另外一个目标数据库中:
GGSCI>DBLOGIN USERIDALIAS loginid GGSCI>ADD TRANDATA SCOTT.CUSTOMER GGSCI>ADD CHECKPOINTTABLE SCOTT.CUSTOMER_CHKPT GGSCI>ADD EXTTRAIL D:\gg\dirtrs\et, EXTRACT EXTCUSTOMER, BEGIN NOW, TRANLOG, MEGABYTES 500, INTEGRATED FULLCHECKPOINT, DATABASE ORCL, KEEPREPLOG GGSCI>ADD RMTTRAIL D:\gg\dirrmt\r2, EXTRACT EXTCUSTOMER, MEGABYTES 500 GGSCI>ADD EXTRACT EXTCUSTOMER, TRANLOG, BEGIN NOW, DATABASE ORCL, INTEGRATED FULLCHECKPOINT, EXTTRAIL D:\gg\dirtrl\et GGSCI>ADD EXTPUMP EP1, EXTRACT EXTCUSTOMER, RMTTRAIL D:\gg\dirrmt\r1 GGSCI>ADD REPLICAT RCREMOTE, EXTTRAIL D:\gg\dirrmt\r2, EXTRACT EP1, SPECIALRUN GGSCI>START EXTCUSTOMER GGSCI>START EP1 GGSCI>START RCREMOTE
在以上配置中,我们创建了一个名为CUSTOMER的OGG并配置了以下内容:
- TRANDATA SCOTT.CUSTOMER:指定OGG采集SCOTT用户下的customer表
- CHECKPOINTTABLE SCOTT.CUSTOMER_CHKPT:创建了一个名为SCOTT.CUSTOMER_CHKPT的检查点表,用来记录采集器偏移量
- EXTRACT EXTCUSTOMER:采集器的配置
- RMTTRAIL D:\gg\dirrmt\r2:指定RMTTRAIL的目录
- EXTTRAIL D:\gg\dirtrl\et:指定EXTTRAIL的目录
- EXTPUMP EP1:抽取器的配置
- REPLICAT RCREMOTE:复制器的配置
另外举一个例子,如果想要将Oracle数据库的数据转换成JSON格式进行采集,可以使用OGG的Data Transformation功能来实现:
GGSCI>ADD FILEFORMAT JSON, TRANSTYPE CONVERT, CHARSET UTF8, FORMAT JSON, SOURCEKEYS, OUTPUTOP GGSCI>ADD SCHEMA SOURCE, TARGET GGSCI>ADD TABLE SCOTT.CUSTOMER, FILE JSON, FORMAT JSON, COLMAP(EXCLUDEUPDATECHKPT), REUSEFILE, KEEPNULLS
以上配置中,我们创建了一个名为JSON的格式转换器,并配置了以下内容:
- SOURCEKEYS:指定了采集表中的列作为JSON格式的键
- OUTPUTOP:指定产生的JSON中的操作类型:INSERT/UPDATE/DELETE
- COLMAP:指定OGG进行数据列映射,通过"EXCLUDEUPDATECHKPT"指定排除掉OGG采集所用的内部列
- KEEPNULLS:指定OGG汇出的JSON中包含NULL值
最后,我们将SCOTT用户下的customer表添加到上述的目标表列表中,即可把Oracle中customer表的数据以JSON格式进行采集。
总之,OGG的采集功能非常强大,可以灵活扩展,支持各种数据转换和数据过滤操作,为企业提供了高效、可信赖的数据采集方案。