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

技术编号:23148642 阅读:19 留言:0更新日期:2020-01-18 13:18
本公开的实施例提供了一种数据处理方法、装置、电子设备及存储介质。该方法包括:通过第一数据节点对数据库中的数据进行增量加载,第一数据节点配置为将内存数据写入外部存储器,第一数据节点的内存用于维护数据id和索引数据,其中,外部存储器配置为维护全量数据;通过第二数据节点从第一数据节点接收索引数据并且从外部存储器读取数据。本公开的数据处理方法消除了机器内存的瓶颈问题,使得数据服务可以随着服务节点的增加而无限扩展。

Data processing method, device, electronic equipment and storage medium

【技术实现步骤摘要】
数据处理方法、装置、电子设备及存储介质
本公开的实施例涉及计算机
,更具体地,涉及一种数据处理方法、装置、电子设备及存储介质。
技术介绍
现有的数据处理架构和方法受限于服务机器内存,存在内存瓶颈。因此迫切需要去内存瓶颈,具备服务横向扩展能力。
技术实现思路
提供该
技术实现思路
部分以便以简要的形式介绍构思,这些构思将在后面的具体实施方式部分被详细描述。该
技术实现思路
部分并不旨在标识要求保护的技术方案的关键特征或必要特征,也不旨在用于限制所要求的保护的技术方案的范围。为了解决上述问题,本公开提供了一种数据处理方法、装置、电子设备及存储介质,本公开通过将内存数据引入外部存储,内存只维护一些数据id或索引数据,解决了内存瓶颈的问题,由于外部存储可以进行无限横向扩展,使得数据的服务能力大大增强。根据本公开的一个实施例,提供了一种数据处理方法,包括:通过第一数据节点对数据库中的数据进行增量加载,所述第一数据节点配置为将内存数据写入外部存储器,所述第一数据节点的内存用于维护数据id和索引数据,其中,所述外部存储器配置为维护全量数据;通过第二数据节点从所述第一数据节点接收索引数据并且从所述外部存储器读取数据。根据本公开的另一实施例,提供了一种数据处理装置,包括:第一数据节点,配置为对数据库中的数据进行增量加载;外部存储器,所述第一数据节点将内存数据写入所述外部存储器,所述第一数据节点的内存用于维护数据id和索引数据,其中,所述外部存储器配置为维护全量数据;第二数据节点,从所述第一数据节点接收索引数据并且从所述外部存储器读取数据。根据本公开的另一实施例,提供了一种电子设备,所述电子设备包括:至少一个存储器和至少一个处理器;其中,所述存储器用于存储程序代码,所述处理器用于调用所述存储器所存储的程序代码以执行上述数据处理方法。根据本公开的另一实施例,提供了一种计算机存储介质,所述计算机存储介质存储有程序代码,所述程序代码用于执行上述数据处理方法。通过采用本公开的数据处理方法,消除了机器内存的瓶颈问题,使得数据服务可以随着服务节点的增加而无限扩展。附图说明结合附图并参考以下具体实施方式,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。贯穿附图中,相同或相似的附图标记表示相同或相似的元素。应当理解附图是示意性的,原件和元素不一定按照比例绘制。图1示出了数据处理方式的示意图。图2示出了双缓存全量替换机制的示意图。图3示出了本公开的实施例的数据处理方式的示意流程图。图4示出了本公开的实施例的数据处理方式的示意图。图5示出了适于用来实现本公开的实施例的电子设备500的结构示意图。具体实施方式下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。应当理解,本公开的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本公开的范围在此方面不受限制。本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。需要注意,本公开中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。需要注意,本公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。在一些数据处理方法中,集群增量数据同步完全通过集群选举的主库(leader)实时计算,基本解除数据库(DB)查询瓶颈,但内存问题依然严峻。如图1所示,在DB中发生数据更改时,会发出binlog消息。binlog是MySQL的二进制日志,它记录了所有的数据定义语言(DDL)和数据操纵语言(DML)(除了数据查询语句)语句,以事件形式记录,还包含语句所执行的消耗的时间。因此,每当DB发生数据变更(例如,增加、减少、变化)时,都可以通过binlog消息通知到主库(leader)集群。接着,binlog消息通过采集组件接收并且进行解析,得到解析信息。由于binlog消息是二进制文件,所以需要进一步的解析。另外,该采集组件可以是canal,但是本公开不限于此,可以是任何合适的用于解析binlog消息的中间件。canal是用java开发的基于数据库增量日志解析,提供增量数据订阅&消费的中间件。然后,主库对解析信息进行计算处理,获得变更后的数据。通常地,经过canal解析后的解析信息通过消息发布系统(例如,kafka)发送至主库或主库集群。该主库集群用于消费binlog消息,实时计算并组装在投广告数据,并将计算结果通过kafka实时推送给从库(slave)集群或下游。由此,主库集群将不再提供在线服务能力,而是实时计算引擎。应该理解,上述的推送系统kafka仅是示例性的,而不用于限制本公开。另外,kafka推送的信息是以队列的方式被逐步消费,为了便于描述,当前时间的被消费的信息在队列中的位置可以称为消费位点或消费进度。在DB数据发生变化之前,主库集群的内存中具有与DB同步的数据。当DB中的数据发生变更时,通过binlog消息通知到主库集群,主库集群基于该变更信息,对数据进行计算和拼装,得到变更后的数据,该主库集群中的变更后的数据与DB变更后的数据再次保持同步。另外,从库集群从主库集群接收推送消息并且进行处理,以更新从库集群的内存中的数据,使得从库集群的内存中的数据与主库集群中的变更后的数据保持一致。通过主库集群和从库集群的同步推送,保持了从库集群与DB中的数据的同步与一致。如图1所示,主库集群可以定期备份一份内存文件,在备份好后,通知从库集群进行加载。从库集群收到主库集群的通知后加载内存文件,进行全量加载。例如,在主库集成备份一份内存文件到外部存储器TBS之后,给从库集群发送信息,表示内存文件已经备份。接收到通知消息的从库此时开始缓存备份文件。参见图2进一步所示的,从库集群中的从库一部分缓存用于提供在线服务,另一部分缓存用于存储主库集群备份到外部存储器的内存文件。在该文件加载完成之后,加载了备份文件的缓存与在线服务缓存进行替换,完成全量加载。由于该全量加载过程中从库集群中存在两个缓存,所以是一种双缓存机制。本公开提供了一种数据处理方法,将服务机器内存移到外部分布式存储。具体地,如图3所示,本公开的方法包括步骤101本文档来自技高网...

【技术保护点】
1.一种数据处理方法,其特征在于,包括:/n通过第一数据节点对数据库中的数据进行增量加载,所述第一数据节点配置为将内存数据写入外部存储器,所述第一数据节点的内存用于维护数据id和索引数据,其中,所述外部存储器配置为维护全量数据;/n通过第二数据节点从所述第一数据节点接收索引数据并且从所述外部存储器读取数据。/n

【技术特征摘要】
1.一种数据处理方法,其特征在于,包括:
通过第一数据节点对数据库中的数据进行增量加载,所述第一数据节点配置为将内存数据写入外部存储器,所述第一数据节点的内存用于维护数据id和索引数据,其中,所述外部存储器配置为维护全量数据;
通过第二数据节点从所述第一数据节点接收索引数据并且从所述外部存储器读取数据。


2.根据权利要求1所述的数据处理方法,其特征在于,还包括:
通过数据模块对所述数据库进行全量加载,所述数据模块配置为将全量加载的数据均匀分散为多个桶,所述多个桶中的每个桶的数据与所述第一数据节点的增量加载的数据一起通过所述外部存储器加载。


3.根据权利要求2所述的数据处理方法,其特征在于,通过第一数据节点对所述数据库中的数据进行增量加载包括:
响应于所述数据库的数据变更,通过所述数据库发出增量信息;
通过采集组件接收所述增量信息并且对所述增量信息进行解析,得到解析信息;
通过消息发布系统将所述解析信息发送到所述第一数据节点,以通过所述第一数据节点基于所述解析信息进行增量加载。


4.根据权利要求3所述的数据处理方法,其特征在于,所述消息发布系统还将所述解析信息发送到所述数据模块。


5.根据权利要求4所述的数据处理方法,其特征在于,通过所述数据模块对所述数据库进行全量加载包括:
从另一外部存储器读出第一时间版本的全量数据,通过所述第一时间版本对应的所述消息发布系统中的消费位点进行数据回溯,并且更新得到第...

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

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

1