配置ogg实现数据增量详细教程
第一步:配置数据库源端ogg的DDDC(负责将源端产生数据变化的文件拷贝到目的端ogg/dirdat目录下,会将该用户下的所有表变化记录拷贝)和EDDC进程(捕捉并抽取数据变化的文件到dirdat中)参数文件,注意:配置完后要将两个进程停止并启动,以用户名的维度去定义表,比较方便:
RMTHOST是远程端ip,RMTTRAIL 是目的端目录,前缀加上rc结尾,这是对两个进程文件的里面内容的解读,方便理解;
**第二步:**配置源端/dirdef/defgen.prm里面的表,将需要还原的表添加上去(用以还原具体需要的表)
完后,以此参数表为基础生成参数文件,要在ogg 这个目录下才可操作这个,命令defgen paramfile ./dirprm/defgen.prm 生成参数文件后,将其远程拷贝到目的端,命令: scp dcctables.def 用户名@ip:/opt/oracle/ogg/dirdef
,默认放到这个文件夹下;
第三步:配置目的端的REP_DDC进程,用来将抽取过来的数据变化记录根据REP_DDC进程参数和远程过来的参数文件进行数据还原;
记得将REP_DDC重启。
抽取过来的ogg增量数据被保存到hdfs文件下,以hdfs文件目录进行保存,所以要想在类似HUE这种hive工具中显示,还得建立一个外部映射表才能用hql去查询:建立外部映射表语句格式:前五个字段是必须有的,是为了将操作类型,操作时间等写入
CREATE EXTERNAL TABLE icr_rps_gx.ds_mm_material_tran_workblank(
operation_type string,
tab_name string,
operation_timestamp timestamp,
currents_timestamp string,
trail_file_position string,
ATR_KEY double,
SITE_NUM double,
ATR_NAME string,
PURGE_STATUS double,
CREATION_TIME DATE,
CREATION_TIME_U DATE,
CREATION_TIME_Z string,
LAST_MODIFIED_TIME DATE,
LAST_MODIFIED_TIME_U DATE,
LAST_MODIFIED_TIME_Z string,
XFR_INSERT_PID double,
XFR_UPDATE_PID double,
TRX_ID string,
PARENT_KEY double,
AREA_NAME_S string,
CONSIGNOR_S string,
NOTE_S string,
ORDER_double_S string,
PART_SOURCE_S string,
PLAN_DATE_S string,
PLAN_QTY_I double,
P_LINE_NAME_S string,
REQUISITION_NO_S string,
SITE_NAME_S string,
SPECIFICATION_S string,
TRANSPORT_TIME_S string,
WMS_TRANSPORT_NO_S string
)
STORED as textfile
LOCATION '/user/oracle/ogg/mesprd.ds_mm_material_tran_workblank';
注意:当远程拷贝文件时,源端是windows环境时,scp就不适合用,要想办法将文件拷贝到本地或者Linux环境,再进行scp,推荐使用winscp等类似工具,连接linux,进行传入文件,连接时可以尝试ftp,sftp协议连接windows,linux选择scp协议;这样整个ogg流程操作完了