数据合并方法及装置与流程

文档序号:18301654发布日期:2019-07-31 10:13阅读:194来源:国知局
数据合并方法及装置与流程
本申请涉及数据库领域,特别涉及一种数据合并方法及装置。
背景技术
:随着网络技术的发展和应用软件的成熟,软件即服务(software-as-a-service,saas)作为一种新的软件应用模式,得到越来越多的关注。saas特别之处在于,用户无需对应用程序进行安装,而是通过网络直接使用应用程序,对数据进行阅读、编辑和保存。目前,服务器以数据库表的形式存储各个用户的数据,saas模式的兴起意味着服务器需要存储大量不同用户的不同数据,于是宽表应运而生。宽表从字面意义上讲就是字段比较多的数据库表,通常是指将业务主题相关的指标、维度、属性列等类型记录在一起的一张数据库表。由于宽表在创建时会预留若干(比如100,500)个无类型字段作为具体数据的存储字段,因此可以适应大量不同用户的不同类型的数据的存储。现有技术中,服务器是将数据组逐条写入宽表中(比如当一件事务触发后,服务器需要将与该事务关联的多条数据组一条一条写入宽表中),显然,频繁解析结构化查询语言(structuredquerylanguage,sql)语句和频繁写入数据,无疑增加了服务器的中央处理器(centralprocessingunit,cpu)消耗和磁盘输入/输出(input/output,i/o)消耗,降低了服务器的整体服务性能。技术实现要素:为了解决相关技术的问题,本申请公开了一种数据合并方法及装置。所述技术方案如下:第一方面,提供了一种数据合并方法,所述方法包括:将目标事务生成的数据组,存储到所述目标事务对应的数据缓存;当满足预设条件时,将缓存的多个数据组合并为列批量数据组;将所述列批量数据组插入所述目标事务对应的数据库表中;清空所述数据缓存中存储的数据组。本申请实施例提供的数据合并方法,通过先将目标事务生成的数据组合并为列批量数据组,再将列批量数据组插入目标事务对应的数据库表中,由于服务器在只需对列批量数据组执行依次写入操作,即可将合并成该列批量数据组的的数据组全部写入宽表中,避免了服务器频繁解析sql语句的cpu消耗,以及频繁写入数据造成的磁盘i/o消耗,从而提高了服务器的整体服务性能。结合第一方面或者第一方面的第一种可能的实施方式,在第一方面的第二种可能的实施方式中,根据数据组属性列与数据库表属性列的对应关系,将类型不同的数据组合并为列批量数据组,使得插入数据库表中的列批量数据组,所包含的每个数据对应的属性列与数据库表的数据库表属性列均对应,从而减少空数据的数量,降低列批量数据组的占用空间,所述将缓存的多个数据组合并为列批量数据组,包括:确定所述多个数据组中,每个数据组的数据组属性列;根据预存的数据组属性列与数据库表属性列的对应关系,将所述多个数据组中对应同一数据库表属性列的数据合并到同一列,得到第一数据集合;在所述第一数据集合中,对于所述多个数据组中的每个数据组,在所述数据组中添加对应所述第一数据集合的数据集合属性列的空数据,得到第二数据集合;在所述第二数据集合中,将同一列数据绑定为列数据,得到所述列批量数据组。结合第一方面、第一方面的第一种可能的实现或者第一方面的第二种可能的实现,在第一方面的第三种可能的实现中,将多个数据组中同一属性的数据合并为列数据,使得插入数据库表中的列批量数据组,所包含的同一列数据对应的属性列相同,便于工作人员的查阅,所述将缓存的多个数据组合并为列批量数据组,包括:确定所述多个数据组中,每个数据组的数据组属性列;将所述多个数据组中同一数据组属性列的数据合并到同一列,得到第三数据集合;在所述第三数据集合中,对于所述多个数据组中的每个数据组,在所述数据组中添加对应所述第三数据数据集合的数据集合属性列的空数据,得到第四数据集合;在所述第四数据集合中,将同一列数据绑定为列数据,得到所述列批量数据组。结合第一方面、第一方面的第一种至第三种可能的实现,在第一方面的第四种可能的实现中,所述将所述列批量数据组插入所述目标事务对应的数据库表中,包括:将所述列批量数据组中的每个列数据分别作为对应所述数据库表的数据库表属性列的数据,插入所述数据库表中。结合第一方面、第一方面的第一种至第四种可能的实现,在第一方面的第五种可能的实现中,服务器会对同一列数据的数据类型不同的数据自动进行数据类型的转换,而这种自动转换通常伴随着较高的出错率,为了避免服务器的自动转换,在所述将所述列批量数据组插入所述目标事务对应的数据库表中之前,所述方法还包括:将所述列批量数据组中同一列数据的数据类型转换为相同的数据类型。结合第一方面、第一方面的第一种至第五种可能的实现,在第一方面的第六种可能的实现中,所述预设条件为接收到事务提交指令,和/或,所述数据缓存中存储的数据组数量达到预定阈值,和/或,达到预设周期。第二方面,提供了一种数据合并装置,所述装置包括:存储模块,用于将目标事务生成的数据组,存储到所述目标事务对应的数据缓存;合并模块,用于当满足预设条件时,将缓存的多个数据组合并为列批量数据组;插入模块,用于将所述列批量数据组,插入所述目标事务对应的数据库表中;清空模块,用于清空所述数据缓存中存储的数据组。第三方面,提供了一种服务器,所述服务器包括处理器和存储器,所述存储器中存储有至少一条指令,所述至少一条指令由所述处理器加载并执行以实现上述第一方面的数据合并方法所涉及的相应步骤。第四方面,提供一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条指令,至少一条指令由处理器加载并执行以实现上述第一方面中任意一种可能的实现方式所提供的数据合并方法。附图说明为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1a是本申请一个实施例应用的saas应用系统的系统架构示意图;图1b是本申请一个实施例应用的数据访问节点的主要功能架构示意图;图2是本申请一个示例性实施例应用的数据访问节点的结构示意图;图3a是本申请一个示例性实施例提供的数据合并方法的流程图;图3b是本申请另一个示例性实施例提供的数据合并方法的流程图;图4是本申请再一个示例性实施例提供的数据合并方法的流程图;图5是本申请又一个示例性实施例提供的数据合并方法的流程图;图6是本申请实施例所涉及的数据访问节点的一种可能的结构示意图;图7是本申请一个实施例提供的数据合并装置的框图。具体实施方式为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。在本文提及的“模块”是指存储在存储器中的能够实现某些功能的程序或指令;在本文中提及的“单元”是指按照逻辑划分的功能性结构,该“单元”可以由纯硬件实现,或者,软硬件的结合实现。请参考图1a,其示出了本申请一个实施例应用的saas应用系统的系统架构示意图,该saas应用系统包括:负载均衡节点、应用节点、数据访问节点和数据库节点。负载均衡器,用于接收各个saas应用客户端的请求,根据应用节点集群中各个应用节点的负载情况,将请求分发给各个应用节点。应用节点,用于运行saas应用系统的业务服务。在大容量场景下,应用节点通常采用集群部署。数据访问节点,用于运行saas应用系统的数据库访问服务,通过提供标准的sql接口,接收应用节点的数据库访问请求后,向数据库节点提交数据库查询,并将查询结果反馈给应用节点。在大容量场景下,数据访问节点通常采用集群部署。数据库节点,用于运行saas应用系统的数据存储访问服务,应用的商用数据库有oracle、mysql等。在大容量场景下,数据库节点通常采用集群部署。在多租场景下,各个租户(即用户)的数据存储在哪个数据库节点由预先部署的配置信息决定。请参考图1b,其示出了本申请一个实施例应用的数据访问节点的主要功能架构示意图,本申请所涉及的数据合并方法应用于该数据访问节点中,该数据访问节点包括:sql解析器、查询分析器、物理数据库sql和执行计划生成器、dml执行器、事务对应的数据缓存、元数据缓存以及数据库访问接口。sql解析器,用于解析应用节点发送的sql查询请求,生成语法树。查询分析器,用于基于sql解析器生成的语法树,对缓存的元数据和统计信息进行查询分析。物理数据库sql和执行计划生成器,用于根据查询分析器得到的查询分析结果,生成具体的物理数据库sql和执行计划,如果生成了多个执行计划,则在多个执行计划中确定最优计划。dml执行器,用于执行物理数据库sql和执行计划生成器确定的执行计划,并向应用节点反馈执行结果。事务数据缓存,用于在事务进行的过程中,缓存事务对应的数据,执行数据的类型转换、数据的聚集合并,以及数据的堆内存分配等功能。元数据缓存,用于缓存数据访问节点上的元数据,在数据访问节点服务启动时从数据库节点加载元数据。数据库访问接口,用于提供各个异构数据库的访问接口。请参考图2,其示出了本申请一个示例性实施例应用的数据访问节点的结构示意图。该数据访问节点包括:处理器21、网络接口22、高速缓存器23、存储器24和总线25。处理器21包括一个或者一个以上处理核心,处理器21通过运行软件程序以及模块,从而执行各种功能应用以及数据处理。网络接口22用于供网络设备与其他网络设备进行通信。存储器24与高速缓存器23分别通过总线25与处理器21相连。存储器24可用于存储软件程序以及模块。存储器24可以存储至少一个功能所需的应用程序模块26,应用程序模块26至少包括存储模块261、合并模块262、插入模块263和清空模块264。存储模块261,用于将目标事务生成的数据组,存储到所述目标事务对应的数据缓存;合并模块262,用于当满足预设条件时,将缓存的多个数据组合并为列批量数据组;插入模块263,用于将所述列批量数据组,插入所述目标事务对应的数据库表中;清空模块264,用于清空所述数据缓存中存储的数据组;转换模块265,用于在将列批量数据组插入目标事务对应的数据库表中之前,将列批量数据组中同一列数据的数据类型转换为相同的数据类型。存储器24可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。本领域技术人员可以理解,图2中所示出的数据访问节点的结构并不构成对数据访问节点的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。实施例一请参考图3a,其示出了本申请一个示例性实施例提供的数据合并方法的流程图。如图3a所示,该方法包括以下几个步骤:步骤301,将目标事务生成的数据组,存储到目标事务对应的数据缓存。以一个典型的购物场景为例,在实际应用过程中,用户在客户端登陆网上商城进行商品浏览后选择3样商品下了订单。对应的,应用节点端在整个业务流程中,开启该订单对应的目标事务,由数据访问节点对目标事务中生成的sql进行分类处理。如果用户在客户端登陆网上商城进行商品浏览后选择3样商品下了订单,并在付款之前查询该订单的商品明细。在数据访问节点中这两项操作对应的sql处理流程分别为:1、在订单表中新增一条用户记录:insertintot_order(orderid,customerid,status,createtime,desc)values(‘订单1’,‘user1’,‘订单创建’,now(),‘618采购’);在订单明细表新增3条商品记录:insertintot_order_detail(orderid,itemid,quantity,discount)values(‘订单1’,‘商品1’,‘1’,‘1’);insertintot_order_detail(orderid,itemid,quantity,discount)values(‘订单1’,‘商品2’,‘5’,‘0.8’);insertintot_order_detail(orderid,itemid,quantity,discount)values(‘订单1’,‘商品3’,‘1’,‘1’);2、查询订单的商品明细selectt1.name,t1.price,t1.photofromt_itemt1wheret1.itemidin(‘商品1’,‘商品2’,‘商品3’)。对于生成的insert语句,数据访问节点将insert语句中包括的数据组(一条insert语句中包含一组数据组)存入目标事务对应的数据缓存中。比如,insertintot_order(orderid,customerid,status,createtime,desc)values(‘订单1’,‘user1’,‘订单创建’,now(),‘618采购’)生成的数据组为:orderidcustomeridstatuscreatetimedesc数据组一订单1user1订单创建now618采购对于生成的select语句,数据访问节点从目标事务对应的数据缓存中查询select语句中包括的数据组,并向应用节点反馈查询结果。需要说明的是,数据缓存中存储的是未提交的事务对应的数据组,数据库表中中存储的是已提交的事务对应的数据组。如果用户查询已经付款后的订单的商品明细,数据访问节点则去数据库表中查询select语句中包括的数据组,并向应用节点反馈查询结果。步骤302,当满足预设条件时,将缓存的多个数据组合并为列批量数据组。可选的,预设条件为接收到事务提交指令,和/或,数据缓存中存储的数据组数量达到预定阈值,和/或,达到预设周期。比如,当目标事务结束时,数据访问节点会接收到目标事务对应的事务提交指令,当数据访问节点接收到目标事务对应的事务提交指令时,将目标事务对应的数据缓存中缓存的多个数据组合并为列批量数据,以执行后续步骤。继续以购物场景为例,用户在客户端确定无误后支付款项完成订单。在数据访问节点接收到事务提交指令后,对应的sql处理流程为:updatet_ordersetstatus=‘订单完成’whereorderid=‘订单1’。比如,当目标事务进行的过程中,如果目标事务对应的数据缓存中存储的数据组数量达到预定阈值,为了保证目标事务后进行修改的数据组能够正常的存入数据缓存中,数据访问节点会将该缓存的多个数据组合并为列批量数据组,以执行后续步骤。比如,当目标事务进行的过程中,如果达到预设周期,数据访问节点将目标事务对应的数据缓存中缓存的多个数据组合并为列批量数据,以执行后续步骤。需要说明的,达到预设周期可以为每隔30分钟、每隔1小时、每隔3小时等,本实施例不对预设周期的时长做任何限定。可选的,当满足预设条件时,数据访问节点根据预存的数据组属性列与数据库表属性列的对应关系,将多个数据组中对应同一数据库表属性列的数据合并到同一列,将缓存的多个数据组合并为列批量数据组,或者,数据访问节点将缓存的多个数据组合中同一数据组属性列的数据合并到同一列,从而将缓存的多个数据组合并为列批量数据组。步骤303,将列批量数据组插入目标事务对应的数据库表中。当满足预设条件时,先生成插入数据库表的参数化insert语句:insertintodata(guid,tenant,object,filed1,field2,filed3,field4,…)values(:p1,:p2,:p3,:p4,…),其中,p1,p2,p3,p4分别为接口参数,分别与列批量数据中的每列数据绑定。再将目标事务对应的数据缓存中存储的多个数据组合并为列批量数据组,最后执行插入数据库表的insert语句,将该列批量数据组中的每个列数据分别作为对应数据库表的数据库表属性列的数据,插入目标事务对应的数据库表中。在成功将列批量数据组插入数据库表中后,修改目标事务对应的订单状态,结束目标事务的流程。步骤304,清空数据缓存中存储的数据组。当目标事务的流程结束后,该目标事务对应的数据缓存分配给其他事务,用于存储其他事务生成的数据组,为了保证其他事务对应的数据组能够正常的存入数据缓存中,数据访问节点将清空数据缓存中存储的数据组。本申请实施例提供的数据合并方法,通过先将目标事务生成的数据组合并为列批量数据组,再将列批量数据组插入目标事务对应的数据库表中,由于服务器在只需对列批量数据组执行依次写入操作,即可将合并成该列批量数据组的的数据组全部写入宽表中,避免了服务器频繁解析sql语句的cpu消耗,以及频繁写入数据造成的磁盘i/o消耗,从而提高了服务器的整体服务性能。在一种可能实现的方式中,由于不同的数据组合中每列数据的数据类型通常不同,在各个数据组合并成批量列数据后,服务器会对同一列数据的数据类型不同的数据自动进行数据类型的转换,而这种自动转换通常伴随着较高的出错率,为了避免服务器的自动转换,请参考图3b,其示出了本申请另一个示例性实施例提供的数据合并方法的流程图。如图3b所示,在步骤303之前还包括:步骤305,将列批量数据组中同一列数据的数据类型转换为相同的数据类型。比如,数据组1为:orderidcustomeridstatuscreatetimedesc数据组1订单1user1订单创建now618采购其中,数据组一的每列数据的数据类型由表一所示:表一属性列orderidcustomeridstatuscreatetimedesc数据类型intintintdatetimevarchar数据组2为:orderiditemidquantitydiscount数据组2订单1商品111其中,数据组2的每列数据的数据类型由表二所示:表二属性列orderiditemidquantitydiscount数据类型intintintint将数据组一和数据组二合并后得到如下批量列数据组为:数据组1订单1user1订单创建now618采购数据组2订单1商品111由于数据组1中“now”的数据类型(datetime)与数据组2中“1”的数据类型(int)不同,因此在将数据组合并为列批量数据组后,需将“now”的数据类型和“1”的数据类型转换为相同的数据类型。比如,将“now”的数据类型转换为int类型,或者将“1”的数据类型转换为datetime类型,或者将“now”的数据类型和“1”的数据类型均转换为string类型。实施例二根据数据组属性列与数据库表属性列的对应关系,将类型不同的数据组合并为列批量数据组,使得插入数据库表中的列批量数据组,所包含的每个数据对应的属性列与数据库表的数据库表属性列均对应,从而减少空数据的数量,降低列批量数据组的占用空间。请参考图4,其示出了本申请再一个示例性实施例提供的数据合并方法的流程图。如图4所示,该方法包括以下几个步骤:步骤401,将目标事务生成的数据组,存储到目标事务对应的数据缓存。步骤402,当满足预设条件时,确定多个数据组中,每个数据组的数据组属性列。数据组的数据组属性列是指数据组中每列实体对象对应的实体对象属性信息。在目标事务开启后,数据访问节点会根据sql,在业务数据库中创建的多个实体对象,并将多个实体对象分别添加到对应的数据组属性列中,得到数据组。比如,用户在客户端进行开户操作,欲将会员编号为1020的客户alice,添加到ntt公司的vip客户名单中。在数据访问节点中这项操作对应的sql处理流程为:insertintocustomer(name,id,type,company)values(‘alice’,1020,‘vip’,‘ntt’)。其中,alice,1020,vip,ntt均为实体对象,name为alice对应的属性列,id为1020对应的属性列,type为vip对应的属性列,company为ntt对应的属性列。步骤403,根据预存的数据组属性列与数据库表属性列的对应关系,将多个数据组中对应同一数据库表属性列的数据合并到同一列,得到第一数据集合。比如,数据组1为:orderidcustomeridstatuscreatetimedesc数据组1订单1user1订单创建now618采购数据组2为:orderiditemidquantitydiscount数据组2订单1商品111预存的数据组属性列与数据库表属性列的对应关系分别如下述表三所示:表三数据组1属性列数据组2属性列数据库表属性列orderidorderidfield1customeriditemidfield2statusquantityfield3createtimediscountfield4descfield5当数据访问节点根据预存数据组属性列与数据库表属性列的对应关系,将数据组1和数据组2中对应同一数据库表属性列的数据合并到同一列,得到第一数据集合为:数据库表属性列field1field2field3field4field5数据组1订单1user1订单创建now618采购数据组2订单1商品111步骤404,在第一数据集合中,对于多个数据组中的每个数据组,在数据组中添加对应第一数据集合的数据集合属性列的空数据,得到第二数据集合。仍以步骤403中的举例进行说明,当数据访问节点根据预存数据组属性列与数据库表属性列的对应关系,将数据组1和数据组2中对应同一数据库表属性列的数据合并到同一列得到第一数据集合,该第一数据集合的的数据集合属性列分别为field1、field2、field3、field4和field5。由于数据组2属性列中不存在与数据库表属性列中“field5”对应的属性列,因此在第一数据集合中,数据组2对应field5的位置未填入任何数据。为了保证后续对列批量数据进行逻辑运算时不产生类型不匹配的错误,需要对第一数据集合的数据组中,添加对应第一数据集合的数据集合属性列的空数据(即在数据组2对应field5的位置添加“null”值)。在第一数据集合的数据组中添加对应第一数据集合的数据集合属性列的空数据后,得到第二数据集合为:数据库表属性列field1field2field3field4field5数据组1订单1user1订单创建now618采购数据组2订单1商品111null步骤405,在第二数据集合中,将同一列数据绑定为列数据,得到列批量数据组。仍以步骤404中的举例进行说明,当得到第二数据集合后,先将数据组1中“订单1”所在列的所有数据与接口参数p1绑定,将数据组1中“user1”所在列的所有数据与接口参数p2绑定,将数据组1中“订单创建”所在列的所有数据与接口参数p3绑定,将数据组1中“now”所在列的所有数据与接口参数p4绑定,将数据组1中“618采购”所在列的所有数据与接口参数p5绑定,得到列批量数据组。步骤406,将列批量数据组插入目标事务对应的数据库表中。步骤407,清空数据缓存中存储的数据组。需要说明的是,由于本实施例中步骤401与步骤301类似、步骤406至步骤407与步骤303至步骤304类似,因此本实施例不再对步骤401、步骤406至步骤407赘述说明。本申请实施例提供的数据合并方法,通过先将目标事务生成的数据组合并为列批量数据组,再将列批量数据组插入目标事务对应的数据库表中,由于服务器在只需对列批量数据组执行依次写入操作,即可将合并成该列批量数据组的的数据组全部写入宽表中,避免了服务器频繁解析sql语句的cpu消耗,以及频繁写入数据造成的磁盘i/o消耗,从而提高了服务器的整体服务性能。实施例三将多个数据组中同一属性的数据合并为列数据,使得插入数据库表中的列批量数据组,所包含的同一列数据对应的属性列相同,便于工作人员的查阅。请参考图5,其示出了本申请又一个示例性实施例提供的数据合并方法的流程图。如图5所示,该方法包括以下几个步骤:步骤501,将目标事务生成的数据组,存储到目标事务对应的数据缓存。步骤502,当满足预设条件时,确定多个数据组中,每个数据组的数据组属性列。步骤503,将多个数据组中同一数据组属性列的数据合并到同一列,得到第三数据集合。比如,数据组1为:orderidcustomeridstatuscreatetimedesc数据组1订单1user1订单创建now618采购数据组2为:orderiditemidquantitydiscount数据组2订单1商品111当数据访问节点将数据组1和数据组2中同一数据组属性列的数据合并到同一列将数据,得到第三数据集合为:步骤504,在第三数据集合中,对于多个数据组中的每个数据组,在数据组中添加对应第三数据集合的数据集合属性列的空数据,得到第四数据集合。仍以步骤503中的举例进行说明,由于在第三数据集合中,数据组1存在与第三数据集合的数据集合属性列中field6、field7以及field8对应的属性列,数据组2不存在与第三数据集合的数据集合属性列中field2、field3、field4以及field5对应的属性列,因此在第三数据集合中,数据组1对应field6、field7以及field8的位置未填入任何数据,数据组2对应field2、field3、field4以及field5的位置未填入任何数据。为了保证后续对列批量数据进行逻辑运算时不产生类型不匹配的错误,需要对第三数据集合的数据组中,添加对应第三数据集合的数据集合属性列的空数据(即在数据组1对应field6、field7和field8的位置,以及数据组2对应field2、field3、field4和field5的位置添加“null”值)。在第三数据集合的数据组中添加对应第三数据集合的数据集合属性列的空数据后,得到第四数据集合为:步骤505,在第四数据集合中,将同一列数据绑定为列数据,得到列批量数据组。步骤506,将列批量数据组插入目标事务对应的数据库表中。步骤507,清空数据缓存中存储的数据组。需要说明的是,由于本实施例中步骤501与步骤301类似、步骤502与步骤402类似,步骤505与步骤405类似,步骤506至步骤507与步骤303至步骤304类似,因此本实施例不再对步骤501至步骤502、步骤504至步骤507赘述说明。本申请实施例提供的数据合并方法,通过先将目标事务生成的数据组合并为列批量数据组,再将列批量数据组插入目标事务对应的数据库表中,由于服务器在只需对列批量数据组执行依次写入操作,即可将合并成该列批量数据组的的数据组全部写入宽表中,避免了服务器频繁解析sql语句的cpu消耗,以及频繁写入数据造成的磁盘i/o消耗,从而提高了服务器的整体服务性能。上述主要从数据访问节点的角度对本申请实施例提供的方案进行了介绍。可以理解的是,数据访问节点为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。结合本申请中所公开的实施例描述的各示例的单元及算法步骤,本申请实施例能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以对每个特定的应用来使用不同的方法来实现所描述的功能,但是这种实现不应认为超出本申请实施例的技术方案的范围。图6示出了本申请实施例所涉及的数据访问节点的一种可能的结构示意图。数据访问节点600包括收发器601、处理器602和存储器603。其中,处理器602也可以为控制器,图6中表示为“控制器/处理器602”。收发器601用于支持数据访问节点与上述实施例中的应用节点以及数据库节点之间收发信息。所述处理器602执行存储器603中存储的数据访问节点600的程序代码的功能。存储器603用于存储数据访问节点600的程序代码和数据。可以理解的是,图6仅仅示出了数据访问节点600的简化设计。在实际应用中,数据访问节点600可以包含任意数量的处理器,控制器,存储器,收发器等,而所有可以实现本申请实施例的数据访问节点都在本申请实施例的保护范围之内。用于执行本申请实施例上述数据访问节点的功能的处理器可以是中央处理器(centralprocessingunit,cpu),通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(application-specificintegratedcircuit,asic),现场可编程门阵列(fieldprogrammablegatearray,fpga)或者其他可编程逻辑器件、晶体管逻辑器件,硬件部件或者其任意组合。其可以实现或执行结合本申请实施例公开内容所描述的各种示例性的逻辑方框,模块和电路。所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,dsp和微处理器的组合等等。结合本申请实施例公开内容所描述的方法或者算法的步骤可以硬件的方式来实现,也可以是由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于随机存取存储器(randomaccessmemory,ram)、闪存、只读存储器(readonlymemory,rom)、可擦除可编程只读存储器(erasableprogrammablerom,eprom)、电可擦可编程只读存储器(electricallyeprom,eeprom)、寄存器、硬盘、移动硬盘、只读光盘(cd-rom)或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于asic中。另外,该asic可以位于数据访问节点中。当然,处理器和存储介质也可以作为分立组件存在于数据访问节点中。请参考图7,其示出了本申请一个实施例提供的数据合并装置的框图。该数据合并装置可以通过软件、硬件或者两者的结合实现成为数据访问节点的全部或者一部分。该数据合并装置可以包括:存储模块701、合并模块702、插入模块703和清空模块704。存储模块701,用于实现上述步骤301的功能。合并模块702,用于实现上述步骤302的功能。插入模块703,用于实现上述步骤303的功能。清空模块704,用于实现上述步骤304的功能。相关细节可结合参考上述方法实施例。在另一个可选的实施例中,上述存储模块701,用于实现步骤401和步骤501中至少一个步骤的功能。上述合并模块702,用于实现步骤402至步骤405和步骤502至步骤505中至少一个步骤的功能。上述插入模块703,用于实现步骤406和步骤506中至少一个步骤的功能。上述清空模块704,用于实现步骤407和步骤507中至少一个步骤的功能。该数据合并装置可以包括:转换模块705。转换模块705,用于实现上述步骤305的功能。需要说明的是,上述发送单元701和接收单元702可以通过数据访问节点的处理器执行存储器中的接收单元来实现,上述存储模块701可以通过数据访问节点的处理器执行存储器中的存储单元来实现,上述合并模块702可以通过数据访问节点的处理器执行存储器中的合并单元来实现,上述插入模块703可以通过数据访问节点的处理器执行存储器中的插入单元来实现,上述转换模块705可以通过数据访问节点的处理器执行存储器中的转换单元来实现。需要说明的是:上述实施例提供的数据合并装置在合并数据时,仅以上述各功能单元的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元完成,即将网络设备的内部结构划分成不同的功能单元,以完成以上描述的全部或者部分功能。另外,上述实施例提供的数据合并装置与数据合并方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1