实时数据变动提醒与推送的方法、边缘计算终端及存储介质与流程

文档序号:33386520发布日期:2023-03-08 08:29阅读:50来源:国知局
实时数据变动提醒与推送的方法、边缘计算终端及存储介质与流程

1.本发明涉及数据处理领域,尤其涉及一种实时数据变动提醒与推送的方法、边缘计算终端及存储介质。


背景技术:

2.在智慧城市建设的过程中经常需要在各个委办局之间进行数据交互工作,在面对海量的数据时,有开发能力的委办局会为每个数据进行数据接口开发,并配置好对应的账号来控制访问的频率和内容,我方则通过对接口的接入实现数据同步。遗憾的是,通过实践过程后我们发现,大部分委办局是不具备数据接口开发能力,当涉及同步的数据量巨大且处于安全等级保护限制时,数据同步往往陷入了一个僵局,数据同步方法受限,一是只能使用光盘或移动存储设备进行数据拷贝实现同步,二是使用前置机数据交换的模式实现数据同步。无论哪一种数据同步的方法,实际开发过程中都无法快速的进行数据提取和变动部分区分(例如部分数据进行修改),同时造成了大量的数据冗余(脏数据),最终导致每次应用数据显示不及时,不动态,程序臃肿,启动不畅的后果。
3.如图1所示,前置机共享交换指的是数据提供方将数据存放到一个与自身系统无关的前置机上,数据调用方则从该前置机进行数据读取并传递回自己系统。前置机共享交换的方式主要用于大范围数据对接,优点是降低双方对接成本,减少数据提供方的访问压力;主要缺点是数据时效性较差,实现过程如下:
4.1.“目标系统/平台”将需要对接数据按照约定格式进行导出。
5.2.通过防火墙和ips连接前置机并将数据存放到指定位置,一般存放于前置机数据库之上。
6.3.“业务系统/bu系统”发起数据查询操作。
7.4.通过防火墙和ips连接前置机并在指定位置完成数据读取操作。
8.由于传统的前置机数据交换模式需要双方在前置机的数据库上进行sql操作,将需要同步的数据离线传输到对应的库中并完成表、索引等ddl操作,随后进行数据插入操作。该模式下数据更新采用增量更新方式,即第一次推送时将数据进行全量推送,后期按修改状态进行,无修改的数据不进行推送。
9.现有技术存在以下缺点:
10.1.数据时效性差,由于目标系统/平台推送数据的时间不一致,在业务系统不能确保实时获取到最新数据;
11.2.数据清洗难大,前置交换时均为全量更新,业务系统/bu系统对数据的清洗的难度增大(哪些更新哪些删除等);
12.3.数据维护困难,前置机中的数据库由于双方频繁的数据交换亦会导致脏数据量增大(未及时删除或错误更新导致的数据冗余等数据),对数据库维护的难度提升,继而影响查询和统计的效率,降低软件的运行速度。


技术实现要素:

13.本发明提供了一种实时数据变动提醒与推送的方法,包括以下步骤:
14.步骤1,监听提取步骤;通过编码获取到数据库dml操作并对二进制操作日志进行解析,转换为json格式的编码后发送到分类解析步骤。
15.步骤2,分类解析步骤;获取到监听提取步骤解析后的json格式的编码后进行反序列化操作,并按照业务逻辑以“option”字段区分日志的操作,提取其中涉及变更的字段、变更的结果,包装成一个完整的业务对象,通过内部调用的方式将业务对象传递到事件封装及推送步骤。
16.步骤3,事件封装及推送步骤;将经分类解析步骤形成的业务对象按照事件总线的要求进行封装,然后推送到事件总线中。
17.步骤4,轮询步骤;在业务系统部署的场景内设置一个事件池,所述事件池通过轮询的方式将事件总线中的业务对象进行提取并存储于该池内,所述事件池通过编码实现并发布获取的内容。
18.步骤5,订阅/发布步骤;事件分发器从所述事件池中进行订阅事件类型,轮询结束后会将订阅的事件进行指定发布,即事件分发器接收到对应的变化后按照业务规则或设定向指定的业务系统/bu系统的数据库中推送数据。
19.作为本发明的进一步改进,在所述步骤1中,使用“|”命令的格式将转换为json格式的编码变为分类解析步骤的输入内容。
20.作为本发明的进一步改进,在所述步骤3中,由事件封装将经分类解析步骤形成的业务对象按照事件总线的要求进行封装,以数据库名加操作为key,详尽操作内容为value的键值对形式的数据推到事件总线中,事件总线可通过消息队列实现。
21.本发明还公开了一种边缘计算终端,包括:
22.日志提取器:通过编码获取到数据库dml操作并对二进制操作日志进行解析,转换为json格式的编码后输出给操作解析器。
23.操作解析器:获取到日志提取器解析后的json格式的编码后对其进行反序列化操作,并按照业务逻辑以“option”字段区分日志的操作,提取其中涉及变更的字段、变更的结果,包装成一个完整的业务对象,通过内部调用的方式将对象传递到事件封装的函数中。
24.事件封装:负责将经操作解析器分类解析形成的业务对象按照事件总线的要求进行封装,然后推送到事件总线中。
25.作为本发明的进一步改进,使用“|”命令的格式将日志提取器转换为json格式的编码发送给操作解析器。
26.作为本发明的进一步改进,在所述事件封装中,由事件封装将经操作解析器形成的业务对象按照事件总线的要求进行封装,以数据库名加操作为key,详尽操作内容为value的键值对形式的数据推到事件总线中。
27.本发明还公开了一种存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序配置为由处理器调用时实现本发明所述的方法的步骤。
28.本发明的有益效果是:1.在信息系统安全隔离的情况下由中间设备(边缘计算终端)完成数据交换,清洗分类过程中无需人工二次干预,自动区分数据变动类型(新增/修改);2.数据每次变动可形成数据流供业务系统/运维人员进行故障排查,实时查看数据推
送/变更情况;3.具备时效性,当另一方推送数据的时,我方立即进行同步,无需再进行人工沟通或约定,保障实时更新效率;4.数据维护流程,由于实时同步完成数据的增删改操作,目标库不再存储过程数据,从本质上减少脏数据的产生,让数据维护工作更加顺畅。
附图说明
29.图1是本发明的背景图;
30.图2是本发明方法的原理框图。
具体实施方式
31.本发明的意在使用边缘计算技术,在不改变前置机数据交换的模式下,将前置机纳入云服务/私有云的管理范围,通过数据事件变动的形式动态获取到数据接入情况,并将需要同步的数据以数据流的形式接入到多个bu子系统内,再由子系统将其进行分类入库。
32.本发明基于边缘计算技术与事件驱动技术提高前置数据交换技术的数据时效性,降低数据库及前置机的维护难度,减少业务系统/bu系统处置数据的时间,提高工程/项目的运行效率,由边缘计算设备+软件实现,其结构和原理说明如下。
33.如图2所示,本发明是通过在前置机上部署一台边缘计算终端并下发数据库日志提取算法,完成对数据库进行查询、修改、删除、插入四种行为监控,形成对应的操作事件并按照约定进行事件封装,实现事件总线推送。再使用端通过缓冲池的形式对事件总线进行轮询(一直询问是否有事件),若事件存在则存储于缓冲池中。事件分发器订阅事件池的变化,提取其对应的事件,如新增数据,删除数据,数据修改,存量数据查询等对业务系统、bu系统或数据库进行调用,实时同步数据情况。
34.本发明公开的一种实时数据变动提醒与推送的方法,包括以下步骤:
35.步骤1,监听提取步骤;
36.实现对数据库日志的监听。通过编码获取到数据库dml操作并对二进制操作日志进行解析,转换为json格式的编码后发送到分类解析步骤。以常用的数据库postgresql为例,当数据库日志界别为logical时,可使用编码的形式从数据库日志中读取到dml(data manipulation language,数据操纵以insert、update、delete三种指令为核心,分别代表插入(意指新增或创建)、更新(修改)与删除(销毁))相关的操作,并以二进制数据格式输出操作日志。
37.在所述步骤1中,由于linux中pipe管道流存在,可以使用“|”命令的格式将转换为json格式的编码变为分类解析步骤的输入内容。(例如:ls./|wc-l,linux获取当前目录下文件及目录的数量)。
38.步骤2,分类解析步骤;
39.获取到监听提取步骤解析后的json格式的编码后进行反序列化操作,并按照业务逻辑以“option”字段区分日志的操作(将字符串转换为编程语言中的对象),并按照业务逻辑以“option”字段区分日志的操作(insert、update、delete分类),提取其中涉及变更的字段、变更的结果等,包装成一个完整的业务对象,通过内部调用的方式将业务对象传递到事件封装及推送步骤;
40.步骤3,事件封装及推送步骤;
41.将经分类解析步骤形成的业务对象按照事件总线的要求进行封装,以数据库名加操作为key,详尽操作内容为value的键值对形式的数据推到事件总线中,事件总线可通过消息队列(mqtt或mq协议)实现。
42.步骤4,轮询步骤;
43.在业务系统部署的场景内设置一个事件池,所述事件池通过轮询的方式将事件总线中的业务对象进行提取并存储于该池内,所述事件池通过编码实现(参考双分双缓冲队列的形式,即一个负责从里写入数据,一个负责读取数据,当逻辑线程读完数据后负责将自己的队列和i/o线程的队列进行交换)并发布获取的内容。
44.步骤5,订阅/发布步骤;
45.事件分发器从所述事件池中进行订阅事件类型,如数据库中哪几个业务变化,如特定的表变化或特定的库变化等,轮询结束后会将订阅的事件进行指定发布,即事件分发器接收到对应的变化后按照业务规则或设定向指定的业务系统/bu系统的数据库中推送数据。备注:bu系统全称为business union,指的是某一类业务的集合,并不代表某个特定部门的名称,泛指跨部门或跨公司的综合大型系统。
46.本发明还公开了一种边缘计算终端,包括:
47.日志提取器:实现对数据库日志的监听。通过编码获取到数据库dml操作并对二进制操作日志进行解析,转换为json格式的编码后输出给操作解析器。以常用的数据库postgresql为例,当数据库日志界别为logical时,日志提取器可使用编码的形式从数据库日志中读取到dml(data manipulation language,数据操纵以insert、update、delete三种指令为核心,分别代表插入(意指新增或创建)、更新(修改)与删除(销毁))相关的操作,并以二进制数据格式输出操作日志。
48.由于linux中pipe管道流存在,可以使用“|”命令的格式将日志提取器转换为json格式的编码发送给操作解析器。
49.操作解析器:操作解析器获取到日志提取器解析后的json格式的编码后对其进行反序列化操作(将字符串转换为编程语言中的对象),并按照业务逻辑以“option”字段区分日志的操作,并提取其中涉及变更的字段、变更的结果,包装成一个完整的业务对象,通过内部调用的方式将对象传递到事件封装的函数中。
50.事件封装:负责将经操作解析器分类解析形成的业务对象按照事件总线的要求进行封装,以数据库名加操作为key,详尽操作内容为value的键值对形式的数据推到事件总线中,事件总线可通过消息队列(mqtt或mq协议)实现。
51.本发明还公开了一种存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序配置为由处理器调用时实现本发明所述的方法的步骤。
52.本发明的优点:
53.1.在信息系统安全隔离的情况下由中间设备(边缘计算终端)完成数据交换,清洗分类过程中无需人工二次干预,自动区分数据变动类型(新增/修改)。
54.2.数据每次变动可形成数据流供业务系统/运维人员进行故障排查,实时查看数据推送/变更情况。
55.3.具备时效性,当另一方推送数据的时,我方立即进行同步,无需再进行人工沟通或约定,保障实时更新效率。
56.4.数据维护流程,由于实时同步完成数据的增删改操作,目标库不再存储过程数据,从本质上减少脏数据的产生,让数据维护工作更加顺畅。
57.以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1