了解更多Greenplum技术干货,欢迎访问Greenplum中文社区网站
数据同步一般分为两种方式:全量和增量。增量数据是一类典型的流数据,基于日志的增量同步几乎已经是所有数据库的标配,它可以减少常规ETL工作对系统带来的影响,并大大降低数据的延迟。作为Greenplum的流计算引擎,Greenplum Stream Server(gpss)能将不同源端的增量数据同步到Greenplum中。为更好的支持这一应用场景,即将发布的gpss 1.3.6 对增量同步的功能做了增强。
Greenplum Stream Server(简称gpss),是Greenplum的下一代数据加载解决方案,相比于gpfdist,GPSS会提供流数据支持及API接口,有更好的扩展性,支持更丰富的功能,并开放更细粒度的任务控制接口。在即将发布gpss 1.3.6 中,对增量同步所做的的功能增强包括:
-
可以根据指定的递增排序字段,确保最新的消息生效
-
Merge可支持insert,update和delete三种操作
本文将以MySQL为例,简要介绍下gpss如何实现向Greenplum的增量同步。
1 测试环境
-
MySQL 8.0.13
-
Maxwell 1.25.0
-
Kafka 2.2.2
-
Greenplum 6.4.0
-
GPSS 1.3.6
我们要完成的工作是:
-
通过Maxwell监听MySQL中binlog的增量变化(略)
-
将增量数据以json的格式发送到kafka中(略)
-
利用gpss解析kafka中的json消息
-
将变化的数据更新到Greenplum的目标表中
MySQSL和Maxwell的配置和使用,本文将不做深入介绍,大家可以自行访问文章链接阅读学习,访问相关文章请点击文章底部的“阅读原文”。
2 测试数据简介
测试使用的表在MySQL中定义如下:
create table t_update_del