数据处理方法、装置、电子设备及存储介质制造方法及图纸

技术编号:23190902 阅读:16 留言:0更新日期:2020-01-24 16:15
本公开的实施例提供了一种数据处理方法、装置、电子设备及存储介质。该方法包括:响应于数据库的数据变更,通过所述数据库发出增量信息;通过采集组件接收所述增量信息并且进行解析,得到解析信息;通过第一数据节点接收所述解析信息并且进行处理,得到变更后的数据。本公开的数据处理方法降低了对数据库DB的查询依赖。另外,通过消息通知方式降低了数据的同步延迟,获得了更好的数据一致性和时效性。

Data processing method, device, electronic equipment and storage medium

【技术实现步骤摘要】
数据处理方法、装置、电子设备及存储介质
本公开的实施例涉及计算机
,更具体地,涉及一种数据处理方法、装置、电子设备及存储介质。
技术介绍
目前,对数据库(DB)采用定时增量加全量查询方式,例如,采用定时增量拉取方式。即,数据链路的同步几乎都是采用数据定时拉取方式,从而产生数据延迟,已经无法满足快速增长的广告业务,也不能很好地做到数据的实时同步,不能保证广告的实时上下线,甚至产生广告的超投。
技术实现思路
提供该
技术实现思路
部分以便以简要的形式介绍构思,这些构思将在后面的具体实施方式部分被详细描述。该
技术实现思路
部分并不旨在标识要求保护的技术方案的关键特征或必要特征,也不旨在用于限制所要求的保护的技术方案的范围。为了解决上述问题,本公开提供了一种数据处理方法、装置、电子设备及存储介质,本公开的方法能够更好地实现数据的实时同步,时效性更好。根据本公开的一个实施例,提供了一种数据处理方法,包括:响应于数据库的数据变更,通过所述数据库发出增量信息;通过采集组件接收所述增量信息并且对所述增量信息进行解析,得到解析信息;通过第一数据节点接收所述解析信息并且对所述解析信息进行处理,得到变更后的数据。根据本公开的另一实施例,提供了一种数据处理装置,包括:一种数据处理装置,其特征在于,包括:数据库,响应于数据变更,从所述数据库发出增量信息;采集组件,接收所述增量信息并且对所述增量信息进行解析,得到解析信息;第一数据节点,接收所述解析信息并且对所述解析信息进行处理,得到变更后的数据。r>根据本公开的另一实施例,提供了一种电子设备,所述电子设备包括:至少一个存储器和至少一个处理器;其中,所述存储器用于存储程序代码,所述处理器用于调用所述存储器所存储的程序代码以执行上述数据处理方法。根据本公开的另一实施例,提供了一种计算机存储介质,所述计算机存储介质存储有程序代码,所述程序代码用于执行上述数据处理方法。通过采用本公开的数据处理方法,能够更好地实现数据的实时同步,时效性更好。附图说明结合附图并参考以下具体实施方式,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。贯穿附图中,相同或相似的附图标记表示相同或相似的元素。应当理解附图是示意性的,原件和元素不一定按照比例绘制。图1示出了现有的数据处理方式。图2示出了本公开的实施例的数据处理方法的示意流程图。图3示出了本公开的实施例的数据处理方式的示意图。图4示出了本公开的全量加载的示意图。图5示出了适于用来实现本公开的实施例的电子设备500的结构示意图。具体实施方式下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。应当理解,本公开的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本公开的范围在此方面不受限制。本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。需要注意,本公开中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。需要注意,本公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。目前,如图1所示,假如存在四个集群,每个集群一个主库,共四台机器,分别为主库1、主库2、主库3和主库4,通过竞争的方式选举出的唯一一台机器主库1,主要职责定时对ad表按照产生时间分片全量计算数据id(例如,在投广告id),并将数据id写入外部存储器(通常为redis)。主库2-4是每个集群通过电子通用技术文档(ectd)配置的唯一一台机器,主要职责通过读取redis中的在投广告id,之后对DB进行广告id查询,拼装广告数据,并将拼装数据写入相应的文件存储。从库(图1中未示出)为非主库的机器,当主库完成文件的写入会发消息通知同集群其它从库机器,从库收到消息会读取当前集群对应的文件进行加载,获得增量数据。由此可知,主库1可以对数据库DB进行全量查询,主库2-4可以定期(例如,每10s)拉取redis中的广告id,并且通过id方式对DB进行查询。目前的数据同步方式依然存在对DB的大量查询,另外,数据查询仍然采用定时拉取(例如,每10s),无法做到实时。本公开提供了一种数据处理或同步方法,可以降低对DB的查询压力,并且能够做到数据的实时同步。下面本公开以广告数据为例进行说明,然而,本公开并不限于此。下面结合图2和图3进行说明。如图2所示,本公开提供的方法包括S101,响应于数据库DB的数据变更,从DB发出增量信息,其中,该增量消息是基于binlog的增量消息。因此,本公开的方法将不再例如10s的定时查询,而是基于mysql的binlog增量消息。在DB中发生数据更改时,会发出binlog消息。binlog是MySQL的二进制日志,它记录了所有的数据定义语言(DDL)和数据操纵语言(DML)(除了数据查询语句)语句,以事件形式记录,还包含语句所执行的消耗的时间。因此,每当DB发生数据变更(例如,增加、减少、变化)时,都可以通过binlog消息通知到主库集群。接着,方法进行到S102,binlog消息通过采集组件接收并且进行解析,得到解析信息。由于binlog消息是二进制文件,所以需要进一步的解析。另外,该采集组件可以是canal,但是本公开不限于此,可以是任何合适的用于解析binlog消息的中间件。canal是用java开发的基于数据库增量日志解析,提供增量数据订阅&消费的中间件。然后,本公开的方法进行至S103,对解析信息进行计算处理,获得变更后的数据。通常地,经过canal解析后的解析信息通过消息发布系统(例如,kafka)发送至第一数据节点(例如,主库或主库集群)。该主库集群用于消费binlog消息,实时计算并组装在投广告数据,并将计算结果通过kafka实时推送给从库集群或下游。由此,主库集群将不再提供在线服务能力,而是实时计算引擎。应该理解,上述的推送系统kafka仅是示例性的,而不用于限制本公开。因此,在DB数据发生变化之前,主库集群的内存中具有与DB同步的数据。当DB中的数据发生变更,通过binlog消息通知到主库集群,主库集群基于该变更信息,对数据进行计算和拼装,得到变更后的数据,该主本文档来自技高网...

【技术保护点】
1.一种数据处理方法,其特征在于,包括:/n响应于数据库的数据变更,通过所述数据库发出增量信息;/n通过采集组件接收所述增量信息并且对所述增量信息进行解析,以得到解析信息;/n通过第一数据节点接收所述解析信息并且对所述解析信息进行处理,得到变更后的数据。/n

【技术特征摘要】
1.一种数据处理方法,其特征在于,包括:
响应于数据库的数据变更,通过所述数据库发出增量信息;
通过采集组件接收所述增量信息并且对所述增量信息进行解析,以得到解析信息;
通过第一数据节点接收所述解析信息并且对所述解析信息进行处理,得到变更后的数据。


2.根据权利要求1所述的数据处理方法,其特征在于,还包括:
通过第二数据节点从所述第一数据节点接收推送消息并且对所述推送消息进行处理,以更新所述第二数据节点的内存中的数据,使得所述第二数据节点的内存中的数据与所述第一数据节点中的变更后的数据保持一致。


3.根据权利要求2所述的数据处理方法,其特征在于,通过所述第一数据节点备份内存文件,并且通知所述第二数据节点对备份的所述内存文件进行加载。


4.根据权利要求3所述的数据处理方法,其特征在于,通过所述第二数据节点在收到所述第一数据节点的通知后加载所述内存文件。


5.根据权利要求1所述的数据处理方法,其特征在于,通过所述数据库发出的所述增量信息是基于binlog的增量消息。


6.一种数据处理装置,其特征在于,包括:
数据库,响应于数据变更,从所述数据库发出增量信息;
采集组件,接收所述增量信息并且对所述增量信息进行解析,得到解析信息;

【专利技术属性】
技术研发人员:李博洋杨波
申请(专利权)人:北京字节跳动网络技术有限公司
类型:发明
国别省市:北京;11

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

1