看到这里,你可能会有所疑惑,云数据库PostgreSQL是京东智联云基于开源的 PostgreSQL构建的一款功能强大的企业级关系型数据库管理系统,但是Debezium服务是什么呢?Debezium服务和云数据库PostgreSQL准实时数据同步原理又是怎样的呢?本文将对如何以云数据库PostgreSQL作为数据源来实现其功能进行介绍。
Debezium服务介绍
基于Debezium的CDC管道架构
众所周知,在业务系统中,会涉及到多个数据源的数据流转,例如在线系统的数据流转到分析系统、流计算系统、搜索引擎、缓存系统、事件处理系统等等。那么,实时的数据流转能力是至关重要的。为了实现这一目的,CDC系统由此出现。
CDC系统用于捕获上游数据的实时变化(已提交的数据),写入消息队列(例如Kafka)并持久化。对于下游系统,可以通过Spark Streaming消费消息队列的数据结合业务逻辑做一些ETL数据处理,或者基于HBase Connector将数据转储到HBase,从而实现实时的数据流转。
我们在物流的业务实践中,由于数据爆发性增长,从而进行了数据库拆分、分库分表。但是在拆分之后,我们又遇到了新的挑战:如何解决分库分表之后数据集中的检索问题呢?此时,Debezium服务应运而生。通过Debezium实时数据管道,将一千多张数据表准实时地同步到Kafka Topic下,再由业务端消费Topic消息摄取数据到ElasticSearch进行检索,便可以完成地址搜索应用场景的构建。
点击体验 [云数据库 PostgreSQL]
云数据库PostgreSQL增量消息同步原理
解析WAL成为逻辑数据的过程被称为Logical Decoding,是从PostgreSQL 9.4开始引入的特性。Logical Decoding是把WAL日志解析成逻辑日志的过程,将用户定阅的数据变化(即对某些表的insert/update/delete操作来带的数据变化)输出成特定的数据格式,Debezium支持Logical Decoding plugin有decoderbufs、wal2json、pgoutput(PostgreSQL 10以上版本)。
基于Debezium Connector
摄入数据到其他数据源
快照支持:可选不同的模式,一个初始数据库当前状态的快照可以支持全量数据的同步。这样能够避免由于已经运行了一段时间的数据库中有些事务日志已经被丢弃,导致这部分的数据无法同步到Kafka上的情况发生。
过滤器:可以通过白名单/黑名单过滤器对捕获的模式、表和列集进行配置。
屏蔽:能够屏蔽特定列中的值,例如敏感数据。
监视:大多数Connector都可以使用JMX进行监视,通过Prometheus和Grafana可以有效监控Debezium Connector的运行。
不同的即时消息转换:例如用于消息路由、提取新记录状态。
通过上述内容,想必大家能够对Debezium服务和云数据库PostgreSQL准实时数据同步原理有了进一步的理解。目前,京东智联云云数据库 PostgreSQL已上线,云数据库 PostgreSQL 是京东智联云数据库团队历时 1 年多精心研发的产品,该产品凝聚了京东智联云数据库团队多年来的 PostgreSQL 使用经验,能够提供一个稳定、可靠的数据存储服务。
云数据库 PostgreSQL 易于部署、管理和扩展,默认支持主从热备架构,提供数据备份、故障恢复、监控等全套解决方案,彻底解决数据库运维的烦恼。同时,京东智联云“云数据库 PostgreSQL”通过使用网络隔离、白名单限制外网访问等方式,为数据库服务提供了高级别的安全性需求,帮助用户省去绝大部分复杂而繁琐的管理工作,从而使用户能够更专注于业务流程的开发与建设。