基于FlinkCDC的事件推送方法、系统、存储介质技术方案

技术编号:39143658 阅读:13 留言:0更新日期:2023-10-23 14:55
本发明专利技术涉及一种基于FlinkCDC的事件推送方法、系统、存储介质,方法包括如下步骤:根据业务逻辑确定匹配具有关联关系的多个字段所在的至少一个业务系统数据库;创建FlinkCDC任务,建立与所述业务系统数据库的连接并对所述业务系统数据库进行监听;读取所述业务系统数据库的记录,从中提取出对应的多个字段并组装成事件数据,推送到预设对象。与现有技术相比,本发明专利技术具有事件推送灵活性高、可扩展性强等优点。点。点。

【技术实现步骤摘要】
基于FlinkCDC的事件推送方法、系统、存储介质


[0001]本专利技术涉及计算机
,尤其是涉及一种基于FlinkCDC的事件推送方法、系统、存储介质。

技术介绍

[0002]在传统事件式响应系统中,事件全部由应用端进行统一生成。在定制事件生成时往往伴随大量定制化开发的过程。现有的方案存在如下缺点:
[0003](1)相较于传统业务系统中,往往需要上游业务系统对于生成事件部分代码进行公共抽象,并且引入相同部分SDK进行事件生成。
[0004](2)对于此处功能增加往往代表需要有额外工作量以及需要通过代码修改并重新部署后才可生效。
[0005]中国专利申请号CN202211544426.4公开了一种数据的处理方法和装置、计算机设备。通过FlinkCDC监测并捕获数据库的所有变动,包括数据或数据表的插入、更新以及删除等,进而将数据同步至数据库ClickHouse,解决了相关技术中产生的数据不一致的技术问题,保证了数据管理平台和数据库ClickHouse的数据一致性的技术效果。但是,上述申请并未解决传统事件式相应系统存在的不易部署的问题。
[0006]综上,当前缺少一种事件推送方法,以实现事件的灵活生成和推送。

技术实现思路

[0007]本专利技术的目的就是为了克服上述现有技术存在的缺陷而提供一种基于FlinkCDC的事件推送方法、系统、存储介质,通过将事件生成与业务系统解耦,提高事件推送灵活性。
[0008]本专利技术的目的可以通过以下技术方案来实现:/>[0009]本专利技术的一个方面,提供了一种基于FlinkCDC的事件推送方法,包括如下步骤:
[0010]根据业务逻辑确定匹配具有关联关系的多个字段所在的至少一个业务系统数据库;
[0011]创建FlinkCDC任务,建立与所述业务系统数据库的连接并对所述业务系统数据库进行监听;
[0012]读取所述业务系统数据库的记录,从中提取出对应的多个字段并组装成事件数据,推送到预设对象。
[0013]作为优选的技术方案,基于业务逻辑,根据5W原则确定所述的具有关联关系的多个字段。
[0014]作为优选的技术方案,所述的业务系统数据库为mySQL、oracle或postgreSQL。
[0015]作为优选的技术方案,所述的FlinkCDC任务通过binlog或archivelog对所述业务系统数据库进行监听。
[0016]作为优选的技术方案,所述的预设对象为数据仓库或业务系统。
[0017]作为优选的技术方案,建立与所述业务系统数据库的连接之后,还包括:
[0018]配置业务系统数据库的连接地址和账号密码信息。
[0019]本专利技术的另一个方面,提供了一种基于FlinkCDC的事件推送系统,包括:
[0020]业务系统集群,包括多个业务系统以及对应的数据库;
[0021]FlinkCDC模块,用于建立与所述业务系统集群中数据库的连接并进行监听,读取数据库的记录,从中提取出对应的多个字段并组装成事件数据,并发送到预设对象。
[0022]作为优选的技术方案,所述的数据库包括MySQL和/或postgreSQL,且所述FlinkCDC模块通过binlog对所述MySQL和/或postgreSQL进行监听。
[0023]作为优选的技术方案,所述的数据库包括oracle,且所述FlinkCDC模块通过archivelog对所述oracle进行监控。
[0024]本专利技术的另一个方面,提供了一种计算机可读存储介质,包括供电子设备的一个或多个处理器执行的一个或多个程序,所述一个或多个程序包括用于执行上述基于FlinkCDC的事件推送方法的指令。
[0025]与现有技术相比,本专利技术具有以下优点:
[0026](1)提高事件推送灵活性:不同于传统事件推送方案存在额外工作量大且需要通过代码修改并重新部署后才可生效的问题,本专利技术预先根据业务逻辑将业务系统数据库中的具有关联关系的字段和逻辑进行抽象处理,再使用FlinkCDC任务对数据库进行监听和同步,最后根据读取到的记录生成对应的事件数据推送到预设对象,本专利技术由于预先进行了抽象处理,无需业务系统层面进行大量定制开发,将事件生成与业务系统解耦,业务系统无需进行任何代码修改以及线上部署,打破原有的事件驱动理念,提高事件推送的灵活性。
[0027](2)可扩展性强:能够方便地扩展多种类型的数据库、业务系统的扩展,同时配合多种监听方式能够支持多种数据库。
附图说明
[0028]图1为实施例中基于FlinkCDC的事件推送方法的示意图。
具体实施方式
[0029]下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术的一部分实施例,而不是全部实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应属于本专利技术保护的范围。
[0030]实施例1
[0031]参见图1,针对在业务系统层面需要进行大量定制开发这一问题,本实施例提供了一种基于FlinkCDC的事件推送方法,在定制对应事件时直接根据现有数据库中的记录,以及字段之间的关联关系(5W原则),生成对应事件。
[0032]具体的,本方法包括如下步骤:
[0033]步骤S1,根据业务逻辑配置数据库对应5w字段所处表以及对应字段名字;
[0034]步骤S2,创建FlinkCDC任务,配置对应数据库连接地址以及账号密码信息;
[0035]步骤S3,FlinkCDC进行Binlog监听,并将对应数据抽取至Flink计算任务中;
[0036]步骤S4,将生成的事件数据推送至预设对象中。
[0037]参见图1,在一个具体的方案中,采用三个业务系统(业务系统A、业务系统B、业务系统C)以及对应的数据库(MySQL、oracle、postgreSQL),在上述数据库内根据业务逻辑将数据库中的具有关联关系(5W)的字段和逻辑进行抽象处理。创建FlinkCDC任务并采用binlog监听的方式对MySQL和postgreSQL进行监听,采用archivelog监听的方式对oracle进行监听。FlinkCDC任务读取数据库的记录,从中提取出对应的多个字段并组装成事件数据,推送到下游数仓或业务系统等预设对象中。本实施例中预设对象为实时数仓和离线数仓。
[0038]例如,生成一条用户消费事件,只需在商城系统中的订单表中,找到对应客户下单的id(who)、下单时间(when)、客户端类型(where)以及购买商品(what),即可组装成为事件数据。
[0039]本方法将事件生成部分与业务系统完全解耦,业务系统无需进行任何代码修改以及线上部署,只需根据数据模型定义5W原则字段,即可生成对应事件并下发至下游业务系统,具有良好的灵活性和可扩展性。
[0040]实施例2<本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种基于FlinkCDC的事件推送方法,其特征在于,包括如下步骤:根据业务逻辑确定匹配具有关联关系的多个字段所在的至少一个业务系统数据库;创建FlinkCDC任务,建立与所述业务系统数据库的连接并对所述业务系统数据库进行监听;读取所述业务系统数据库的记录,从中提取出对应的多个字段并组装成事件数据,推送到预设对象。2.根据权利要求1所述的一种基于FlinkCDC的事件推送方法,其特征在于,基于业务逻辑,根据5W原则确定所述的具有关联关系的多个字段。3.根据权利要求1所述的一种基于FlinkCDC的事件推送方法,其特征在于,所述的业务系统数据库为mySQL、oracle或postgreSQL。4.根据权利要求1所述的一种基于FlinkCDC的事件推送方法,其特征在于,所述的FlinkCDC任务通过binlog或archivelog对所述业务系统数据库进行监听。5.根据权利要求1所述的一种基于FlinkCDC的事件推送方法,其特征在于,所述的预设对象为数据仓库或业务系统。6.根据权利要求1所述的一种基于FlinkCDC的事件推送方法,其特征在于,建立与所述业务系...

【专利技术属性】
技术研发人员:铁锦程李虎郑文斌杨斐涵
申请(专利权)人:上海浦东发展银行股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1