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的采集功能非常強大,可以靈活擴展,支持各種數據轉換和數據過濾操作,為企業提供了高效、可信賴的數據采集方案。