CN111541512B - 数据的处理方法、终端设备、可读存储介质 - Google Patents
数据的处理方法、终端设备、可读存储介质 Download PDFInfo
- Publication number
- CN111541512B CN111541512B CN202010176370.6A CN202010176370A CN111541512B CN 111541512 B CN111541512 B CN 111541512B CN 202010176370 A CN202010176370 A CN 202010176370A CN 111541512 B CN111541512 B CN 111541512B
- Authority
- CN
- China
- Prior art keywords
- data
- lost
- matrix
- processed
- blocks
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0057—Block codes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1464—Management of the backup or restore process for networked environments
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0625—Power saving in storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/065—Replication mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0061—Error detection codes
Abstract
本申请公开了一种数据的处理方法、终端设备、可读存储介质,该方法包括:获取待处理数据;将待处理数据利用纠删码进行编码,以得到编码后的数据;若编码后的数据发生数据丢失,则利用纠删码进行解码,以恢复数据。通过上述方式,一方面能够节省备份数据所需空间,降低数据存储成本,另一方面减少对网络带宽的消耗,提高数据恢复的速度和效率。
Description
技术领域
本申请涉及数据处理领域,特别是涉及一种数据的处理方法、终端设备、可读存储介质。
背景技术
随着移动设备的不断增多,使得在规模和维度上产生越来越多的数据,而实时产生的数据也爆炸似的增长。而实时产生的大量数据在计算过程中,不可避免的存在的两个主要问题是故障和落后者,例如,采用流式计算的框架(如Spark)处理这些实时产生的数据时,需要更多的资源来缓存数据。因此,在长时间的缓存数据期间,有更大的可能会出现数据的丢失情况,则需要进行数据容错。
相关技术中采用复制策略进行数据容错,不足之处在于,复制策略会消耗大量的硬件资源,存储成本就会大大增加,此外,当再次需要丢失的数据时,需要从数据库或其他机器中读取备份的数据,这样也会加大通信消耗,对通信带宽也有较高的要求。
发明内容
为了解决上述问题,本申请提供一种数据的处理方法、终端设备、可读存储介质,一方面能够节省备份数据所需空间,降低数据存储成本,另一方面减少对网络带宽的消耗,提高数据恢复的速度和效率。
本申请采用的一种技术方案是提供一种数据的处理方法,该方法包括:获取待处理数据;将待处理数据利用纠删码进行编码,以得到编码后的数据;若编码后的数据发生数据丢失,则利用纠删码进行解码,以恢复数据。
其中,将待处理数据利用纠删码进行编码,以得到编码后的数据,包括:将待处理数据分割为N块数据块;将N块数据块利用纠删码进行编码,以得到M块校验数据块,其中,N和M为正整数;将N块数据块和M块校验数据块组成矩阵,以得到编码后的第一数据矩阵。
其中,若编码后的数据发生数据丢失,则利用纠删码进行解码,以恢复数据,包括:当编码后的数据发生数据丢失,则将丢失的数据所对应的行数据被修改为标志值;判断标志值与设定标志值是否一致;若是,则确定编码后的数据发生数据丢失,则利用纠删码进行解码,以恢复数据。
其中,当编码后的数据发生数据丢失,则将丢失的数据所对应的行数据被修改为标志值,包括:当编码后的数据发生数据丢失,则将丢失的数据所对应的行数据被设置为0,以得到数据丢失后的第二数据矩阵。
其中,利用纠删码进行解码,以恢复数据,包括:将第一数据矩阵与第二数据矩阵通过纠删码算法进行解码,以恢复丢失的数据。
其中,将待处理数据利用纠删码进行编码,以得到编码后的数据之前,包括:将待处理数据通过窗口函数划分到不同的弹性分布式数据集;将待处理数据利用纠删码进行编码,以得到编码后的数据,包括:将每个弹性分布式数据集中的数据利用纠删码进行编码,以得到编码后的数据。
其中,编码后的数据发生数据丢失,包括:对数据进行处理,以得到处理结果;判断处理结果是否在预设结果范围内;若否,则确定数据发生数据丢失。
其中,该方法还包括:若利用纠删码进行解码,以恢复数据的过程中存在无法恢复的数据,则删除掉无法恢复的数据。
本申请采用的另一种技术方案是提供一种终端设备,该终端设备包括处理器以及与处理器连接的存储器;存储器用于存储程序数据,处理器用于执行程序数据,以实现如上述方案中提供的任一方法。
本申请采用的另一种技术方案是提供一种可读存储介质,该可读存储介质用于存储程序数据,程序数据在被处理器执行时,用于实现如上述方案中提供的任一方法。
本申请的有益效果是:区别于现有技术的情况,本申请的一种数据的处理方法,通过纠删码对数据进行编码以及丢失后进行解码,以恢复数据,一方面能够节省备份数据所需空间,降低数据存储成本,另一方面减少对网络带宽的消耗,提高数据恢复的速度和效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。其中:
图1是本申请提供的数据的处理方法第一实施例的流程示意图;
图2是本申请提供的数据的处理方法第二实施例的流程示意图;
图3-图8为纠删码算法中编码及解码的示意图;
图9是本申请提供的数据的处理方法第三实施例的流程示意图;
图10是固定窗口的示意图;
图11是本申请提供的终端设备一实施例的结构示意图;
图12是本申请提供的可读存储介质一实施例的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。可以理解的是,此处所描述的具体实施例仅用于解释本申请,而非对本申请的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本申请相关的部分而非全部结构。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
参阅图1,图1是本申请提供的数据的处理方法第一实施例的流程示意图,该方法包括:
步骤11:获取待处理数据。
在一些实施例中,数据可以来源于已知的数据库,也可以来源于实时产生的。实时产生的数据可以以天、小时或者分钟为单位。
可以理解,获取待处理数据的数量根据实际需求进行获取,并不限制具体数量。根据不同的需求,获取不同类型的数据。
在一些实施例中,可以通过网络爬虫技术对目标内容进行获取,再根据获取的数据的时间先后进行排序,然后按照时间段进行处理。
步骤12:将待处理数据利用纠删码进行编码,以得到编码后的数据。
在一些实施例中,将待处理数据利用纠删码进行编码,以得到编码后的数据,然后再对编码后的数据进行其他处理。如对编码后的数据进行计算等。在利用纠删码进行编码时,可以将数据按照矩阵形式进行编码。
在一些实施例中,采用如下方式利用纠删码进行编码。采用纠删码中的局部修复码对数据进行编码,以在线生成冗余数据。如使用一个四元组(n,k,b,m)来对纠删码技术进行描述,其中,k代表对原始数据进行分割后得到的数据块的数目;n代表对原始数据的所有数据块进行编码之后得到的数据块的总数目;b代表将原始数据分割成数据块之后的数据块大小;m表示发生数据块丢失后,恢复出原始数据需要的冗余数据块的数目。当n=7,k=3时,局部修复码的生成矩阵如下:
数据分块并记数据为ο={ο1,ο2,ο3};冗余数据块为c={c1,c2,...,ο7};根据c=M·ο,可以得到如下的冗余数据块信息:
c1=ο1;c4=ο1+ο2;c7=ο1+ο2+ο3;
c2=ο2;c5=ο1+ο3;
c3=ο3;c6=ο2+ο3;
其中的加法操作都代表有限域上的异或操作,因此,每一个冗余的数据块可以通过其他两个数据块的异或操作得到,如下所示:
c1=c2+c4;c2=c5+c7;c4=c3+c7;c6=c1+c7;
c1=c6+c7;c3=c1+c5;c5=c1+c3;c6=c4+c5;
c1=c3+c5;c3=c4+c7;c4=c5+c6;c6=c2+c3;
c2=c3+c6;c4=c1+c2;c5=c4+c6;c7=c2+c5;
c2=c1+c4;c3=c2+c6;c5=c2+c7;c7=c1+c6;
c7=c3+c4;
从上述编码可以得出,局部修复码存在如下特性:冗余块之间存在线性相关性,即任一编码块均能被其他两个编码块线性相加生成。
步骤13:若编码后的数据发生数据丢失,则利用纠删码进行解码,以恢复数据。
纠删码可以是里德-所罗门编码的方式,也可以是局部修复码的方式。
在一些实施例中,在发生数据丢失的时候设置相应的机制,以发送数据丢失的提醒指令,接收到提醒指令时,则利用上述纠删码技术进行解码,以恢复数据。
在一些实施例中,当数据发生数据丢失,则将丢失的数据所对应的行数据修改为标志值,判断标志值与设定标志值是否一致;若是,则确定数据发生数据丢失,则利用纠删码进行解码,以恢复数据。可以理解,设定标志值可以根据实际需求设置,可以设置为空或者特定编码,以此作为标志值。
在一些实施例中,将待处理数据利用纠删码进行编码,以得到编码后的数据后,数据存活时间过短而还没有对数据进行处理时,则利用纠删码对数据进行解码恢复。造成数据存活时间过短可以是外部原因,例如,突然发生硬件故障、或者接受新的指令,也可以是其他原因。若还没有对数据进行处理,数据因此而丢失,则利用纠删码进行解码,以恢复数据。
在一些实施例中,将待处理数据利用纠删码进行编码,以得到编码后的数据后,编码后的数据发生数据丢失的确定方法包括:对编码后的数据进行处理,以得到处理结果;判断处理结果是否在预设结果范围内;若否,则确定数据发生数据丢失,则利用纠删码进行解码,以恢复数据。例如:待处理数据为数值7、8、9,利用纠删码进行编码,以得到编码后的数据后,对编码后的数据进行处理,这里对数据求和,得到的数值为15,而实际得到的数值应该为24,则确定数据发生数据丢失,利用纠删码进行解码,以恢复数据。
具体地,在上述利用纠删码进行编码后,若编码后的数据发生数据丢失,则利用纠删码进行解码,以恢复数据。如:把所有的冗余数据块以修复组的形式表示出来,修复组用符号r表示,修复组的集合用符号R表示,例如:c1=c2+c4,c4=c1+c2,c2=c1+c4,说明c1、c2和c4中的任意两个可以用来修复第三个,记为r1={c1,c2,c4},从上述公式中,可以得到总共存在7个修复组,R={r1,r2,r3,r4,r5,r6,r7}:
r1={c1,c2,c4};r2={c1,c3,c5};r3={c1,c6,c7};
r4={c2,c3,c6};r5={c2,c5,c7};r6={c3,c4,c7};
r7={c4,c5,c6};
在发生数据块丢失时,按照修复组与冗余数据块的对应关系,寻找可以修复丢失数据块的修复组,获取修复组中其他两个数据块,通过有限域上的异或运算进行修复即可,以此恢复数据。
可以理解,如果最后无论如何都不能修复丢失的数据块,那说明数据已经不可修复了。
在一些实施例中,若利用纠删码进行解码,以恢复数据的过程中存在无法恢复的数据,则删除掉无法恢复的数据。
区别于现有技术的情况,本申请的一种数据的处理方法,该方法包括:获取待处理数据;将待处理数据利用纠删码进行编码,以得到编码后的数据;若编码后的数据发生数据丢失,则利用纠删码进行解码,以恢复数据。通过上述方式,通过纠删码对数据进行编码以及丢失后进行解码,以恢复数据,一方面能够节省备份数据所需空间,降低数据存储成本,另一方面减少对网络带宽的消耗,提高数据恢复的速度和效率。
参阅图2,图2是本申请提供的数据的处理方法第二实施例的流程示意图,该方法包括:
步骤21:获取待处理数据。
步骤22:将待处理数据分割为N块数据块。
在一些实例中,将待处理数据分割为N块数据块,其中每块数据块大小相同,N为正整数。
步骤23:将N块数据块利用纠删码进行编码,以得到M块校验数据块。其中,M为正整数。
步骤24:将N块数据块和M块校验数据块组成矩阵,以得到编码后的第一数据矩阵。
参阅图3,对步骤23-24进行说明:
最左侧的B是纠删码中的编码矩阵,D是N块数据块形成的矩阵,将N块数据块与纠删码中编码矩阵相乘,以得到M块校验数据块,即图3最右侧的C包含的C1、C2、C3。
然后将N块数据块和M块校验数据块组成矩阵,以得到编码后的第一数据矩阵,即图3中最右侧D和C形成的矩阵。
可以理解,最左边的编码矩阵B需要满足任意n*n子矩阵可逆。
在一些实施例中,为方便数据存储,编码矩阵上部是单位阵(n行n列),下部是m行n列矩阵。下部矩阵可以选择范德蒙德矩阵或柯西矩阵。
步骤25:当编码后的数据发生数据丢失,则将丢失的数据所对应的行数据设置为0,以得到数据丢失后的第二数据矩阵。
在一些实施例中,当编码后的数据发生数据丢失,则将丢失的数据所对应的行数据设置为0,以得到数据丢失后的第二数据矩阵。
如图4所示,最右侧D和C形成的矩阵发生D1、D3、C2数据丢失后,将丢失的数据所对应的行数据被设置为0,表示该数据丢失,然后将其删除,得到图7所示的Survivors(幸存者)矩阵,矩阵中剩余数据D2、D3、D5、C1、C3,即该Survivors(幸存者)矩阵为第二数据矩阵。
步骤26:将第一数据矩阵与第二数据矩阵通过纠删码算法进行解码,以恢复丢失的数据。
继续参阅图5,在得到第二数据矩阵后,相应的编码矩阵B根据运算会变为编码矩阵B′。即在编码矩阵B中去掉丢失数据块以及该数据块对应的行。即B矩阵变为了n*n维度的方阵,C与D组合的矩阵由(n+m)行变为n行。
参阅图6,求出编码矩阵B′的逆矩阵B′-1。
参阅图7所示,采用对等式两边同时乘上B’的逆矩阵B′-1,因为B′-1*B=I单位矩阵,所以我们就取得了如图8所示的等式,因逆矩阵B′-1和Survivors(幸存者)矩阵为已知的,所以求得了原始矩阵D。
至此,丢失的数据得以恢复。
在本实施例中,通过对数据进行编码及丢失时进行解码,以恢复丢失的数据,以实现对数据容错的策略。
参阅图9,图9是本申请提供的数据的处理方法第三实施例的流程示意图,本实施例基于Spark Streaming框架下的流式计算的数据的处理方法,该方法包括:
步骤91:获取待处理数据。
在一些实施例中,获取待处理数据后将待处理数据导入Spark Streaming框架。
在一应用场景中,基于流式计算框架进行数据处理,流式计算框架可以是商业级流式计算平台、开源流式计算框架、公司为支持自身业务开发的流式计算框架。
步骤92:将待处理数据通过窗口函数划分到不同的弹性分布式数据集。
在一些实施例中,窗口函数支持基于无限大窗口的聚合以及对一个特定的窗口的聚合。例如,需要统计在过去的1分钟内有多少用户点击了某个的网页,可以通过定义一个窗口来收集最近1分钟内的数据,并对这个窗口内的数据进行计算。
窗口函数支持的窗口聚合主要是两种:Window聚合和Over聚合。Window聚合支持两种时间属性定义窗口:Event Time(事件时间)和Processing Time(处理时间)。每种时间属性类型支持三种窗口类型:固定窗口、滑动窗口和会话窗口。
Event Time(事件时间)表示数据的最原始的创建时间。
Processing Time(处理时间)表示对事件进行处理的本地系统时间。
固定窗口:将时间划分为固定长度的时间片,标定在内存中。
滑动窗口:其具有固定的长度和周期。如果其周期比长度小,那么窗口之间就会出现重叠部分。如果周期等于长度,那么就是一个固定窗口。如果周期大于长度,那么会得到一个随时间推移的数据子集。
会话窗口根据活动会话对元素进行分组。与固定窗口和滑动窗口相比,会话窗口不会重叠,也没有固定的开始和结束时间。相反,会话窗口在一段时间内不接收元素时关闭,即,当一段不活跃的间隙发生时,当前会话关闭,随后的元素被分配给新的会话。
可以理解,根据不同的需求,选择相应的窗口函数进行数据处理。
在一实施例中,窗口函数按照事件时间形成多个窗口,如每五分钟为一个窗口,获取待处理数据的最原始的创建时间,根据创建时间相应的放置于对应窗口。因实际处理数据时,数据是实时获取的。
将每个元素分配到一个指定大小的窗口中。通常固定窗口有一个固定的大小,并且不会出现重叠。例如:如果指定了一个5分钟大小的固定窗口,无限流的数据会根据时间划分成[0:00-0:05)、[0:05,0:10)、[0:10,0:15)等窗口。参阅图10,图10展示了一个大小划分为30秒的固定窗口的示意图。
可以理解,因需求不同,窗口的类型不同。例如用户需要在特定时间段内获取数据,则可以使用会话窗口来处理数据;当用户对每个时间段的数据需要进行多次处理时,则可以使用滑动窗口来处理数据,使一个数据属于多个窗口。当用户对每个时间段的数据需要无需进行多次处理时,则可以使用固定窗口来处理数据。
通过窗口函数处理后的数据,可以按照每个窗口中的数据分成不同的弹性分布式数据集。
弹性分布式数据集RDD(Resilient Distributed Dataset)是Spark的最基本抽象,是对分布式内存的抽象使用,实现了以操作本地集合的方式来操作分布式数据集的抽象实现。RDD是Spark最核心的东西,它表示已被分区,不可变的并能够被并行操作的数据集合,不同的数据集格式对应不同的RDD实现。RDD必须是可序列化的。RDD可以cache到内存中,每次对RDD数据集的操作之后的结果,都可以存放到内存中,下一个操作可以直接从内存中输入,省去了MapReduce大量的磁盘IO操作。
步骤93:将每个弹性分布式数据集中的数据利用纠删码进行编码,以得到编码后的数据。
在一些实施例中,将每个数据集中的数据进行分块,然后利用纠删码进行编码,以得到编码后的数据。编码后的数据中包括原始数据和校验数据。
步骤94:若编码后的数据发生数据丢失,则利用纠删码进行解码,以恢复数据。
步骤93-94的技术方案可以按照上述实施例中的纠删码进行编码以及数据丢失时进行解码,这里不做赘述。
在一些实施例中,通过以下方式判断数据是否丢失。
当数据集中的数据发生数据丢失,则将丢失的数据所对应的行数据修改为标志值,判断标志值与设定标志值是否一致;若是,则确定数据集中的数据发生数据丢失,则利用纠删码方式对数据进行恢复。可以理解,设定标志值可以根据实际需求设置,可以设置为空或者特定编码,以此作为标志值。
基于本实施的方法,验证了40条、400条和800条数据丢失的情况下,运用此本实施的方法恢复出原始数据的时间。
参阅表1,表1为40条左右数据丢失的情况下,编码到解码过程恢复出原始数据的时间。
数据流条数 | 39 | 38 | 39 | 40 | 40 | 39 | 41 |
时间(ms) | 1723 | 1135 | 971 | 942 | 929 | 892 | 980 |
参阅表2,表2为400条左右数据丢失的情况下,编码到解码过程恢复出原始数据的时间。
数据流条数 | 391 | 402 | 398 | 408 | 391 | 409 | 397 |
时间(ms) | 2177 | 2242 | 2045 | 2145 | 1993 | 2072 | 2363 |
参阅表3,表3为800条左右数据丢失的情况下,编码到解码过程恢复出原始数据的时间。
数据流条数 | 800 | 809 | 802 | 803 | 795 | 800 | 797 |
时间(ms) | 3715 | 3493 | 3534 | 3748 | 3383 | 3517 | 3337 |
可以理解,上述表格的数据只是展示数据编解码的时间,并不限制数据的条数。
通过上述方法以及在数据集中数据编解码的时间表格,能够看出数据恢复的速度和效率得到显著提高,且通过本方法能够减少直接从数据源中直接读取数据所消耗的网络带宽。
参阅图11,图11是本申请提供的终端设备一实施例的结构示意图,该终端设备110包括处理器111以及与处理器111连接的存储器112;存储器112用于存储程序数据,处理器111用于执行程序数据,以实现以下的方法步骤:
获取待处理数据;将待处理数据利用纠删码进行编码,以得到编码后的数据;若编码后的数据发生数据丢失,则利用纠删码进行解码,以恢复数据。
可以理解,处理器111用于执行程序数据,还用于实现上述任一实施例方法。
参阅图12,图12是本申请提供的可读存储介质一实施例的结构示意图,可读存储介质120用于存储程序数据121,程序数据121在被处理器执行时,用于实现以下的方法步骤:
获取待处理数据;将待处理数据利用纠删码进行编码,以得到编码后的数据;若编码后的数据发生数据丢失,则利用纠删码进行解码,以恢复数据。
可以理解,程序数据121在被处理器执行时,还用于实现上述任一实施例方法。
在本申请所提供的几个实施方式中,应该理解到,所揭露的方法以及设备,可以通过其它的方式实现。例如,以上所描述的设备实施方式仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施方式方案的目的。
另外,在本申请各个实施方式中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
上述其他实施方式中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施方式所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本申请的实施方式,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。
Claims (3)
1.一种基于流式计算框架的数据的处理方法,其特征在于,所述方法包括:
获取待处理数据;
将所述待处理数据通过窗口函数划分到不同的弹性分布式数据集;
将每个所述弹性分布式数据集中的数据分割为N块数据块;
将所述N块数据块利用纠删码进行编码,以得到M块校验数据块,其中,N和M为正整数;
将所述N块数据块和所述M块校验数据块组成矩阵,以得到编码后的第一数据矩阵;
若使用窗口函数处理数据时,对所述数据进行处理,以得到处理结果;判断所述处理结果是否在预设结果范围内;若否,则确定所述数据发生数据丢失;
以及当编码后的所述数据发生数据丢失,则将丢失的所述数据所对应的行数据设置为0,以得到所述数据丢失后的第二数据矩阵;
判断所述标志值0与设定标志值是否一致;
若是,则进一步确定所述数据发生数据丢失,则将所述第一数据矩阵与所述第二数据矩阵通过纠删码算法进行解码,以恢复丢失的所述数据;
若利用纠删码进行解码,以恢复所述数据的过程中存在无法恢复的数据,则删除掉无法恢复的所述数据。
2.一种终端设备,其特征在于,所述终端设备包括处理器以及与所述处理器耦接的存储器;
其中,所述存储器用于存储程序数据,所述处理器用于执行所述程序数据,以实现如权利要求1所述的方法。
3.一种可读存储介质,其特征在于,所述可读存储介质用于存储程序数据,所述程序数据在被处理器执行时,用于实现如权利要求1所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010176370.6A CN111541512B (zh) | 2020-03-13 | 2020-03-13 | 数据的处理方法、终端设备、可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010176370.6A CN111541512B (zh) | 2020-03-13 | 2020-03-13 | 数据的处理方法、终端设备、可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111541512A CN111541512A (zh) | 2020-08-14 |
CN111541512B true CN111541512B (zh) | 2023-06-20 |
Family
ID=71976733
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010176370.6A Active CN111541512B (zh) | 2020-03-13 | 2020-03-13 | 数据的处理方法、终端设备、可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111541512B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112052114A (zh) * | 2020-08-27 | 2020-12-08 | 江苏超流信息技术有限公司 | 数据存储及恢复方法、编解码器及编解码系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107276722A (zh) * | 2017-06-21 | 2017-10-20 | 北京奇艺世纪科技有限公司 | 一种基于udp的数据传输方法和系统 |
CN108304264A (zh) * | 2018-01-22 | 2018-07-20 | 华中科技大学 | 一种基于spark流式计算的纠删码归档方法 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102156943A (zh) * | 2011-04-18 | 2011-08-17 | 徐蔚 | 一种通过嵌入感动芯引擎的移动终端实现即时交易的信息处理系统及其方法 |
CN104461781B (zh) * | 2014-12-01 | 2017-10-31 | 华中科技大学 | 一种基于纠删码的数据块重建方法 |
CN104850468B (zh) * | 2015-05-31 | 2018-04-27 | 上海交通大学 | 基于校验矩阵的纠删码解码方法 |
CN106126643B (zh) * | 2016-06-23 | 2018-01-02 | 北京百度网讯科技有限公司 | 流式数据的分布式处理方法和装置 |
US10628424B2 (en) * | 2016-09-15 | 2020-04-21 | Oracle International Corporation | Graph generation for a distributed event processing system |
CN106844098B (zh) * | 2016-12-29 | 2020-04-03 | 中国科学院计算技术研究所 | 一种基于十字交叉纠删编码的快速数据恢复方法及系统 |
CN107656832B (zh) * | 2017-09-18 | 2019-10-25 | 华中科技大学 | 一种低数据重建开销的纠删码方法 |
CN110212923B (zh) * | 2019-05-08 | 2020-11-17 | 西安交通大学 | 一种基于模拟退火的分布式纠删码存储系统数据修复方法 |
CN110502365B (zh) * | 2019-07-11 | 2024-03-01 | 平安科技(深圳)有限公司 | 数据存储及恢复的方法、装置及计算机设备 |
CN110532126B (zh) * | 2019-07-26 | 2020-10-27 | 西安交通大学 | 纠删码存储系统数据快速恢复方法、装置及存储介质 |
-
2020
- 2020-03-13 CN CN202010176370.6A patent/CN111541512B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107276722A (zh) * | 2017-06-21 | 2017-10-20 | 北京奇艺世纪科技有限公司 | 一种基于udp的数据传输方法和系统 |
CN108304264A (zh) * | 2018-01-22 | 2018-07-20 | 华中科技大学 | 一种基于spark流式计算的纠删码归档方法 |
Non-Patent Citations (2)
Title |
---|
"分布式存储系统中数据快速修复的纠删码";柳青;《中国优秀硕士学位论文全文数据库;全文 * |
唐英杰."纠删码存储系统中基于网络计算的高效故障重建方法".《计算机研究与发展》.2019,全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN111541512A (zh) | 2020-08-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9141679B2 (en) | Cloud data storage using redundant encoding | |
CN105684316B (zh) | 一种Polar码编码方法、装置 | |
WO2021139251A1 (zh) | 服务系统异常检测方法、装置、计算机设备和存储介质 | |
US8775860B2 (en) | System and method for exact regeneration of a failed node in a distributed storage system | |
WO2023151290A1 (zh) | 一种数据编码方法、装置、设备及介质 | |
CN114064347B (zh) | 一种数据存储方法、装置、设备及计算机可读存储介质 | |
US20160285476A1 (en) | Method for encoding and decoding of data based on binary reed-solomon codes | |
US20130179413A1 (en) | Compressed Distributed Storage Systems And Methods For Providing Same | |
EP2854033A1 (en) | Data recovery method, data recovery device, and distributed storage system | |
Smith et al. | Local predecoder to reduce the bandwidth and latency of quantum error correction | |
CN113391946B (zh) | 一种分布式存储中的纠删码的编解码方法 | |
CN111541512B (zh) | 数据的处理方法、终端设备、可读存储介质 | |
Venkatesan et al. | Effect of codeword placement on the reliability of erasure coded data storage systems | |
US9529675B2 (en) | Data recovery method, data recovery device and distributed storage system | |
CN108614749B (zh) | 一种数据处理方法及装置 | |
CN107153661A (zh) | 一种基于hdfs系统的数据的存储、读取方法及其装置 | |
CN115098295A (zh) | 数据局部恢复方法、设备及存储介质 | |
CN115408350A (zh) | 日志压缩、日志还原方法、装置、计算机设备和存储介质 | |
CN115113819A (zh) | 一种数据存储的方法、单节点服务器及设备 | |
Iliadis | Reliability evaluation of erasure-coded storage systems with latent errors | |
Fan et al. | Adaptive-length coding of image data for low-cost approximate storage | |
CN116248129A (zh) | 一种容错的数据分段压缩方法、恢复方法、设备及系统 | |
CN111224747A (zh) | 可降低修复带宽和磁盘读取开销的编码方法及其修复方法 | |
US20230004300A1 (en) | System, Method, and Computer Program Product for Generating a Data Storage Server Distribution Pattern | |
CN112000509B (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 |