将PostgreSQL的数据实时同步到Doris的技巧分享

2024-04-18 0 875
目录
  • 如何将PostgreSQL的数据实时同步到Doris?
  • 步骤一:录入源和目标数据源
  • 步骤二:配置同步链路
  • 步骤三(可选):校验目标端同步数据的完整性
  • 步骤四(可选):配置任务异常告警
  • 总结

PostgreSQL可以说是目前比较抢手的关系型数据库了,除了兼具多样功能和强大性能之外,还具备非常优秀的可扩展性,更重要的是它还开源,能火不是没有理由的。

虽然PostgreSQL很强大,但是它也有短板,相对于专业的数据分析产品,大致上有下面几点不足:

  • PostgreSQL本身不太适合用于实时数据分析,尽管PostgreSQL具备扩展能力以支持相应能力,但是在处理大量实时数据时性能可能不会非常理想。
  • 作为一个业务系统,PostgreSQL中历史数据的堆积会严重影响数据库的性能,同时大幅增加存储成本,也是一个不得不解决的问题。

而 Doris 就是一个专业的数据分析产品,它是一个实时数仓,海量数据下以亚秒级的速度返回查询结果,同时支持高并发点查询以及高吞吐复杂分析场景,非常适用于实时数据的分析与查询。

因此,我们可以选择Doris搭配PostgreSQL使用,这样就可以相对完美地弥补PostgreSQL的短板。

太棒了~ 目标定下了,那么问题来了…

如何将PostgreSQL的数据实时同步到Doris?

众所周知,在两个毫不相干的数据管理系统之间进行数据同步,特别是实时同步,其复杂程度足以让高级DBA脑瓜疼。因为有几个不得不解决的问题:

表的初始化:在同步数据之前,需要手动在Doris端创建和源端一致的表结构,然后才能从源端接收数据。当源端有大量表且表结构很复杂的情况下,是不是想亖的心都有?

数据结构的映射:两者数据结构不同,怎么确保数据从源端同步过来后的完整性?除非你对两者的数据模型的理解非常极致,且保证绝对不出错,才能达到理想的结果。

实时同步的速率:通过Doris进行数据实时分析的大前提是,当前Doris中的数据必须是最新的,即和源端的PostgreSQL完全一致,分析结果才有意义。要保证这一点,可不是一个轻松的工作。

源端DDL语句的联动:最痛的一个点,如何保证源端的数据结构发生变化时,同步链路不中断?那就需要实时捕获源端PostgreSQL的DDL变更,并及时在目标端的Doris中同步执行。

这些问题如果可以顺利解决,那实时同步工作将会相当丝滑。那么如何解决呢?方法自然是有的,而且丝毫不费力。对于上述 4 个问题,NineData有绝对的发言权,我们先来看看它的特性:

结构复制:基于目标端数据源的特性,自动高效地完成表的创建、数据结构的映射等工作。

复制性能:基于动态攒批、并行复制、Stream Load等技术,复制性能轻松达到200MB/S。

DDL捕获与执行:实时检测源端中的DDL操作,并同步在目标端中执行,保证其他业务变更能够稳定地进行。

轻松解决且非常愉快,下面来看看怎么操作。

步骤一:录入源和目标数据源

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

将PostgreSQL的数据实时同步到Doris的技巧分享

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

将PostgreSQL的数据实时同步到Doris的技巧分享

步骤二:配置同步链路

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

将PostgreSQL的数据实时同步到Doris的技巧分享

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

将PostgreSQL的数据实时同步到Doris的技巧分享

配置完成后启动任务,针对您配置的所有同步对象,NineData会先对所有的存量数据进行全量迁移,接下来就是实时同步PostgreSQL中新增的增量数据,所有新写入的数据都将一条不漏地同步到Doris,每当目标端的增量数据追平源端时,任务面板中会显示延迟 0 秒,如下图所示。

将PostgreSQL的数据实时同步到Doris的技巧分享

步骤三(可选):校验目标端同步数据的完整性

除了同步功能以外,NineData 还提供了同步后源端和目标端同步数据的对比功能,以确保目标端数据的完整性。

登录NineData控制台,单击数据复制>数据复制,然后单击步骤二中创建的复制任务 ID。

将PostgreSQL的数据实时同步到Doris的技巧分享

单击数据对比页签,并单击开启数据对比(如果步骤二的任务配置中已勾选开启数据一致性对比,则此处直接展示对比结果)。

将PostgreSQL的数据实时同步到Doris的技巧分享

提示

开启后,系统将自动对比源端和目标端的同步对象,并给出对比结果。

将PostgreSQL的数据实时同步到Doris的技巧分享

您可以在一段时间后,单击页面中的重新对比,校验最新增量数据的同步结果。

将PostgreSQL的数据实时同步到Doris的技巧分享

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

由于是长期任务,您可能需要系统实时监控任务状态,在任务有异常时即刻通知您。

登录NineData控制台,单击数据复制>数据复制,然后单击步骤二中创建的复制任务 ID。

将PostgreSQL的数据实时同步到Doris的技巧分享

单击右上角的配置告警。

将PostgreSQL的数据实时同步到Doris的技巧分享

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

将PostgreSQL的数据实时同步到Doris的技巧分享

总结

至此,您已经得到了一条长期稳定的 PostgreSQL 到 Doris 的实时同步链路,对于需要使用 Doris 实时分析业务数据的用户来说,这样的链路不可或缺。同时,在把存量的旧数据同步至 Doris 后,就可以在 PostgreSQL 端进行旧数据清理,空出存储空间,特别是对于使用云上资源的企业来说,云资源是较为昂贵的,这样做可以极大程度上降低存储成本,转而投入到更为重要的业务中。

以上就是将PostgreSQL的数据实时同步到Doris的技巧分享的详细内容,更多关于PostgreSQL数据实时同步Doris的资料请关注悠久资源其它相关文章!

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悠久资源 PostgreSQL 将PostgreSQL的数据实时同步到Doris的技巧分享 https://www.u-9.cn/database/postgresql/186474.html

常见问题

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务