到Hadoop体系的接口,但得到的日志目前仍需应用层来解析(关系型数据库如MySQL时OGG对应版本已实现应用层的解析,无需人工解析)。
OGG的几个主要进程mgr,extract,pump,replicate配置方便,可快速配置OGG与异构关系存储结构的实时同步。后续如果有新增表,修改对应的extract,pump和replicate进程即可,当然如果是一整个库,在配置上述2个进程时,使用通配的方式即可。
OGG到Hadoop体系的实时同步时,可在源端extract和pump进程配置不变的情况下,直接在目标端增加replicate进程的方式,增加同步目标,以下简单介绍本示例中增加同步到Kafka的配置方法。
本示例中extract,pump进程都是现成的,无需再添加。只需要在目标端增加同步到Kafka的replicate进程即可。
在OGG的命令行下执行:
replicate进程和导入到HDFS的配置类似,差异是调用不同的配置dirprm/r2kafka.props。这个配置的主要配置如下:
r2kafka.props
引用的custom_kafka_producer.properties
定义了Kafka的相关配置如下:
以上配置以及其他可配置项可参考地址:
以上配置完成后,在OGG命令行下添加trail文件到replicate进程并启动导入到Kafka的replicate进程
检查实时同步到kafka的效果,在Oracle源端更新表的同时,使用kafka客户端自带的脚本去查看这里配置的ggtopic这个kafkatopic下的消息:
目标端Kafka的同步情况:
显然,Oracle的数据已准实时同步到Kafka。从头开始消费这个topic发现之前的同步信息也存在。架构上可以直接接Storm,SparkStreaming等直接消费kafka消息进行业务逻辑的处理。
从Oracle实时同步到其他的Hadoop集群中,官方最新版本提供了HDFS,Hbase,Flume和Kafka,相关配置可参考官网给出的例子配置即可。