一种数据更新方法、装置、服务器及存储介质制造方法及图纸

技术编号:21453881 阅读:22 留言:0更新日期:2019-06-26 04:45
本发明专利技术公开了一种数据更新方法、装置、服务器及存储介质。该方法包括:接收至少一条待更新数据的更新指令;根据各所述更新指令,确定各所述待更新数据的更新顺序;按照所述更新顺序对各所述待更新数据进行更新。通过上述技术方案,按照一定的顺序对待更新数据进行更新,避免了直接根据更新指令更新时数据的重复加载和写入,提高了数据更新效率。

【技术实现步骤摘要】
一种数据更新方法、装置、服务器及存储介质
本专利技术实施例涉及大数据
,尤其涉及一种数据更新方法、装置、服务器及存储介质。
技术介绍
随着大数据技术的发展,出现了与传统的行存储不同的存储方式,列存储。列存储将数据表以列为单位进行存储,各列的数据都按照数据规模划分为一个或多个数据区块存储在磁盘中,同一列的数据为相同类型。例如,一个数据表有3列数据,这3列从左至右依次是int(整型)、varchar(字符型)和bool(布尔型),该表有100条(行)记录,则第一列数据都是int类型。列存储利于数据的压缩处理,并具有优越的查询性能,在大数据领域的应用广泛。然而,在对列存储的数据进行更新时,由于同一列数据可能存储在不同的数据区块,同一条(行)记录的数据也存储在不同的数据区块,一次数据更新往往需要从多个数据区块修改数据,每次更新都要加载数据区块到内存进行更新,再将更新后的数据区块写入对应的存储空间(磁盘块),尤其在待更新的数据较多时,会有频繁的加载和写入操作,列存储数据的更新效率低下。
技术实现思路
本专利技术提供了一种数据更新方法、装置、服务器及存储介质,通过按照一定的顺序对待更新数据进行更新,避免了直接根据更新指令进行更新时数据的重复加载和写入,提高了数据更新效率。第一方面,本专利技术实施例提供了一种数据更新方法,包括:接收至少一条待更新数据的更新指令;根据各所述更新指令,确定各所述待更新数据的更新顺序;按照所述更新顺序对各所述待更新数据进行更新。进一步的,所述更新指令包括:待更新数据的行标识及目标更新值。进一步的,根据各所述更新指令,确定各所述待更新数据的更新顺序,包括:将各所述更新指令存储至设定缓存区中;基于各所述更新指令中的行标识,由小到大对所述设定缓存区中的各所述更新指令排序;根据各所述更新指令在所述设定缓存区中的排列顺序确定相应待更新数据的更新顺序。进一步的,根据各所述更新指令,确定各所述待更新数据的更新顺序,包括:提取各所述更新指令中包括的相应待更新数据的行标识;基于各所述行标识,将相应更新指令由小到大存储至设定缓存区中;根据各所述更新指令在所述设定缓存区中的排列顺序确定相应待更新数据的更新顺序。进一步的,所述至少一条待更新数据存储在列存储表的至少一个数据区块中;相应的,按照所述更新顺序对各所述待更新数据进行更新,包括:按照所述更新顺序选取当前待更新数据;根据所述当前待更新数据的行标识,确定所述当前待更新数据在列存储表中的所属数据区块;如果所属数据区块已加载至内存中,则将内存中的所属数据区块中的当前待更新数据更替为相应更新指令中的目标更新值;如果所属数据区块未加载至内存中,则将已加载至内存中的数据区块重新写入列存储表对应的存储空间,并将所述所属数据区块加载至内存中,将所述所属数据区块中的待更新数据更替为相应更新指令中的目标更新值;返回当前待更新数据的选取操作,直至所有待更新数据均已被选取。第二方面,本专利技术实施例提供了一种数据更新装置,包括:指令接收模块,用于接收至少一条待更新数据的更新指令;顺序确定模块,用于根据各所述更新指令,确定各所述待更新数据的更新顺序;更新模块,用于按照所述更新顺序对各所述待更新数据进行更新。进一步的,所述更新指令包括:待更新数据的行标识及目标更新值。进一步的,所述顺序确定模块,包括:第一存储单元,用于将各所述更新指令存储至设定缓存区中;排序单元,用于基于各所述更新指令中的行标识,由小到大对所述设定缓存区中的各所述更新指令排序;第一顺序确定单元,用于根据各所述更新指令在所述设定缓存区中的排列顺序确定相应待更新数据的更新顺序。第三方面,本专利技术实施例提供了一种服务器,包括:一个或多个处理器;存储装置,用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如第一方面所述的数据更新方法。第四方面,本专利技术实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如第一方面所述的数据更新方法。本专利技术实施例提供了一种数据更新方法、装置、服务器及存储介质,该方法包括:接收至少一条待更新数据的更新指令;根据各所述更新指令,确定各所述待更新数据的更新顺序;按照所述更新顺序对各所述待更新数据进行更新。通过上述技术方案,按照一定的顺序对相邻的待更新数据进行集中更新,避免了直接按照更新指令更新时需要重复加载和写入的问题,从而减少数据加载和写入的次数,提高了数据更新效率。附图说明图1为本专利技术实施例一提供的一种数据更新方法的流程图;图2为本专利技术实施例一中的数据区块的示意图;图3为本专利技术实施例二提供的一种数据更新方法的流程图;图4为本专利技术实施例四提供的一种数据更新装置的结构示意图;图5为本专利技术实施例五提供的一种服务器的硬件结构示意图。具体实施方式下面结合附图和实施例对本专利技术作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本专利技术,而非对本专利技术的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本专利技术相关的部分而非全部结构。实施例一图1为本专利技术实施例一提供的一种数据更新方法的流程图,本实施例可适用于对列存储数据进行更新的情况。具体的,该数据更新方法可以由数据更新装置执行,该数据更新装置可以通过软件和/或硬件的方式实现,并集成在服务器中。进一步的,服务器包括但不限定于:工业集成服务器、系统后台服务器以及云端服务器。图2为本专利技术实施例一中的数据区块的示意图。本实施例中的待更新数据是指列存储数据中需要更新的数据。列存储是将数据表以列为单位进行存储,相同列的数据按照数据规模存储在一个或多个数据区块中。如图2所示,每个方框代表一个数据区块,左边的两个方框中存储的是数据表C1列的数据,右边的两个方框中为数据表C2列的数据,最左侧的数字为数据的行标识。示例性的,每一列都有4096条数据,每2048条数据存储在一个数据区块内。当需要更新C1列的第100条数据时,会将C1列的第100条数据所在的数据区块(图2左边靠上的方框)加载到内存中进行更新,更新后再将该数据区块重新写入对应的存储空间(刷盘)。之后当再次对同一数据区块中的某个数据进行更新时,存在该数据区块被重复加载和写入的问题,影响了数据的更新效率。参考图1,该方法具体包括如下步骤:S110、接收至少一条待更新数据的更新指令。具体的,待更新数据是指列存储数据中需要更新的数据。相同列的数据按照数据规模存储在一个或多个数据区块中。例如,一个数据区块可存储一列中的2048条数据,则当一列数据的数据规模小于2048时,可存储在一个数据区块中,数据规模大于2048时,则每2048条存储为一个数据区块。更新指令是指对待更新数据进行更新的指令,可以由用户输入,或者由服务器自动生成。例如,列存储数据为对环境的各项指标(温度、湿度、气压等)的监测数据,在传感器监测到某项或多项的指标发生改变时,服务器可根据检测到的变化生成更新指令,用以对列存储数据中相应的数据进行更新,需要更新的数据即为待更新数据。又如,列存储数据为所有员工的个人信息及业绩的统计数据,当个人信息或者业绩数据需要更新时,可由用户输入更新指令等。示例性的,更新指令的形式如下:UPDATETABLETSETC1=112,C2=11本文档来自技高网...

【技术保护点】
1.一种数据更新方法,其特征在于,包括:接收至少一条待更新数据的更新指令;根据各所述更新指令,确定各所述待更新数据的更新顺序;按照所述更新顺序对各所述待更新数据进行更新。

【技术特征摘要】
1.一种数据更新方法,其特征在于,包括:接收至少一条待更新数据的更新指令;根据各所述更新指令,确定各所述待更新数据的更新顺序;按照所述更新顺序对各所述待更新数据进行更新。2.根据权利要求1所述的方法,其特征在于,所述更新指令包括:待更新数据的行标识及目标更新值。3.根据权利要求2所述的方法,其特征在于,根据各所述更新指令,确定各所述待更新数据的更新顺序,包括:将各所述更新指令存储至设定缓存区中;基于各所述更新指令中的行标识,由小到大对所述设定缓存区中的各所述更新指令排序;根据各所述更新指令在所述设定缓存区中的排列顺序确定相应待更新数据的更新顺序。4.根据权利要求2所述的方法,其特征在于,根据各所述更新指令,确定各所述待更新数据的更新顺序,包括:提取各所述更新指令中包括的相应待更新数据的行标识;基于各所述行标识,将相应更新指令由小到大存储至设定缓存区中;根据各所述更新指令在所述设定缓存区中的排列顺序确定相应待更新数据的更新顺序。5.根据权利要求2-4任一项所述的方法,其特征在于,所述至少一条待更新数据存储在列存储表的至少一个数据区块中;相应的,按照所述更新顺序对各所述待更新数据进行更新,包括:按照所述更新顺序选取当前待更新数据;根据所述当前待更新数据的行标识,确定所述当前待更新数据在列存储表中的所属数据区块;如果所属数据区块已加载至内存中,则将内存中的所属数据区块中的当前待更新数据更替为相应更新指令中的...

【专利技术属性】
技术研发人员:叶杰敏
申请(专利权)人:上海达梦数据库有限公司
类型:发明
国别省市:上海,31

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

1