CN110888929A - 数据处理方法、装置、数据节点及存储介质 - Google Patents
数据处理方法、装置、数据节点及存储介质 Download PDFInfo
- Publication number
- CN110888929A CN110888929A CN201911239023.7A CN201911239023A CN110888929A CN 110888929 A CN110888929 A CN 110888929A CN 201911239023 A CN201911239023 A CN 201911239023A CN 110888929 A CN110888929 A CN 110888929A
- Authority
- CN
- China
- Prior art keywords
- data
- processing
- data processing
- target cell
- database
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例涉及非结构化数据库技术领域,提供了一种数据处理方法、装置、数据节点及存储介质,所述方法包括:接收客户端发送的数据处理任务;其中,数据处理任务包括至少一个数据处理请求,每一数据处理请求包括待处理数据的标识、处理参数及处理类型;依据每一数据处理请求的处理参数及处理类型、对预先建立的暂存数据库中与该数据处理请求的待处理数据的标识一致的第一目标cell进行处理;当数据处理任务中所有数据处理请求的第一目标cell均处理完成时,将暂存数据库中的cell写回至分布式数据库,并向客户端返回数据处理任务完成。本发明实施例能够提高不具有批量事务接口的数据库处理大规模数据的效率。
Description
技术领域
本发明涉及非结构化数据库技术领域,具体而言,涉及一种数据处理方法、装置、数据节点及存储介质。
背景技术
在分布式数据库***DDBS(Distributed DataBase System)中,一个应用程序可以对数据库进行透明操作,数据库中的数据分别在不同的局部数据库中存储、在不同的机器上运行、由不同的操作***支持、被不同的通信网络连接在一起。一个分布式数据库在逻辑上是一个统一的整体,在物理上则是分别存储在不同的物理节点上。一个应用程序通过网络的连接可以访问分布在不同地理位置的数据库。
但当需要对不具有批量事务接口的分布式数据库***中的数据进行大规模的处理时,如果调用实时同步接口进行读取、操作、写回,会造成效率低下、操作时间长。
发明内容
本发明提供一种数据处理方法、装置、数据节点及存储介质,其能够为不具有批量事务接口的数据库实现大规模、高效的事务操作,在保证数据安全的前提下,提高此类数据库***处理大规模数据的效率。
本发明的实施例可以这样实现:
第一方面,本发明实施例提供一种数据处理方法,应用于分布式数据库***中的数据节点,数据节点上部署有分布式数据库,所述分布式数据库为非结构化且不具备大规模数据事务处理功能,数据节点与客户端通信连接,分布式数据库包括多个数据单元cell,所述方法包括:接收客户端发送的数据处理任务;其中,数据处理任务包括至少一个数据处理请求,每一数据处理请求包括待处理数据的标识、处理参数及处理类型;依据每一数据处理请求的处理参数及处理类型、对预先建立的暂存数据库中与该数据处理请求的待处理数据的标识一致的第一目标cell进行处理,其中,暂存数据库包括预先从分布式数据库中迁移出的与数据处理任务相关的cell、且所述暂存数据库具有事务处理功能;当数据处理任务中所有数据处理请求的第一目标cell均处理完成时,将暂存数据库中的cell写回至分布式数据库,并向客户端返回数据处理任务完成。
第二方面,本发明实施例提供一种数据处理装置,应用于分布式数据库***中的数据节点,数据节点上部署有分布式数据库,所述分布式数据库为非结构化且不具备大规模数据事务处理功能,数据节点与客户端通信连接,分布式数据库包括多个数据单元cell,所述装置包括接收模块、处理模块和写回模块,其中,接收模块,用于接收客户端发送的数据处理任务;其中,数据处理任务包括至少一个数据处理请求,每一数据处理请求包括待处理数据的标识、处理参数及处理类型;处理模块,用于依据每一数据处理请求的处理参数及处理类型、对预先建立的暂存数据库中与该数据处理请求的待处理数据的标识一致的第一目标cell进行处理,其中,暂存数据库包括预先从分布式数据库中迁移出的与数据处理任务相关的cell、且所述暂存数据库具有事务处理功能;写回模块,用于当数据处理任务中所有数据处理请求的第一目标cell均处理完成时,将暂存数据库中的cell写回至分布式数据库,并向客户端返回数据处理任务完成。
第三方面,本发明实施例提供一种数据节点,所述数据节点包括:一个或多个处理器;存储器,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如前述实施方式中任一项所述的数据处理方法。
第四方面,本发明实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如前述实施方式中任一项所述的数据处理方法。
相对于现有技术,本发明实施例提供一种数据处理方法、装置、数据节点及存储介质,通过预先将同一个数据处理任务相关的cell放入暂存数据库中,当接收到数据处理任务的数据处理请求时,直接对暂存数据库中与数据处理请求对应的cell进行处理,当数据处理任务的所有数据处理请求均处理完毕时,才统一将该数据处理任务处理的数据回写至分布式数据库中,由于对数据处理任务中的处理的数据采用了统一异步回写的方式,为不具有批量事务接口的数据库实现大规模、高效的事务操作,在保证数据安全的前提下,提高此类数据库***处理大规模数据的效率。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本发明实施例提供的应用场景示例图。
图2示出了本发明实施例提供的数据节点的方框示意图。
图3示出了本发明实施例提供的一种数据处理方法的流程图。
图4示出了本发明实施例提供的另一种数据处理方法的流程图。
图5示出了本发明实施例提供的另一种数据处理方法的流程图。
图6示出了本发明实施例提供的一种数据处理装置的流程图。
图标:10-数据节点;11-存储器;12-通信接口;13-处理器;14-总线;20-客户端;100-数据处理装置;110-接收模块;120-处理模块;130-写回模块;140-读取模块。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
在本发明的描述中,需要说明的是,若出现术语“上”、“下”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,或者是该发明产品使用时惯常摆放的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
此外,若出现术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
需要说明的是,在不冲突的情况下,本发明的实施例中的特征可以相互结合。
请参考图1,图1示出了本发明实施例提供的应用场景示例图,分布式数据库***包括多个数据节点10,每一数据节点10均与客户端20通信连接,分布式数据库部署在多个数据节点10,客户端20可以通过任意一个数据节点10下发数据处理任务,对分布式非结构化数据库中的数据单元cell进行处理。非结构化数据库包括、但不限于Cassandra,HBase,Riak.等。以HBase为例,每一数据单元cell可以是HBase的一行,包括:行键(rowkey)、列族、列标识、时间戳和数据,表1为HBase中数据组织示意图。
表1
行键 | 列族 | 列标识 | 时间戳 | 数据 |
Key1 | Cf1 | C1 | Date1 | Data1 |
Key1 | Cf2 | C1 | Date2 | Data2 |
Key2 | Cf1 | C2 | Date3 | Data3 |
表1中有3行,每行可以认为是一个cell,在向表1中增加数据的时候,确定待增加数据的行键、列族、列标识即可确定该待增加数据所在的cell。
数据节点10预先将分布式数据库中与该数据处理任务相关的cell迁移至暂存数据库,在收到数据处理任务后,对数据处理任务中的每一数据处理请求,根据该数据处理请求中的待处理数据的标识、处理类型及处理参数,对暂存数据库中与待处理数据的标识一致的第一目标cell进行处理,当该数据处理任务中所有数据处理请求均处理完成时,将暂存数据库中的cell写回至分布式数据库中,然后向客户端反馈数据处理任务完成。其中,处理类型可以是新增数据、修改数据或者删除数据。
请参考图2,图2示出了本发明实施例提供的数据节点10的方框示意图。数据节点10还包括存储器11、通信接口12、处理器13和总线14。存储器11、通信接口12,处理器13通过总线14连接。
存储器11用于存储程序,例如上述的网络流量恢复装置,该网络流量恢复装置包括至少一个可以软件或固件(firmware)的形式存储于存储器11中的软件功能模块,处理器13在接收到执行指令后,执行所述程序以实现上述实施例揭示的数据处理方法。
存储器11可能包括高速随机存取存储器(RAM:Random Access Memory),也可能还包括非易失存储器(non-volatile memory),例如至少一个磁盘存储器。可选地,存储器11可以是内置于处理器13中的存储装置,也可以是独立于处理器13的存储装置。
通过至少一个通信接口12(可以是有线或者无线)实现与其他数据节点10、出口网关、防火墙设备之间的通信连接。
总线14可以是ISA总线、PCI总线或EISA总线等。图2仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
处理器13可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器13中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器13可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
接下来,本发明实施例将对应用于数据节点10的数据处理方法进行详细描述,请参照图3,图3示出了本发明实施例提供的一种数据处理方法的流程图,该方法包括以下步骤:
步骤S101,接收客户端发送的数据处理任务;其中,数据处理任务包括至少一个数据处理请求,每一数据处理请求包括待处理数据的标识、处理参数及处理类型。
在本实施例中,以HBase为例,待处理数据的标识可以行键、列族、列标识的组合,处理类型可以包括新增类型、修改类型和删除类型,处理类型不同,对应的处理参数也可以不同,例如,处理类型为新增类型时,处理参数可以包括待新建数据,处理类型为修改类型时,处理参数可以包括修改后的数据,处理类型为删除类型时,处理参数可以为空,即处理参数不包括任何数据,也可以为待删除cell的范围,及删除该范围内的所有cell。
数据处理任务可以包括多个数据处理请求,其中的每个数据处理请求处理的cell各不同,处理类型可以相同、也可以不相同。例如,同一个数据处理任务可以包括新增cell1和cell2、修改cell3、删除cell4,但是同一个数据处理任务不能对cell1进行新增和修改。
步骤S102,依据每一数据处理请求的处理参数及处理类型、对预先建立的暂存数据库中与该数据处理请求的待处理数据的标识一致的第一目标cell进行处理,其中,暂存数据库包括预先从分布式数据库中迁移出的与数据处理任务相关的cell、且所述暂存数据库具有事务处理功能。
在本实施例中,数据节点10首先根据数据处理任务,从分布式数据库中确定与数据处理任务相关的cell,然后将与此数据处理任务相关的cell迁移至暂存数据库中,以便后续处理数据处理任务中的数据处理请求时,直接从暂存数据库中获取需要处理的cell,由此可以在处理时更快速地找到待处理的cell,提高数据处理的效率。
步骤S103,当数据处理任务中所有数据处理请求的第一目标cell均处理完成时,将暂存数据库中的cell写回至分布式数据库,并向客户端返回数据处理任务完成。
在本实施例中,第一目标cell为数据处理请求需要处理的cell,数据处理任务中每一数据处理请求对应一个第一目标cell,当同一个数据处理任务中的所有第一目标cell均处理完成时,数据节点10统一将暂存数据库中的cell写回至分布式数据库,由此可以保证同一个数据处理任务中多个第一目标cell在分布式数据库中批量处理,进一步提高数据处理的效率。
本发明实施例提供的上述方法,通过预先将同一个数据处理任务相关的cell放入暂存数据库中,当接收到数据处理任务的数据处理请求时,直接对暂存数据库中与数据处理请求对应的cell进行处理,当数据处理任务的所有数据处理请求均处理完毕时,才统一将该数据处理任务处理的数据回写至分布式数据库中,由于对数据处理任务中的处理的数据采用了统一异步回写的方式,能够为不具有批量事务接口的数据库实现大规模、高效的事务操作,在保证数据安全的前提下,提高此类数据库***处理大规模数据的效率。
基于图3,本发明实施例还给出了一种具体实施方式,请参照图4,图4示出了本发明实施例提供的另一种数据处理方法的流程图。步骤S102包括以下子步骤:
步骤S1021,依据处理参数及处理类型对对应的第一目标cell的数据进行更新。
在本实施例中,当处理类型为新建类型时,处理参数包括待新建数据,依据处理参数及处理类型对对应的第一目标cell的数据进行更新的实现方式可以是:
首先,将待新建cell作为第一目标cell。
然后,将待处理数据的标识及待新建数据新增至暂存数据库中。
在本实施例中,以HBase为例,待处理数据的标识可以是待处理数据的标识可以行键、列族、列标识的组合。在本实施例中,以HBase为例,暂存数据库以行键、列族、列标识作为主键,以时间戳,数据作为字段。作为一种具体实现方式,与上述表1对应的暂存数据库的如表2所示:
表2
行键+列族+列标识 | 时间戳 | 数据 |
Key1_Cf1_C1 | Date1 | Data1 |
Key1_Cf2_C1 | Date2 | Data2 |
Key2_Cf1_C2 | Date3 | Data3 |
需要说明的是,当向暂存数据库中新增第一目标cell时,其时间戳的字段不赋值,待向分布式数据库中写入该新增第一目标cell时,再为分布式数据库中的时间戳赋值,此时,时间戳的值可以赋值为当时写入分布式数据库时的***时间。
例如,向表2中的暂存数据库中新增的第一目标cell的标识为:Key3_Cf2_C2,数据为Data4,则新增第一目标cell之后,其中的数据如表3所示:
表3
在本实施例中,当处理类型为修改类型时,处理参数包括修改后的数据,依据处理参数及处理类型对对应的第一目标cell的数据进行更新的实现方式可以是:
将第一目标cell的数据修改为修改后的数据。
在本实施例中,修改第一目标cell时,可以只修改第一目标cell的数据,不修改暂存数据库中时间戳字段,因为,第一目标cell从暂存数据库写回至分布式数据库时还需要重新获取写入时的***时间,最终用此时的***时间为该第一目标cell的时间戳赋值。
在本实施例中,当处理类型为删除类型时,依据处理参数及处理类型对对应的第一目标cell的数据进行更新的实现方式至少为以下任意一种方式:
方式1:处理参数为空,即未指定处理参数,此时对第一目标cell设置删除标志以标识第一目标cell的数据为无效。
方式2:处理参数为待删除cell的预设范围,此时对从第一目标cell起之后的预设范围内的cell均设置删除标志,以标识其数据为无效。
需要说明的是,此处只是设置删除标志,并未直接将cell从暂存数据库中删除,可以在分布式数据库***出现异常时,将删除操作未完成就被异常中断时丢失的数据恢复出来,提高了分布式数据库***的可靠性。
步骤S1022,将第一目标cell的操作类型设置为处理类型,并将第一目标cell的同步状态置位。
为了便于将暂存数据库中的cell写回至分布式数据库中,本发明实施例为暂存数据库中每一cell均新增有对应的操作类型及同步状态,其中,操作类型即为处理请求中的处理类型,包括新建类型、修改类型和删除类型,同步状态用于表示该cell中的数据的处理处于的阶段,例如,用同步状态为0,表示该cell的数据正在数据处理请求处理,用同步状态为1,表示该cell的数据在分布式数据库中和暂存数据库中均有一份,且暂存数据库中的数据为最新。将第一目标cell的同步状态置位可以是将同步状态置1。
在本实施例中,由于将分布式数据库中与数据处理任务相关的cell迁移至暂存数据库中是分两步进行:首先,将分布式数据库中与数据处理任务相关的cell拷贝至暂存数据库中,然后,再将分布式数据库中与数据处理任务相关的cell删除。为了避免在迁移过程中,客户端读数据处理任务相关的cell时出现错误,在将分布式数据库中与数据处理任务相关的cell拷贝至暂存数据库中的同时,将其操作类型置为null,将同步状态设置为1,此时如果需要读该cell,首先读暂存数据库中该cell的数据,然后,再读分布式数据库中该cell的数据,用暂存数据库中该cell的数据覆盖分布式数据库中该cell的数据后,再将覆盖后的分布式数据库中的该cell的数据返回客户端,例如,暂存数据库中cell1的数据包括网址,其值为a,同步状态为1,分布式数据库中cell1的数据包括网址和用户名,其中,网址的值为b,用户名为m,客户端下发读cell1的读请求时,数据节点10首先从暂存数据库中读取cell1,即网址为a,然后再从分布式数据库中cell1,即网址为b,用户名m,接下来,数据节点10将网址的值a覆盖分布式数据库中的网址b,最终返回客户端的数据为:网址a,用户名m。
继续参照图4,步骤S103包括以下子步骤:
子步骤S1031,将暂存数据库中操作类型为新建类型或修改类型的cell写回至分布式数据库。
子步骤S1032,清除暂存数据库中的所有cell。
在本实施例中,只是清除暂存数据库中的cell的数据,暂存数据库的结构还在,便于后续的数据处理任务可以重复使用。例如,清除所有cell后的暂存数据库如表4所示:
表4
行键+列族+列标识 | 时间戳 | 数据 |
本发明实施例提供的上述方法,通过为暂存数据库新增操作类型字段及同步状态字段,利用操作类型字段只将暂存数据库中新增类型和修改类型的cell写回至分布式数据库中,由此避免了必须要的写回操作,利用同步状态字段,保证了cell从分布式数据库向暂存数据库迁移过程中可以正确地读取到cell中的数据,同时保证了分布式数据库中数据的可靠性和访问效率。
为了保证在整个数据处理任务过程中,可以正确、高效地读取分布式数据库中cell的数据,本发明实施例还提供一种数据处理方法,请参照图5,图5示出了本发明实施例提供的另一种数据处理方法的流程图,该方法包括以下步骤:
步骤S201,接收客户端发送的数据读请求,其中,读请求包括待读数据的标识。
在本实施例中,以HBase为例,待读数据的标识可以是待处理数据的标识可以行键、列族、列标识的组合。
步骤S202,若暂存数据库中不存在与待读数据的标识一致的第二目标cell,则从分布式数据库中找到与待读数据的标识一致的第二目标cell并将第二目标cell的数据返回至客户端。
在本实施例中,第二目标cell为待读数据所属的cell,暂存数据库中不存在第二目标cell,意味着第二目标cell不是当前数据处理任务需要处理的cell,此时直接从分布式数据库中找到第二目标cell,并将第二目标cell的数据返回客户端即可。
步骤S203,若暂存数据库中存在与待读数据的标识一致的第二目标cell且第二目标cell的同步状态未被置位时,则将第二目标cell及分布式数据库中与待读数据的标识一致的第三目标cell进行合并后,将合并后的数据返回至客户端。
在本实施例中,暂存数据库中存在第二目标cell时,意味着第二目标cell是当前数据处理任务需要处理的cell,由于暂存数据库中第二目标cell的同步状态未被置位,暂存数据库中可能只存储了待读数据的标识表征的cell的一部分数据,客户端需要的可能是待读数据的标识表征的cell的全部数据,因此,需要将暂存数据库中的待读数据的标识表征的第二目标cell的数据和分布式数据库中的待读数据的标识表征的第三目标cell的数据合并后返回客户端。
步骤S204,若暂存数据库中存在与待读数据的标识一致的第二目标cell且第二目标cell的同步状态被置位时,用第二目标cell的数据覆盖分布式数据库中与待读数据的标识一致的第三目标cell中对应的数据后,将覆盖后的第三目标cell的数据返回至客户端。
在本实施例中,暂存数据库中的第二目标cell的同步状态未被置位,则可能暂存数据库和分布式数据库中存在重复的数据,此时,暂存数据库中的数据为最新的数据,因此,需要用暂存数据库中的待读数据的标识表征的第二目标cell的数据覆盖分布式数据库中待读数据的标识表征的第三目标cell的数据,将覆盖后的第三目标cell的数据返回客户端。
需要说明的是,暂存数据库可以、但不限于SQL数据库及redis数据库。
本发明实施例,通过采用支持事务处理的数据库作为暂存数据库,可以使不支持事务处理的分布式数据库实现数据的事务处理。
为了执行上述实施例及各个可能的实施方式中的相应步骤,下面给出一种数据处理装置的实现方式。请参阅图6,图6示出了本发明实施例提供的数据处理装置100的功能模块图。需要说明的是,本实施例所提供的数据处理装置100,其基本原理及产生的技术效果和上述实施例相同,为简要描述,本实施例部分未提及指出,可参考上述实施例中的相应内容。数据处理装置100包括接收模块110、处理模块120、写回模块130及读取模块140。
接收模块110,用于接收客户端发送的数据处理任务;其中,数据处理任务包括至少一个数据处理请求,每一数据处理请求包括待处理数据的标识、处理参数及处理类型。
处理模块120,用于依据每一数据处理请求的处理参数及处理类型、对预先建立的暂存数据库中与该数据处理请求的待处理数据的标识一致的第一目标cell进行处理,其中,暂存数据库包括预先从分布式数据库中迁移出的与数据处理任务相关的cell、且所述暂存数据库具有事务处理功能。
具体地,暂存数据库中每一cell均新增有对应的操作类型及同步状态,处理模块120在执行依据每一数据处理请求的处理参数及处理类型、对预先建立的暂存数据库中与该数据处理请求的待处理数据的标识一致的第一目标cell时,具体用于:依据处理参数及处理类型对对应的第一目标cell的数据进行更新;将第一目标cell的操作类型设置为处理类型,并将第一目标cell的同步状态置位。
具体地,当处理类型为新建类型时,处理参数包括待新建数据,处理模块120在执行依据处理参数及所述处理类型对对应的所述第一目标cell的数据进行更新时,具体用于:将待新建cell作为第一目标cell;将待新建cell的标识及待新建数据新增至暂存数据库中。
具体地,当处理类型为修改类型时,处理参数包括修改后的数据,处理模块120在执行依据处理参数及所述处理类型对对应的所述第一目标cell的数据进行更新时,具体用于:将所述第一目标cell的数据修改为所述修改后的数据。
具体地,当所述处理类型为删除类型时,处理模块120在执行依据处理参数及所述处理类型对对应的所述第一目标cell的数据进行更新时,具体用于:对第一目标cell设置删除标志以标识第一目标cell的数据为无效。
写回模块130,用于当数据处理任务中所有数据处理请求的第一目标cell均处理完成时,将暂存数据库中的cell写回至分布式数据库,并向客户端返回数据处理任务完成。
具体地,写回模块130具体用于:将暂存数据库中操作类型为新建类型或修改类型的cell写回至分布式数据库;清除暂存数据库中的所有cell。
读取模块140,用于接收客户端发送的数据读请求,其中,读请求包括待读数据的标识;若暂存数据库中不存在与待读数据的标识一致的第二目标cell,则从分布式数据库中找到与待读数据的标识一致的第二目标cell并将第二目标cell的数据返回至客户端;若暂存数据库中存在与待读数据的标识一致的第二目标cell且第二目标cell的同步状态未被置位时,则将第二目标cell及分布式数据库中与待读数据的标识一致的第三目标cell进行合并后,将合并后的数据返回至客户端;若暂存数据库中存在与待读数据的标识一致的第二目标cell且第二目标cell的同步状态被置位时,用第二目标cell的数据覆盖分布式数据库中与待读数据的标识一致的第三目标cell中对应的数据后,将覆盖后的第三目标cell的数据返回至客户端。
本发明实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如前述实施方式中任一项所述的数据处理方法。
综上所述,本发明实施例提供了一种数据处理方法、装置、数据节点及存储介质,应用于分布式数据库***中的数据节点,数据节点上部署有分布式数据库,分布式数据库为不具备大规模数据事务处理功能的非结构化数据库,数据节点与客户端通信连接,分布式数据库包括多个数据单元cell,所述方法包括:接收客户端发送的数据处理任务;其中,数据处理任务包括至少一个数据处理请求,每一数据处理请求包括待处理数据的标识、处理参数及处理类型;依据每一数据处理请求的处理参数及处理类型、对预先建立的暂存数据库中与该数据处理请求的待处理数据的标识一致的第一目标cell进行处理,其中,暂存数据库包括预先从分布式数据库中迁移出的与数据处理任务相关的cell、且所述暂存数据库具有事务处理功能;当数据处理任务中所有数据处理请求的第一目标cell均处理完成时,将暂存数据库中的cell写回至分布式数据库,并向客户端返回数据处理任务完成。相对于现有技术,本发明实施例通过预先将同一个数据处理任务相关的cell放入暂存数据库中,当接收到数据处理任务的数据处理请求时,直接对暂存数据库中与数据处理请求对应的cell进行处理,当数据处理任务的所有数据处理请求均处理完毕时,才统一将该数据处理任务处理的数据回写至分布式数据库中,由于对数据处理任务中的处理的数据采用了统一异步回写的方式,能够为不具有批量事务接口的数据库实现大规模、高效的事务操作,在保证数据安全的前提下,提高此类数据库***处理大规模数据的效率。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (10)
1.一种数据处理方法,其特征在于,应用于分布式数据库***中的数据节点,所述数据节点上部署有分布式数据库,所述分布式数据库为不具备大规模数据事务处理功能的非结构化数据库,所述数据节点与客户端通信连接,所述分布式数据库包括多个数据单元cell,所述方法包括:
接收所述客户端发送的数据处理任务;其中,所述数据处理任务包括至少一个数据处理请求,每一数据处理请求包括待处理数据的标识、处理参数及处理类型;
依据每一数据处理请求的处理参数及处理类型、对预先建立的暂存数据库中与该数据处理请求的待处理数据的标识一致的第一目标cell进行处理,其中,所述暂存数据库包括预先从所述分布式数据库中迁移出的与所述数据处理任务相关的cell、且所述暂存数据库具有事务处理功能;
当所述数据处理任务中所有数据处理请求的第一目标cell均处理完成时,将所述暂存数据库中的cell写回至所述分布式数据库,并向所述客户端返回数据处理任务完成。
2.如权利要求1所述的数据处理方法,其特征在于,暂存数据库中每一cell均新增有对应的操作类型及同步状态,所述依据每一数据处理请求的处理参数及处理类型、对预先建立的暂存数据库中与该数据处理请求的待处理数据的标识一致的第一目标cell进行处理的步骤,包括:
依据所述处理参数及所述处理类型对对应的所述第一目标cell的数据进行更新;
将所述第一目标cell的操作类型设置为所述处理类型,并将所述第一目标cell的同步状态置位。
3.如权利要求2所述的数据处理方法,其特征在于,当所述处理类型为新建类型时,所述处理参数包括待新建数据,所述依据所述处理参数及所述处理类型对对应的所述第一目标cell的数据进行更新的步骤,包括:
将待新建cell作为所述第一目标cell;
将所述待新建cell的行键、列标识及待新建数据新增至所述暂存数据库中。
4.如权利要求2所述的数据处理方法,其特征在于,当所述处理类型为修改类型时,所述处理参数包括修改后的数据,所述依据所述处理参数及所述处理类型对对应的所述第一目标cell的数据进行更新的步骤,包括:
将所述第一目标cell的数据修改为所述修改后的数据。
5.如权利要求2所述的数据处理方法,其特征在于,当所述处理类型为删除类型时,所述依据所述处理参数及所述处理类型对对应的所述第一目标cell的数据进行更新的步骤,包括:
对所述第一目标cell设置删除标志以标识所述第一目标cell的数据为无效。
6.如权利要求1所述的数据处理方法,其特征在于,所述将所述暂存数据库中的cell写回至所述分布式数据库的步骤,包括:
将所述暂存数据库中操作类型为新建类型或修改类型的cell写回至所述分布式数据库;
清除所述暂存数据库中的所有cell。
7.如权利要求1所述的数据处理方法,其特征在于,所述方法还包括:
接收所述客户端发送的数据读请求,其中,所述读请求包括待读数据的标识;
若所述暂存数据库中不存在与所述待读数据的标识一致的第二目标cell,则从所述分布式数据库中找到与所述待读数据的标识一致的第二目标cell并将所述第二目标cell的数据返回至所述客户端;
若所述暂存数据库中存在与所述待读数据的标识一致的第二目标cell且所述第二目标cell的同步状态未被置位时,则将所述第二目标cell及所述分布式数据库中与所述待读数据的标识一致的第三目标cell进行合并后,将合并后的数据返回至所述客户端;
若所述暂存数据库中存在与所述待读数据的标识一致的第二目标cell且所述第二目标cell的同步状态被置位时,用所述第二目标cell的数据覆盖所述分布式数据库中与所述待读数据的标识一致的第三目标cell中对应的数据后,将覆盖后的第三目标cell的数据返回至所述客户端。
8.一种数据处理装置,其特征在于,应用于分布式数据库***中的数据节点,所述数据节点上部署有分布式数据库,所述分布式数据库为不具备大规模事务处理功能的非结构化数据库,所述数据节点与客户端通信连接,所述分布式数据库包括多个数据单元cell,所述装置包括:
接收模块,用于接收所述客户端发送的数据处理任务;其中,所述数据处理任务包括至少一个数据处理请求,每一数据处理请求包括待处理数据的标识、处理参数及处理类型;
处理模块,用于依据每一数据处理请求的处理参数及处理类型、对预先建立的暂存数据库中与该数据处理请求的待处理数据的标识一致的第一目标cell进行处理,其中,所述暂存数据库包括预先从所述分布式数据库中迁移出的与所述数据处理任务相关的cell、且所述暂存数据库具有事务处理功能;
写回模块,用于当所述数据处理任务中所有数据处理请求的第一目标cell均处理完成时,将所述暂存数据库中的cell写回至所述分布式数据库,并向所述客户端返回数据处理任务完成。
9.一种数据节点,其特征在于,所述数据节点包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1~7中任一项所述的数据处理方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1~7中任一项所述的数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911239023.7A CN110888929B (zh) | 2019-12-06 | 2019-12-06 | 数据处理方法、装置、数据节点及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911239023.7A CN110888929B (zh) | 2019-12-06 | 2019-12-06 | 数据处理方法、装置、数据节点及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110888929A true CN110888929A (zh) | 2020-03-17 |
CN110888929B CN110888929B (zh) | 2022-03-29 |
Family
ID=69750723
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911239023.7A Active CN110888929B (zh) | 2019-12-06 | 2019-12-06 | 数据处理方法、装置、数据节点及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110888929B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102880709A (zh) * | 2012-09-28 | 2013-01-16 | 用友软件股份有限公司 | 数据仓库管理***和数据仓库管理方法 |
US20150074071A1 (en) * | 2013-09-12 | 2015-03-12 | Neustar,Inc. | Method and system for performing transactional updates in a key-value store |
CN104573022A (zh) * | 2015-01-12 | 2015-04-29 | 浪潮软件股份有限公司 | 一种HBase的数据查询方法及装置 |
US20160085810A1 (en) * | 2014-09-24 | 2016-03-24 | Oracle International Corporation | Scaling event processing using distributed flows and map-reduce operations |
CN105681477A (zh) * | 2016-04-08 | 2016-06-15 | 四川师范大学 | 一种数据访问方法和一种服务器 |
CN107077476A (zh) * | 2014-09-24 | 2017-08-18 | 甲骨文国际公司 | 利用动态类型的大数据对事件进行丰富以用于事件处理 |
CN107077691A (zh) * | 2014-07-14 | 2017-08-18 | 甲骨文国际公司 | 用于确定数据库高速缓存命中的基于年龄的策略 |
CN109101516A (zh) * | 2017-11-30 | 2018-12-28 | 新华三大数据技术有限公司 | 一种数据查询方法和服务器 |
CN104793988B (zh) * | 2014-01-20 | 2019-01-22 | 阿里巴巴集团控股有限公司 | 跨数据库分布式事务的实现方法和装置 |
-
2019
- 2019-12-06 CN CN201911239023.7A patent/CN110888929B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102880709A (zh) * | 2012-09-28 | 2013-01-16 | 用友软件股份有限公司 | 数据仓库管理***和数据仓库管理方法 |
US20150074071A1 (en) * | 2013-09-12 | 2015-03-12 | Neustar,Inc. | Method and system for performing transactional updates in a key-value store |
CN104793988B (zh) * | 2014-01-20 | 2019-01-22 | 阿里巴巴集团控股有限公司 | 跨数据库分布式事务的实现方法和装置 |
CN107077691A (zh) * | 2014-07-14 | 2017-08-18 | 甲骨文国际公司 | 用于确定数据库高速缓存命中的基于年龄的策略 |
US20160085810A1 (en) * | 2014-09-24 | 2016-03-24 | Oracle International Corporation | Scaling event processing using distributed flows and map-reduce operations |
CN107077476A (zh) * | 2014-09-24 | 2017-08-18 | 甲骨文国际公司 | 利用动态类型的大数据对事件进行丰富以用于事件处理 |
CN104573022A (zh) * | 2015-01-12 | 2015-04-29 | 浪潮软件股份有限公司 | 一种HBase的数据查询方法及装置 |
CN105681477A (zh) * | 2016-04-08 | 2016-06-15 | 四川师范大学 | 一种数据访问方法和一种服务器 |
CN109101516A (zh) * | 2017-11-30 | 2018-12-28 | 新华三大数据技术有限公司 | 一种数据查询方法和服务器 |
Non-Patent Citations (2)
Title |
---|
邹立民: "基于Hadoop的分布式数据存储***应用的研究", 《中国优秀博硕士学位论文全文数据库(硕士)信息科技辑》 * |
陈付梅等: "大数据环境下的分布式数据流处理关键技术探析", 《计算机应用》 * |
Also Published As
Publication number | Publication date |
---|---|
CN110888929B (zh) | 2022-03-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107391628B (zh) | 数据同步方法及装置 | |
TWI669620B (zh) | Database switching method, server, storage medium, electronic device and product | |
CN109284073B (zh) | 数据存储方法、装置、***、服务器、控制节点及介质 | |
CN111143382B (zh) | 数据处理方法、***和计算机可读存储介质 | |
CN106033437A (zh) | 一种分布式事务处理方法及*** | |
CN107977396B (zh) | 一种KeyValue数据库的数据表的更新方法与表数据更新装置 | |
EP3147797B1 (en) | Data management method, node and system for database cluster | |
CN112416957A (zh) | 基于数据模型层的数据增量更新方法、装置及计算机设备 | |
CN108536447B (zh) | 运维管理方法 | |
CN111506552A (zh) | 一种树状结构的动态数据库设计方法及*** | |
WO2018059239A1 (zh) | 一种文件存储方法及装置 | |
CN110888929B (zh) | 数据处理方法、装置、数据节点及存储介质 | |
CN111444208B (zh) | 一种数据更新方法及相关设备 | |
CN112015819A (zh) | 分布式图数据库的数据更新方法、装置、设备及介质 | |
CN112148713A (zh) | 异构数据库之间数据迁移方法及装置 | |
US20230252012A1 (en) | Method for indexing data | |
CN116303789A (zh) | 多分片多副本数据库并行同步方法、装置及可读介质 | |
CN111694801A (zh) | 一种应用于故障恢复的数据去重方法和装置 | |
EP3391217B1 (en) | Long-running storage manageability operation management | |
CN109739883B (zh) | 提升数据查询性能的方法、装置和电子设备 | |
CN111159311A (zh) | 一种数据映射集成的方法、装置、设备及存储介质 | |
CN110968267A (zh) | 数据管理方法、装置、服务器及*** | |
CN104765748A (zh) | 一种将复制表转换为分片表的方法及装置 | |
CN111198782A (zh) | 数据重分布方法、装置、设备及存储介质 | |
CN111797062B (zh) | 数据处理方法、装置和分布式数据库*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |