之前我们在《如何用gpss实现MySQL到Greenplum的增量同步》中详细介绍了MySQL到Greenplum增量同步的实现步骤。今天将给大家讲一讲Oracle到Greenplum又是如何实现的。
Oracle数据库虽然在OLTP领域仍有着毋庸置疑的优势地位,但在OLAP领域与Greenplum则是差距显著。如今已经有越来越多的分析型业务从Oracle迁移到Greenplum,在《如何从Oracle迁移到Greenplum》系列文章中,详细介绍了业务的迁移的最佳实践;而数据迁移中最核心的就是如何实现数据的实时增量同步。 对增量同步而言,gpss作为一个流计算框架,与源端是解耦的,因此只要Kafka topic中的消息,包含足够的信息,gpss都可以提取变化的数据并重放到gp中。 之前介绍了如何利用gpss同步来自Maxwell和Mysql的增量数据,这里再以Oracle Golden Gate为例,介绍如何实时同步来自Oracle的增量数据。1
测试环境
- Oracle
- Oracle Golden Gate
- Kafka 2.2.2
- Greenplum 6.4.0
- GPSS 1.3.6
通过GoldenGate将Oracle中的增量数据以json格式发送到Kafka (略)
利用gpss解析kafka中的json消息
将变化的数据更新到Greenplum的目标表中
2
测试数据简介
测试使用的表在Oracle中定义如下:
CREATE TABLE SIEBEL_TEST.TEST_POC( ID numeric, NAME varchar2 (50), BIRTHDAY date)
其中 ID 列为键,用来唯一标识一条记录, NAME 和 BIRTHDAY 为更新字段 在源端分