赞
踩
在大数据时代,存在大量基于数据的业务。数据需要在不同的系统之间流动、整合。通常,核心业务系统的数据存在OLTP数据库系统中,其它业务系统需要获取OLTP系统中的数据。传统的数仓通过批量数据同步的方式,定期从OLTP系统中抽取数据。但是随着业务需求的升级,批量同步无论从实时性,还是对在线OLTP系统的抽取压力,都无法满足要求。需要实时从OLTP系统中获取数据变更,实时同步到下游业务系统。
本文基于Oracle OGG,介绍一种将Oracle数据库的数据实时同步到Kafka消息队列的方法。
Kafka是一种高效的消息队列实现,通过订阅kafka的消息队列,下游系统可以实时获取在线Oracle系统的数据变更情况,实现业务系统。
本案例中使用到的组件和版本
组件 |
版本 |
描述 |
源端Oracle |
Oracle 12.2.0.1.0 Linux x64 |
源端Oracle |
源端OGG |
Oracle GoldenGate 12.3.0.1.4 for Oracle Linux x64 |
源端OGG,用于抽取源端Oracle的数据变更,并将变更日志发送到目标端 |
目标端OGG |
OGG_BigData_Linux_x64_12.3.2.1.1 |
目标端OGG,接受源端发送的Oracle事物变更日志,并将变更推送到kafka消息队列。 |
目标端kafka |
kafka_2.12-2.2.0 |
消息队列,接收目标端OGG推送过来的数据。 |
名词解释
1.OGG Manager
OGG Manager用于配置和管理其它OGG组件,配置数据抽取、数据推送、数据复制,启动和停止相关组件,查看相关组件的运行情况。
2.数据抽取(Extract)
抽取源端数据库的变更(DML, DDL)。数据抽取主要分如下几种类型:
从本地数据库捕获增量变更数据,写入到本地Trail文件
从本地Trail文件读取数据,推送到目标端。
从数据库表中导出全量数据,用于初次数据加载
3.数据推送(Data Pump)
Data Pump是一种特殊的数据抽取(Extract)类型,从本地Trail文件中读取数据,并通过网络将数据发送到目标端OGG
4.Trail文件
数据抽取从源端数据库抓取到的事物变更信息会写入到Trail文件。
5.数据接收(Collector)
数据接收程序运行在目标端机器,用于接收Data Pump发送过来的Trail日志,并将数据写入到本地Trail文件。
6.数据复制(Replicat)
数据复制运行在目标端机器,从Trail文件读取数据变更,并将变更数据应用到目标端数据存储系统。本案例中,数据复制将数据推送到kafka消息队列。
7.检查点(Checkpoint)
检查点用于记录数据库事物变更。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。