
云数据库 PostgreSQL 是京东智联云基于开源的 PostgreSQL构建的一款功能强大的企业级关系型数据库管理系统。加州大学计算机系开发的PostgreSQL,有“世界上可获得的最先进的开源数据库”之称,在DB-Engines关系型数据库中排名第四,以其稳定性、数据类型多样性(JSON、IP数据和几何数据等)、对地理信息引擎的完整支持等特性,逐渐成为企业级数据库首选。
云数据库PostgreSQL作为一款功能强大的企业级关系型数据库管理系统,能够提供丰富的产品相关生态,还可为用户提供数据订阅服务。用户能够根据自身业务需求自由消费增量数据,适用于缓存更新策略、业务异步解耦、异构数据源的数据实时同步和复杂ETL的数据实时同步等多个业务场景。
京东智联云“云数据库 PostgreSQL”基于Debezium服务,能够实现云数据库PostgreSQL-云Kafka增量消息订阅服务,用户无需部署服务,直接连接客户端即可自定义消费程序进行Kafka数据消费,并且可以随时停止消费。并且在重新启动客户端时,消费的数据会从中断的位置继续恢复。
看到这里,你可能会有所疑惑,云数据库PostgreSQL是京东智联云基于开源的 PostgreSQL构建的一款功能强大的企业级关系型数据库管理系统,但是 Debezium服务是什么呢?Debezium服务和云数据库PostgreSQL准实时数据同步原理又是怎样的呢?本文将对如何以云数据库PostgreSQL作为数据源来实现其功能进行介绍。
Debezium服务介绍
Debezium是一组开源的分布式服务,主要用途是捕获数据库中的更改(change data capture,CDC),从而帮助应用程序对数据库的更改进行识别及响应。Debezium服务提供低延迟的针对CDC(change data capture)数据同步分布式平台,启动并指向数据库之后,可以准实时的获取数据库行级别的变更事件。同时,Debezium是构建在kafka之上的,与kafka深度耦合,可以基于kafka Connector来使用。因此能够通过Kafka和Kafka Connect来实现自己的持久性、可靠性和容错性。目前,Debezium服务支持的数据库有MySQL、PostgreSQL、SQL server、Oracle、Mongodb。
基于Debezium的CDC管道架构

众所周知,在业务系统中,会涉及到多个数据源的数据流转,例如在线系统的数据流转到分析系统、流计算系统、搜索引擎、缓存系统、事件处理系统等等。那么,实时的数据流转能力是至关重要的。为了实现这一目的,CDC系统由此出现。
CDC系统用于捕获上游数据的实时变化(已提交的数据),写入消息队列(例如Kafka)并持久化。对于下游系统,可以通过Spark Streaming消费消息队列的数据结合业务逻辑做一些ETL数据处理,或者基于HBase Connector将数据转储到HBase,从而实现实时的数据流转。
我们在物流的业务实践中,由于数据爆发性增长,从而进行了数据库拆分、分库分表。但是在拆分之后,我们又遇到了新的挑战: 如何解决分库分表之后数据集中的检索问题呢?此时,Debezium服务应运而生。通过Debezium实时数据管道,将一千多张数据表准实时地同步到Kafka Topic下,再由业务端消费Topic消息摄取数据到ElasticSearch进行检索,便可以完成地址搜索应用场景的构建。
云数据库PostgreSQL增量消息同步原理
Logical Decoding
解析WAL成为逻辑数据的过程被称为Logical Decoding,是从PostgreSQL 9.4开始引入的特性。Logical Decoding是把WAL日志解析成逻辑日志的过程,将用户定阅的数据变化(即对某些表的insert/update/delete操作来带的数据变化)输出成特定的数据格式,Debezium支持Logical Decoding plugin有decoderbufs、wal2json、pgoutput(PostgreSQL 10以上版本)。
复制槽
复制槽(replication slots)是实现同步需求的重要部分,创建一个slot后,能够保存逻辑或物理流复制的基础信息,类似MySQL的位点信息。这样,Debezium通过PostgreSQL JDBC连接到PostgreSQL数据源,然后基于逻辑流复制协议,即可从replication slots获取状态信息,同步数据变更。
基于Debezium Connector摄入数据到其他数据源
Debezium Connector可以将数据库执行DML操作所产生的数据变更事件,以特定的数据格式(JSON/Avro)写入到Kafka对应的Topic下。那么对于同步的目的端来说,只要能够实现从Kafka消费的Connector,再加上一些和源数据对应的格式转换逻辑,就能够将数据同步,并持久化到不同的数据源,例如ElasticSearch、HBase等。

Kafka Connector部署模式分为两种,一种是 Standalone模式,一种是 Distribution模式。一般在生产模式下建议使用Distribution模式。在集群模式下,可以扩展、容错,一旦某个节点的task任务出现异常,其他正常的节点能够及时接管出现异常的task任务。
具体该如何将PostgreSQL同步数据到ElasticSearch并在Distribution模式下进行集中管理部署,请见下方的示意图。

Debezium功能特性:
通过上述内容,想必大家能够对Debezium服务和云数据库PostgreSQL准实时数据同步原理有了进一步的理解。目前,京东智联云云数据库 PostgreSQL已上线,云数据库 PostgreSQL 是京东智联云数据库团队历时 1 年多精心研发的产品,该产品凝聚了京东智联云数据库团队多年来的 PostgreSQL 使用经验,能够提供一个稳定、可靠的数据存储服务。 云数据库 PostgreSQL 易于部署、管理和扩展,默认支持主从热备架构,提供数据备份、故障恢复、监控等全套解决方案,彻底解决数据库运维的烦恼。同时,京东智联云“云数据库 PostgreSQL”通过使用网络隔离、白名单限制外网访问等方式,为数据库服务提供了高级别的安全性需求,帮助用户省去绝大部分复杂而繁琐的管理工作,从而使用户能够更专注于业务流程的开发与建设。
点击 【 阅读 】快来立即体验 [云数据库 PostgreSQL]吧!

相关推荐
-
雷神推出 MIX PRO II 迷你主机:基于 Ultra 200H,玻璃上盖 + ARGB 灯效
2 月 9 日消息,雷神 (THUNDEROBOT) 现已宣布推出基于英
-
制造商 Musnap 推出彩色墨水屏电纸书 Ocean C:支持手写笔、第三方安卓应用
2 月 10 日消息,制造商 Musnap 现已在海外推出一款 Oce
热文推荐
- 企业级云数据库最佳实践
企业级云数据库最佳实践
26-03-14 - 直播就在今晚!PostgreSQL专题 【恩墨面对面】
直播就在今晚!PostgreSQL专题 【恩墨面对面】
26-03-14 - PostgreSQL:Redhat 7.8 上安装
PostgreSQL:Redhat 7.8 上安装
26-03-14 - Wxcel 表格数据有增加 图表自适应
Wxcel 表格数据有增加 图表自适应
26-03-14 - Greenplum 学习实践-总体思维导图
Greenplum 学习实践-总体思维导图
26-03-14 - PostgreSQL DBA(168) - pgAdmin(config:checkpoint)
- Postgresql日常运维-安装(Linux)01
Postgresql日常运维-安装(Linux)01
26-03-14 - PostgreSQL 10.12 安装系列 - 源码安装
PostgreSQL 10.12 安装系列 - 源码安装
26-03-14 - PostgreSQL 源码解读(247)- HTAB动态扩展图解#1
PostgreSQL 源码解读(247)- HTAB动态扩展图解#1
26-03-14 - RockyLinux DHCP故障排除(手把手教你解决RockyLinux中DHCP无法获取IP的问题)
