CN115470186A - 一种数据切片方法、装置和*** - Google Patents
一种数据切片方法、装置和*** Download PDFInfo
- Publication number
- CN115470186A CN115470186A CN202210910741.8A CN202210910741A CN115470186A CN 115470186 A CN115470186 A CN 115470186A CN 202210910741 A CN202210910741 A CN 202210910741A CN 115470186 A CN115470186 A CN 115470186A
- Authority
- CN
- China
- Prior art keywords
- character
- value
- target
- slice
- data stream
- 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.)
- Pending
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/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/174—Redundancy elimination performed by the file system
- G06F16/1748—De-duplication implemented within the file system, e.g. based on file segments
- G06F16/1752—De-duplication implemented within the file system, e.g. based on file segments based on file chunks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/14—Details of searching files based on file metadata
- G06F16/148—File search processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/90335—Query processing
- G06F16/90344—Query processing by using string matching techniques
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Library & Information Science (AREA)
- Character Input (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据切片方法、装置和***,其中,数据切片方法包括获取待切片的目标数据流;从目标数据流中获取切片起始位置的目标字符,并从预设数组中查找与目标字符相对应的数值,其中,在预设数组中,至少部分字符对应的数值不相同;及根据目标字符对应的数值,确定切片长度,并从切片起始位置开始,按照切片长度,对目标数据流进行切片。可以提高重删率。
Description
技术领域
本发明涉及性能测试领域,具体涉及一种数据切片方法、装置和***。
背景技术
随着数据备份技术的成熟和广泛应用,备份数据量在最近几年中呈现出爆发性的增长。研究表明,大型企业中的备份数据每年以40%到60%的速度增长,许多公司的备份数据规模每年会增加一倍甚至更多。这些备份数据中,存在很多相同的数据块,这大大增加了企业的成本和存储空间浪费。
目前,可以通过数据重删技术将部分重复数据删除,以达到减少存储容量的目的。其中,数据重删技术是指将数据流或者文件根据某种方式进行切片(又称为切块),以数据块为单位进行hash计算,以此找到相同的数据块进行删除。通过数据重删技术可以压缩存储***的重复数据,减少存储容量。目前该技术广泛应用于备份***。
当前,一些技术采用定长切片的方法对数据流进行切片。其中,定长切片就是定义一个固定的切片长度(比如2个字节为一个数据块),然后按照定义的切片长度,将数据流分割为相同长度的数据块进行存储。这种切片方法对于一些新增、删除场景下的数据流来说,重删率不高。比如数据流A相对于数据流B来说,只是在数据流B的前端新增了一个字符,但通过定长切片的方法对这两个数据流进行切片时,切出的数据块差别较大,重删率不高。
发明内容
有鉴于此,本发明实施方式提供了一种数据切片方法、数据切片装置、数据切片***和计算机可读存储介质,可以提高数据重删率。
本发明一方面提供了一种数据切片方法,所述方法包括:
获取待切片的目标数据流;
从所述目标数据流中获取切片起始位置的目标字符,并从预设数组中查找与所述目标字符相对应的数值,其中,在所述预设数组中,至少部分字符对应的数值不相同;及
根据所述目标字符对应的数值,确定切片长度,并从所述切片起始位置开始,按照所述切片长度,对所述目标数据流进行切片。
在一些实施例中,所述从预设数组中查找与所述目标字符相对应的数值,包括:
从预设字符表中查找所述目标字符的字符编号,其中,所述预设字符表包括字符和字符编号的对应关系,不同字符的字符编号不同;
将所述目标字符的字符编号作为索引,从所述预设数组中查找与所述目标字符相对应的数值。
在一些实施例中,所述根据所述目标字符相对应的数值,确定切片长度,包括:
对所述目标字符相对应的数值进行运算,得到对应的中间值;
若得到的中间值小于片长阈值,针对所述切片起始位置后的字符依次执行如下操作,直至确定切片结束位置,并将所述切片结束位置和所述切片起始位置之间的长度作为所述切片长度:
从所述预设数组中查找与所述字符相对应的数值;
对查找到的数值进行运算,得到对应的中间值;
若得到的中间值大于或等于所述片长阈值,将所述字符所在位置确定为所述切片结束位置。
在一些实施例中,针对从所述预设数组中查找到的任一数值,基于如下方法确定对应的中间值:
将该数值与预设变量的值进行异或运算,得到第一中间值;
将所述第一中间值减去预设值,得到第二中间值;
将所述第一中间值和所述第二中间值进行异或运算,得到对应的中间值。
在一些实施例中,在每次计算得到所述第一中间值后,所述方法还包括:
将所述预设变量的值更新为所述第一中间值,以便于在下一次将所述预设变量的值与从所述预设数组中查找的数值进行异或运算时,基于更新后所述预设变量的值,与从所述预设数组中查找的数值进行异或运算。
在一些实施例中,在获取到待切片的所述目标数据流后,所述方法还包括:
将所述目标数据流中最后一个字符所在的位置记录为字符结束位置;
针对所述目标数据流中的任一所述字符,在该字符对应的中间值小于所述片长阈值的情况下,判断该字符所在位置是否为所述字符结束位置,若是,将所述字符结束位置和所述切片起始位置之间的长度作为所述切片长度。
在一些实施例中,在对所述目标字符相对应的数值进行运算,得到对应的中间值后,所述方法还包括:
若得到的中间值大于或等于所述片长阈值,将所述目标字符作为待切割的数据块,对所述目标数据流进行切片。
本发明另一方面还提供了一种数据切片装置,所述装置包括:
数据获取模块,用于获取待切片的目标数据流;
查找模块,用于从所述目标数据流中获取切片起始位置的目标字符,并从预设数组中查找与所述目标字符相对应的数值,其中,在所述预设数组中,至少部分字符对应的数值不相同;及
切片模块,用于根据所述目标字符相对应的数值,确定切片长度,并从所述切片起始位置开始,按照所述切片长度,对所述目标数据流进行切片。
本发明另一方面还提供了一种计算机可读存储介质,所述计算机可读存储介质用于存储计算机程序,所述计算机程序被处理器执行时,实现如上所述的方法。
本发明另一方面还提供了一种数据切片***,所述数据切片***包括处理器和存储器,所述存储器用于存储计算机程序,所述计算机程序被所述处理器执行时,实现如上所述的方法。
在本申请的一些实施例中,从目标数据流中获取切片起始位置的目标字符,并从预设数组中查找与目标字符相对应的数值,然后根据目标字符对应的数值,确定切片长度,来对目标数据流进行切片。如此,可以对目标数据流进行变长切片,进而可以在数据新增、删除等场景下,降低新增、删除的字符对于数据切片的影响,有效提高重删率。
附图说明
通过参考附图会更加清楚的理解本发明的特征和优点,附图是示意性的而不应理解为对本发明进行任何限制,在附图中:
图1示出了一些技术中的数据切片的示意图;
图2示出了本申请的一个实施例提供的数据切片方法的流程示意图;
图3示出了本申请的一个实施例提供的一个目标数据流的示意图;
图4示出了本申请的一个实施例提供数据切片的示意图;
图5示出了本申请的一个实施例提供的数据切片的流程图;
图6示出了本申请的另一个实施例提供的数据切片的流程图;
图7示出了本申请的另一个实施例提供的数据切片的流程图;
图8示出了本申请的一个实施例提供的数据切片装置的模块示意图;
图9示出了本申请的一个实施例提供的数据切片***的示意图。
具体实施方式
为使本发明实施方式的目的、技术方案和优点更加清楚,下面将结合本发明实施方式中的附图,对本发明实施方式中的技术方案进行清楚、完整地描述,显然,所描述的实施方式是本发明一部分实施方式,而不是全部的实施方式。基于本发明中的实施方式,本领域技术人员在没有作出创造性劳动前提下所获得的所有其它实施方式,都属于本发明保护的范围。
请参见图1,为一些技术中的数据切片的示意图。图1中,数据流B相对数据流A来说,新增了灰色框内的字符。在采用定长切片(每3个字符为一个数据块)的方法对数据流B和数据流A进行切片时,受数据流B中新增的字符影响,从数据流B和数据流A切割出的数据块中,相同的数据块较少。存储***需要为数据流A和数据流B分别分配存储空间。虽然数据流B和数据流A中相同的字符较多,但重删率却较低,不利用压缩存储空间。
为此,本申请提供一种数据切片方法,可以提高重删率。本申请提供的数据切片方法可应用电子设备。电子设备包括但不限于平板电脑、台式电脑、笔记本电脑、服务器。请参阅图2,为本申请的一个实施例提供的数据切片方法的流程示意图。数据切片方法包括步骤S21至步骤S23。
步骤S21,获取待切片的目标数据流。
在一些实施例中,目标数据流包括待存储至存储***中的内容,比如文件数据流、视频图像数据流。
步骤S22,从目标数据流中获取切片起始位置的目标字符,并从预设数组中查找与目标字符相对应的数值,其中,在预设数组中,至少部分字符对应的数值不相同。
在一些实施例中,切片起始位置指对目标数据流进行切片时的起始位置。对于还未开始进行切片的目标数据流来说,切片起始位置可以是目标数据流第一个字符所在的位置。对于已经开始切片的目标数据流来说,切片起始位置可以是当前最后一次切片结束后,目标数据流中还未进行切片的第一个字符所在的位置。为便于理解,请结合参阅图3,为本申请的一个实施例提供的一个目标数据流的示意图。图3中,假设左侧第一个字符为目标数据流的起始位置,右侧最后一个字符为目标数据流的结束位置。在还未开始对目标数据流进行切片时,切片起始位置可以是左侧第一个字符所在的位置;在已经开始对目标数据流进行切片的情况下,比如当前最后一次切片是从虚线处进行切割的,那么下一次切片时,切片起始位置可以是虚线后第一个字符(即字符o)所在的位置。
在一些实施例中,预设数组可以是通过随机方式生成的一个随机数组。考虑到计算机中,一个字符由8个比特位(8bit)来表示。8个比特位可以表示256个不同的字符,因此,预设数组可以包括256个数值。每个数值分别与上述256个字符中的其中一个字符对应。即对于目标数据流中的每一个字符来说,在预设数组中均可以查找到一个对应的数值。比如字符A和预设数组中的数值20对应,字符B和预设数组中的数值15对应。
在一些实施例中,以随机方式生成预设数组后,可以保存预设数组。针对不同目标数据流中的字符,可以在同一个预设数组查找字符对应的数值。即预设数组可以只生成一个,无需针对不同的目标数据流分别生成预设数组。
在一些实施例中,从预设数组中查找与目标字符相对应的数值时,可以从预设字符表中查找目标字符的字符编号,其中,预设字符表包括字符和字符编号的对应关系,不同字符的字符编号不同。然后可以将目标字符的字符编号作为索引,从预设数组中查找与目标字符相对应的数值。
其中,预设字符表可以为ASCII码表。字符编号可以是字符在ASCII码表中的ASCII码。当然,可以理解的是,字符表中只要存在字符和字符编号的对应关系即可,并不一定必须为ASCII码表。比如,字符表还可以是由技术人员预先建立的。在字符表中,技术人员可以为每个字符分配与ASCII码不同的字符编号。
在一些实施例中,从字符表中查找到目标字符的字符编号后,可以将字符编号作为数值的位置信息,在预设数组中查找与目标字符相对应的数值。举例来说,假设字符编号为20,则将预设数组中第20个数值作为与目标字符相对应的数值。
步骤S23,根据目标字符对应的数值,确定切片长度,并从切片起始位置开始,按照切片长度,对目标数据流进行切片。
在一些实施例中,可以将目标字符对应的数值直接作为切片长度,即从切片起始位置开始,按照目标字符对应的数值所限定的长度,对目标数据流进行切片。具体来说,可以将目标字符对应的数值作为待切片的字符的数量。为便于理解,结合参阅图3。比如,假设图3中的目标字符为左侧第一个字符i,目标字符对应的数值为5,则可以从目标字符i开始,从目标数据流中切割出一个包括5个字符的数据块(即itwea)。当然,也可以将目标字符对应的数值作为待切片的比特数量。比如,依然假设图3中的目标字符为左侧第一个字符i,目标字符对应的数值为56,则可以从目标字符i开始,从目标数据流中切割出一个包括7个字符的数据块(即itweasc)。
在一些实施例中,由于预设数组中的至少部分字符对应的数值是不相同的,且正常情况下,目标数据流中的字符也不完全是相同的,那么切割出的数据块的长度也应该是不完全相同的,即对目标数据流进行切片时,是采用的变长切片的方法。又由于是变长切片,那么则有可能解决图1中所述的问题。结合参阅图4,为本申请的一个实施例提供数据切片的示意图。图4中的数据流B和数据流A类似,灰色框内字符为数据流B相对于数据流A新增的字符。由于本申请是变长切片,那么针对数据流A和数据流B来说,则是有可能将数据流B中新增的字符单独切割为一个数据块的。比如,假设字符i、a、o在预设数组中对应的数值均为3,字符e在预设数组中对应的数值为1,字符0在预设数组对应的数值为2,那么按照本申请的方法,则可以将数据流A和数据流B切割为图4中所示的数据块。从图4可以看出,数据流A和数据流B共同包括了数据块itw、asc、old、ayi、and,那么在数据存储时,针对这些数据块则可以仅保存一个。如此,达到了压缩存储空间,提高重删率的目的。
进一步的,考虑到一些场景中,不同目标数据流的长度可能会相差比较大,比如一些目标数据流包括的字符数较多,一些目标数据流包括的字符数较少。若目标字符对应的数值较大,那么在对长度较长的目标数据流进行切片时是比较适合的,但对于长度较短的目标数据流来说,则可能存在无法切片的问题。比如,假设目标数据流包括5个字符,但目标字符对应的数值为10(表示10个字符)。这种情况下,可能就无法对长度较短的目标数据流进行切片。反之,若目标字符对应的数值较小,这种情况下,虽然可以对长度较短的目标数据流进行切片,但对于长度较长的目标数据流来说,则可能存在切割的数据块过小过多的问题。鉴于以上描述,在本申请一些实施例中,可以基于如下方法来确定切片长度。
具体来说,可以对目标字符相对应的数值进行运算,得到对应的中间值。若得到的中间值小于片长阈值,针对切片起始位置后的字符依次执行如下操作,直至确定切片结束位置,并将切片结束位置和切片起始位置之间的长度作为切片长度:
从预设数组中查找与字符相对应的数值;
对查找到的数值进行运算,得到对应的中间值;
若得到的中间值大于或等于片长阈值,将字符所在位置确定为切片结束位置。
在一些实施例中,针对从预设数组中查找到的任一数值,可以基于如下方法确定对应的中间值:
将该数值与预设变量的值进行异或运算,得到第一中间值;
将第一中间值减去预设值,得到第二中间值;
将第一中间值和第二中间值进行异或运算,得到对应的中间值。
在一些实施例中,在每次计算得到第一中间值后,还可以将预设变量的值更新为第一中间值,以便于在下一次将预设变量的值与从预设数组中查找的数值进行异或运算时,基于更新后预设变量的值,与从预设数组中查找的数值进行异或运算。
在一些实施例中,在获取到待切片的目标数据流后,还可以将目标数据流中最后一个字符所在的位置记录为字符结束位置。针对目标数据流中的任一字符,在该字符对应的中间值小于片长阈值的情况下,判断该字符所在位置是否为字符结束位置,若是,将字符结束位置和切片起始位置之间的长度作为切片长度。
在一些实施例中,在对目标字符相对应的数值进行运算,得到对应的中间值后,若得到的中间值大于或等于片长阈值,可以将目标字符作为待切割的数据块,对目标数据流进行切片。
为便于理解,结合参阅图5,为本申请的一个实施例提供的数据切片的流程图。图5中,左侧第一个字符为目标字符i。假设预设变量为x,且预设变量x的初始值为预设数组中的其中一个数值,或者预设变量x的初始值为随机生成或指定的一个数值,片长阈值为slen,目标数据流最后一个字符所在的位置为max,字符i对应的数值为i’,字符t对应的数值为t’,字符w对应的数值为w’,字符e对应的数值为e’,字符i所在的位置为id,字符t所在的位置为td,字符w所在的位置为wd,字符e所在的位置为ed。
首先,对字符i对应的数值进行运算。
1)可以将i对应的数值与预设变量x的值进行异或运算,得到字符i对应的第一中间值。在本实施例中,将预设变量x的值除2后,将相除后得到的值与i对应的数值进行异或运算,得到第一中间值,并将预设变量x的值更新为第一中间值。该过程对应图5步骤1中的x=x>>1)^i’。
2)可以将字符i对应的第一中间值减去预设值,得到第二中间值。在本实施例中,将字符i对应的第一中间值减去1后,得到字符i对应的第二中间值。然后将第一中间值和第二中间值进行异或运算,得到字符i对应的中间值,并确定中间值小于片长阈值slen。该过程对应图5步骤1中的x^(x-1)<slen。
3)判断字符i所在位置不是目标数据流最后一个字符所在的位置max。该过程对应图5步骤1中的id!=max。
进一步的,对字符t对应的数值进行运算。
1)可以将t对应的数值与更新后的预设变量x的值进行异或运算,得到字符t对应的第一中间值。该过程对应图5步骤2中的x=x>>1)^t’。
2)可以将字符i对应的第一中间值减去预设值,得到第二中间值。然后将第一中间值和第二中间值进行异或运算,得到字符t对应的中间值,并确定中间值小于片长阈值slen。该过程对应图5步骤2中的x^(x-1)<slen。
3)判断字符t所在位置不是目标数据流最后一个字符所在的位置max。该过程对应图5步骤2中的td!=max。
进一步的,对字符w对应的数值进行运算。
1)可以将w对应的数值与更新后的预设变量x的值进行异或运算,得到字符w对应的第一中间值。该过程对应图5步骤3中的x=x>>1)^w’。
2)可以将字符w对应的第一中间值减去预设值,得到第二中间值。然后将第一中间值和第二中间值进行异或运算,得到字符w对应的中间值,并确定中间值小于片长阈值slen。该过程对应图5步骤3中的x^(x-1)<slen。
3)判断字符w所在位置不是目标数据流最后一个字符所在的位置max。该过程对应图5步骤3中的wd!=max。
进一步的,对字符e对应的数值进行运算。
1)可以将e对应的数值与更新后的预设变量x的值进行异或运算,得到字符e对应的第一中间值。该过程对应图5步骤4中的x=x>>1)^e’。
2)可以将字符e对应的第一中间值减去预设值,得到第二中间值。然后将第一中间值和第二中间值进行异或运算,得到字符e对应的中间值,并确定中间值大于片长阈值slen。该过程对应图5步骤4中的x^(x-1)>slen。
3)判断字符e所在位置不是目标数据流最后一个字符所在的位置max。该过程对应图5步骤4中的ed!=max。
在对字符e的数值进行运算后,由于得到的中间值大于片长阈值slen,则字符e所在的位置确定切片结束位置,然后将字符e和字符i之间(包括字符e和字符i)的长度作为切片长度,对目标数据流进行切片。此处,由于切片长度应该4(表示4个字符)。如此,可以将itwe作为一个数据块,对目标数据流进行切片。然后可以将字符e后的字符a所在位置作为切片起始位置,以及将字符a作为目标字符,并执行上述步骤,继续对目标数据流进行切片。
继续参阅图6,为本申请的另一个实施例提供的数据切片的流程图。图6中,在对目标字符i对应的数值进行运算后,得到的中间值便大于片长阈值slen。此时,将目标字符i单独作为一个数据块,对目标数据流进行切片。
继续参阅图7,为本申请的另一个实施例提供的数据切片的流程图。图7中,假设字符d对应的数值为d’,字符d所在的位置为dd。从图7可以看出,假设从字符c处开始对目标数据流进行切片,依照与图5相似的流程到达字符d所在位置后,对字符d对应的数值进行运算,得到的中间值小于片长阈值slen,但字符d所在位置为目标数据流最后一个字符所在的位置max,则可以将字符d所在作为字符结束位置,并将字符cold作为一个数据块,对目标数据流进行切割。
在本申请的一些实施例中,从目标数据流中获取切片起始位置的目标字符,并从预设数组中查找与目标字符相对应的数值,然后根据目标字符对应的数值,确定切片长度,来对目标数据流进行切片。如此,可以对目标数据流进行变长切片,进而可以在数据新增、删除等场景下,降低新增、删除的字符对于数据切片的影响,有效提高重删率。
请参阅图8,为本申请的一个实施例提供的数据切片装置的模块示意图。数据切片装置包括:
数据获取模块,用于获取待切片的目标数据流;
查找模块,用于从目标数据流中获取切片起始位置的目标字符,并从预设数组中查找与目标字符相对应的数值,其中,在预设数组中,至少部分字符对应的数值不相同;及
切片模块,用于根据目标字符相对应的数值,确定切片长度,并从切片起始位置开始,按照切片长度,对目标数据流进行切片。
请参阅图9,为本申请的一个实施例提供的数据切片***的示意图。数据切片***包括处理器和存储器,存储器用于存储计算机程序,计算机程序被处理器执行时,实现上述的数据切片方法。
其中,处理器可以为中央处理器(Central Processing Unit,CPU)。处理器还可以为其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等芯片,或者上述各类芯片的组合。
存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态计算机可执行程序以及模块,如本发明实施方式中的方法对应的程序指令/模块。处理器通过运行存储在存储器中的非暂态软件程序、指令以及模块,从而执行处理器的各种功能应用以及数据处理,即实现上述方法实施方式中的方法。
存储器可以包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需要的应用程序;存储数据区可存储处理器所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施方式中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至处理器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
本申请一个实施方式还提供一种计算机可读存储介质,所述计算机可读存储介质用于存储计算机程序,所述计算机程序被处理器执行时,实现上述的数据切片方法。
虽然结合附图描述了本发明的实施方式,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下作出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。
Claims (10)
1.一种数据切片方法,其特征在于,所述方法包括:
获取待切片的目标数据流;
从所述目标数据流中获取切片起始位置的目标字符,并从预设数组中查找与所述目标字符相对应的数值,其中,在所述预设数组中,至少部分字符对应的数值不相同;及
根据所述目标字符对应的数值,确定切片长度,并从所述切片起始位置开始,按照所述切片长度,对所述目标数据流进行切片。
2.如权利要求1所述的方法,其特征在于,所述从预设数组中查找与所述目标字符相对应的数值,包括:
从预设字符表中查找所述目标字符的字符编号,其中,所述预设字符表包括字符和字符编号的对应关系,不同字符的字符编号不同;
将所述目标字符的字符编号作为索引,从所述预设数组中查找与所述目标字符相对应的数值。
3.如权利要求1所述的方法,其特征在于,所述根据所述目标字符相对应的数值,确定切片长度,包括:
对所述目标字符相对应的数值进行运算,得到对应的中间值;
若得到的中间值小于片长阈值,针对所述切片起始位置后的字符依次执行如下操作,直至确定切片结束位置,并将所述切片结束位置和所述切片起始位置之间的长度作为所述切片长度:
从所述预设数组中查找与所述字符相对应的数值;
对查找到的数值进行运算,得到对应的中间值;
若得到的中间值大于或等于所述片长阈值,将所述字符所在位置确定为所述切片结束位置。
4.如权利要求3所述的方法,其特征在于,针对从所述预设数组中查找到的任一数值,基于如下方法确定对应的中间值:
将该数值与预设变量的值进行异或运算,得到第一中间值;
将所述第一中间值减去预设值,得到第二中间值;
将所述第一中间值和所述第二中间值进行异或运算,得到对应的中间值。
5.如权利要求4所述的方法,其特征在于,在每次计算得到所述第一中间值后,所述方法还包括:
将所述预设变量的值更新为所述第一中间值,以便于在下一次将所述预设变量的值与从所述预设数组中查找的数值进行异或运算时,基于更新后所述预设变量的值,与从所述预设数组中查找的数值进行异或运算。
6.如权利要求3所述的方法,其特征在于,在获取到待切片的所述目标数据流后,所述方法还包括:
将所述目标数据流中最后一个字符所在的位置记录为字符结束位置;
针对所述目标数据流中的任一所述字符,在该字符对应的中间值小于所述片长阈值的情况下,判断该字符所在位置是否为所述字符结束位置,若是,将所述字符结束位置和所述切片起始位置之间的长度作为所述切片长度。
7.如权利要求3所述的方法,其特征在于,在对所述目标字符相对应的数值进行运算,得到对应的中间值后,所述方法还包括:
若得到的中间值大于或等于所述片长阈值,将所述目标字符作为待切割的数据块,对所述目标数据流进行切片。
8.一种数据切片装置,其特征在于,所述装置包括:
数据获取模块,用于获取待切片的目标数据流;
查找模块,用于从所述目标数据流中获取切片起始位置的目标字符,并从预设数组中查找与所述目标字符相对应的数值,其中,在所述预设数组中,至少部分字符对应的数值不相同;及
切片模块,用于根据所述目标字符相对应的数值,确定切片长度,并从所述切片起始位置开始,按照所述切片长度,对所述目标数据流进行切片。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质用于存储计算机程序,所述计算机程序被处理器执行时,实现如权利要求1至7中任一所述的方法。
10.一种数据切片***,其特征在于,所述数据切片***包括处理器和存储器,所述存储器用于存储计算机程序,所述计算机程序被所述处理器执行时,实现如权利要求1至7中任一所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210910741.8A CN115470186A (zh) | 2022-07-29 | 2022-07-29 | 一种数据切片方法、装置和*** |
PCT/CN2022/141819 WO2024021491A1 (zh) | 2022-07-29 | 2022-12-26 | 一种数据切片方法、装置和*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210910741.8A CN115470186A (zh) | 2022-07-29 | 2022-07-29 | 一种数据切片方法、装置和*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115470186A true CN115470186A (zh) | 2022-12-13 |
Family
ID=84366324
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210910741.8A Pending CN115470186A (zh) | 2022-07-29 | 2022-07-29 | 一种数据切片方法、装置和*** |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN115470186A (zh) |
WO (1) | WO2024021491A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024021491A1 (zh) * | 2022-07-29 | 2024-02-01 | 天翼云科技有限公司 | 一种数据切片方法、装置和*** |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101158954B (zh) * | 2007-11-07 | 2011-09-28 | 上海爱数软件有限公司 | 一种在计算机存储中识别重复数据的方法 |
CN101320372B (zh) * | 2008-05-22 | 2012-07-04 | 上海爱数软件有限公司 | 一种重复数据的压缩方法 |
CN102682086B (zh) * | 2012-04-23 | 2014-11-05 | 华为技术有限公司 | 数据分块方法及设备 |
CN105528347B (zh) * | 2014-09-28 | 2019-03-26 | 北京古盘创世科技发展有限公司 | 数据块储存方法、数据查询方法和数据修改方法 |
CN111722787B (zh) * | 2019-03-22 | 2021-12-03 | 华为技术有限公司 | 一种分块方法及其装置 |
CN111431537A (zh) * | 2020-03-06 | 2020-07-17 | 平安科技(深圳)有限公司 | 数据压缩方法、装置及计算机可读存储介质 |
CN115470186A (zh) * | 2022-07-29 | 2022-12-13 | 天翼云科技有限公司 | 一种数据切片方法、装置和*** |
-
2022
- 2022-07-29 CN CN202210910741.8A patent/CN115470186A/zh active Pending
- 2022-12-26 WO PCT/CN2022/141819 patent/WO2024021491A1/zh unknown
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024021491A1 (zh) * | 2022-07-29 | 2024-02-01 | 天翼云科技有限公司 | 一种数据切片方法、装置和*** |
Also Published As
Publication number | Publication date |
---|---|
WO2024021491A1 (zh) | 2024-02-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10715618B2 (en) | Compressibility estimation for lossless data compression | |
US11627207B2 (en) | Systems and methods for data deduplication by generating similarity metrics using sketch computation | |
KR101653692B1 (ko) | 데이터 오브젝트 처리 방법 및 장치 | |
US9843802B1 (en) | Method and system for dynamic compression module selection | |
CN111125033B (zh) | 一种基于全闪存阵列的空间回收方法及*** | |
WO2014067063A1 (zh) | 重复数据检索方法及设备 | |
CN106980680B (zh) | 数据存储方法及存储设备 | |
US11249987B2 (en) | Data storage in blockchain-type ledger | |
US11995050B2 (en) | Systems and methods for sketch computation | |
CN106990914B (zh) | 数据删除方法及装置 | |
CN109597574B (zh) | 分布式数据存储方法、服务器及可读存储介质 | |
CN111274245B (zh) | 一种用于优化数据存储的方法和装置 | |
CN115470186A (zh) | 一种数据切片方法、装置和*** | |
CN110597461B (zh) | 块链式账本中的数据存储方法、装置及设备 | |
US11881873B1 (en) | Huffman correction encoding method and system, and relevant components | |
CN115380267A (zh) | 数据压缩方法及装置、数据压缩设备和可读存储介质 | |
CN114020522A (zh) | 数据备份方法、装置、电子设备及*** | |
CN111061428B (zh) | 一种数据压缩的方法及装置 | |
US9571698B1 (en) | Method and system for dynamic compression module selection | |
CN109213972B (zh) | 确定文档相似度的方法、装置、设备和计算机存储介质 | |
US9843702B1 (en) | Method and system for dynamic compression module selection | |
Vikraman et al. | A study on various data de-duplication systems | |
US20150220596A1 (en) | Dynamically adjust duplicate skipping method for increased performance | |
CN111209254A (zh) | 文件指纹获取方法、装置、电子设备以及存储介质 | |
CN114138552B (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 |