利用 NineData 实现 PostgreSQL 到 Kafka 的高效数据同步

embedded/2025/1/8 1:28:27/

记录一次 PostgreSQL 到 Kafka 的数据迁移实践。前段时间,NineData 的某个客户在一个项目中需要将 PostgreSQL 的数据实时同步到 Kafka。需求明确且普遍:

  • PostgreSQL 中的交易数据,需要实时推送到 Kafka,供下游多个系统消费,包括实时监控、用户通知服务和数据分析平台。

  • 数据需要保证准确性,不能有遗漏或重复。

  • 要求延迟尽可能低,同时支持大批量并发写入场景。

起初,他们尝试了不少开源方案,均以失败告终。问题总结为如下四个点:

  1. 配置复杂:要开启 PostgreSQL 的逻辑复制、解析 WAL 日志、搭建 Kafka 数据管道,光是查文档就费了不少时间。

  2. 数据一致性问题:自己实现的数据同步逻辑,时不时会遇到丢数据或者重复的问题,调试起来极其费劲。

  3. 费时费力:自己搭建数据同步方案需要花费大量时间开发和调试,即使完成了初始开发,后续的维护和优化工作依然会占用大量精力,特别是在面对需求变化时,可能需要重新调整整个流程。

  4. 监控和故障恢复困难:自建方案缺乏完善的监控方式,数据同步链路涉及多个环节,一旦出现故障,排查问题及其耗时且低效。

几番折腾下来,时间精力浪费了不少,问题却没解决。客户感到筋疲力尽,只想尽快找到一个简单的解决方案以快速实现业务需求,而不是纠结于繁琐的底层技术细节上。最终,客户找到了 NineData。

NineData 数据复制简介

NineData 数据复制功能由玖章算术公司推出,支持多种支持跨数据库的全量与增量数据同步,在提供高效、稳定的数据流动体验的同时,确保迁移过程中的数据一致性,降低迁移的技术门槛和风险。

在 PostgreSQL 到 Kafka 的同步场景下,NineData 提供如下能力:

  • 快速启动,无需开发:NineData 内置 PostgreSQL 和 Kafka 的深度集成,全程可视化操作,鼠标点击即可轻松完成任务配置,无需了解数据迁移的技术细节,更无需二次开发。

  • 高效的 CDC 能力:基于 PostgreSQL 的逻辑复制技术,NineData 能实时捕获数据库的变更数据(CDC),并将其转化为 Kafka 消息,支持毫秒级延迟,满足实时性要求。

  • 稳定可靠的容错机制:自动检测同步链路的异常状况,支持断点续传和重试机制,即使面对网络抖动或 Kafka 消息积压,也能保证任务稳定运行,确保数据一致性。

  • 全面的监控与告警:提供实时的任务监控面板,用户可直观查看数据同步状态、延迟、数据量等关键指标,同时支持异常告警通知,方便快速定位和解决问题。

三分钟完成迁移配置

步骤一:将 PostgreSQL 和 Kafka 录入到 NineData 平台

1. 登录 NineData 控制台,单击数据源管理>数据源,然后在页面中单击创建数据源,选择需要录入的数据源。

图片

2. 根据页面提示进行配置,然后单击创建数据源完成创建。

图片

步骤二:配置同步链路

1. 登录 NineData 控制台,单击数据复制>数据复制,然后单击创建复制。

图片

2. 根据页面提示配置复制任务,由于我们想要实现实时数据同步,需要在复制类型处额外勾选增量复制。

图片

3. 配置完成后启动任务,针对你配置的所有同步对象,NineData 会先对所有的存量数据进行全量迁移,接下来就是实时迁移源端 PostgreSQL 中新增的增量数据,所有新写入的数据都将一条不漏地传递到 Kafka,每当 PostgreSQL 端的增量数据已经全部写入 Kafka,并且没有新的增量数据时,任务面板中的延迟将显示为 0 秒,代表当前 Kafka 中的数据是最新的。

图片

步骤三(可选):配置任务异常告警

在迁移过程中,可能需要系统实时监控任务状态,在任务有异常时即刻通知你。

1. 登录 NineData 控制台,单击数据复制>数据复制,然后单击复制任务名称。

图片

2. 单击右上角的配置告警。

图片

3. 输入策略名称,选择告警规则,单击保存配置即可。你可以直接使用内置的默认规则,在任务运行失败,或复制延迟大于等于 10 分钟的时候,发送短信提醒你。你也可以自定义创建规则,根据你的需求来进行通知。

图片

至此,你已经完成了业务系统接入 Kafka 的所有步骤,业务数据将源源不断地从 PostgreSQL 流入 Kafka,接下来你只需要让你的应用从 Kafka 中消费数据,即可实现完整的数据流处理。

客户评价

“NineData 帮我们解决了 PostgreSQL 到 Kafka 的数据同步难题。操作非常简单,配置好任务后就基本不用再操心了。特别是它的稳定性和实时性,完全满足了我们的业务需求。我们现在可以轻松构建实时数据流,并将更多精力放在核心业务上。”

总结

从实际使用体验来看,NineData 在快速部署、实时同步、处理复杂业务场景等方面都表现出了极大的优势,可以说是构建实时数据流的理想解决方案,让企业的数据流转更加高效和省心。


http://www.ppmy.cn/embedded/152153.html

相关文章

【AI日记】25.01.06

【AI论文解读】【AI知识点】【AI小项目】【AI战略思考】【AI日记】【读书与思考】 AI 参加:kaggle 比赛 Forecasting Sticker Sales 读书 书名:国家为什么会失败阅读原因:2024 年诺贝尔经济学奖得主的力作,之前我已经读过他另一…

AI知识库与用户行为分析:优化用户体验的深度洞察

在当今数字化时代,用户体验(UX)已成为衡量产品成功与否的关键指标之一。AI知识库作为智能客服系统的重要组成部分,不仅为用户提供快速、准确的信息检索服务,还通过用户行为分析,为产品优化提供了深度洞察。…

C++二十三种设计模式之外观模式

C二十三种设计模式之外观模式 一、组成二、目的三、缺点四、示例代码 一、组成 子系统类:为外观类提供具体的功能。 外观类:封装一组子系统的接口。 二、目的 封装子系统一组接口,隐藏底层实现细节,简化子系统的使用。 三、缺…

运动相机拍摄的视频打不开怎么办

3-10 GoPro和大疆DJI运动相机的特点,小巧、高清、续航长、拍摄稳定,很多人会在一些重要场合用来拍摄视频,比如可以用来拿在手里拍摄快速运动中的人等等。 但是毕竟是电子产品,有时候是会出点问题的,比如意外断电、摔重…

OkHttp接口自动化测试

文章目录 java环境搭建OkHttp之getOkHttp之POSTPOST发送From表单POST发送jsonPOST上传文件 OkHttp之deleteOkHttp之put java环境搭建 引入依赖 <!--okhttp3--><dependency><groupId>com.squareup.okhttp3</groupId><artifactId>okhttp</art…

BGP(Border Gateway Protocol)路由收集器

全球 BGP&#xff08;边界网关协议&#xff09;路由收集器的分布情况以及相关数据。以下是主要的信息解读&#xff1a; 地图标记&#xff1a; 每个绿色点代表一个路由收集器的位置。路由收集器分布在全球不同的地区&#xff0c;覆盖了五大区域&#xff1a; ARIN&#xff08;美…

详细讲一下React中Redux的持久化存储(Redux-persist)

1.安装依赖&#xff1a; npm install redux-persist 2. 基础配置&#xff1a; // store.js import { configureStore } from reduxjs/toolkit import { persistStore, persistReducer } from redux-persist import storage from redux-persist/lib/storage // 默认是 localS…

密码学原理技术-第十章-Digital Signatures

文章目录 总结The principle of digital signatures核心流程Security of Signature Schemes Security servicesCore Security ServicesAdditional Security Services The RSA digital signature schemeMain idea of the schoolbook RSA signature schemeSecurity and Performan…