CN107994907A - 一种生成压缩字典的方法及装置 - Google Patents
一种生成压缩字典的方法及装置 Download PDFInfo
- Publication number
- CN107994907A CN107994907A CN201711251754.4A CN201711251754A CN107994907A CN 107994907 A CN107994907 A CN 107994907A CN 201711251754 A CN201711251754 A CN 201711251754A CN 107994907 A CN107994907 A CN 107994907A
- Authority
- CN
- China
- Prior art keywords
- keyword
- data
- weighted value
- compression dictionary
- unit
- 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
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/3084—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method
- H03M7/3088—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method employing the use of a dictionary, e.g. LZ78
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明实施例提供了一种生成压缩字典的方法及装置,生成字典的方法,应用于服务器端,包括:获取已排序数据,已排序数据为客户端基于预设的排列规则,根据未压缩数据中的关键字,对未压缩数据排序后生成的;从已排序数据中提取关键字,组成关键字序列;生成关键字序列与预设的序列号之间的对应关系,将对应关系确定为压缩字典。应用本发明实施例能够实现自动生成压缩字典。
Description
技术领域
本发明涉及数据压缩技术领域,特别是涉及一种生成压缩字典的方法及装置。
背景技术
为了向用户提供更好的服务,互联网公司需要通过采集大量的用户数据来了解用户的使用习惯及偏好,以便为用户提供更好的服务。具体的,可以由用户使用的客户端向服务器端上传相关的用户数据,服务器端通过对接收到的用户数据进行统计分析以获取用户的使用信息。由于用户数据的数据量较大,为了节省流量和带宽资源,可以在客户端使用压缩字典对用户数据进行压缩处理后再上传至服务器端。在实际应用中,用户数据通常以键值(key:value)对的形式存储。此外,压缩字典包括数值value与序列号的对应关系。
客户端和服务器端之间使用压缩字典对用户数据进行压缩和解压的过程为:
客户端根据预设的压缩字典,对待上传数据进行压缩处理。具体的,可以将待上传数据中的数值value,替换为压缩字典中该数值value对应的序列号,生成压缩数据;
服务器端接收客户端发送的压缩数据,根据预设的压缩字典,对压缩数据进行解压处理,具体的,可以将压缩数据中的序列号,替换为压缩字典中该序列号对应的数值value,生成解压后的数据。
由于压缩字典是预先设置的,为了保证压缩效果,需要不断更新压缩字典,这样,会出现由于压缩字典更新不及时导致压缩效率低下的问题,且频繁更新压缩字典费时费力。
发明内容
本发明实施例的目的在于提供一种生成压缩字典的方法及装置,以实现自动生成压缩字典。具体技术方案如下:
本发明实施例提供了一种生成压缩字典的方法,应用于服务器端,方法包括:
获取已排序数据,已排序数据为客户端基于预设的排列规则,根据未压缩数据中的关键字,对未压缩数据排序后生成的;
从已排序数据中提取关键字,组成关键字序列;
生成压缩字典,压缩字典包括关键字序列与预设的序列号之间的对应关系。
可选的,在从已排序数据中提取关键字,组成关键字序列的步骤之前,方法还包括:
判断已排序数据中的关键字的个数是否超过预设的个数阈值;
若已排序数据中的关键字的个数超过预设的个数阈值,则执行生成压缩字典的步骤。
可选的,在从已排序数据中提取关键字,组成关键字序列的步骤之后,方法还包括:
统计已生成的关键字序列的数量;
根据数量,计算关键字序列的权重值;
判断权重值是否符合预设条件;
若权重值符合预设条件,则执行生成压缩字典的步骤。
可选的,统计已生成的关键字序列的数量的步骤,包括:
按照预设的统计周期,统计已生成的关键字序列的数量。
可选的,判断权重值是否符合预设条件的步骤,包括:
判断权重值是否超过预设的权重阈值;
当所述权重值未超过预设的权重阈值时,判断权重值是否为所有的关键字序列的权重值中的最大值;
权重值符合所述预设条件的步骤,包括:
若权重值超过预设的权重阈值,或者,权重值没有超过预设的权重阈值且权重值为所有的关键字序列对应的权重值中的最大值,则权重值符合预设条件。
可选的,在生成压缩字典的步骤之后,方法还包括:
向客户端发送压缩字典;
接收客户端发送的压缩数据;
根据压缩字典,确定压缩数据中的序列号对应的关键字序列;
使用关键字序列,对压缩数据进行解压处理,生成压缩数据对应的未压缩数据。
本发明实施例又提供了一种生成压缩字典的方法,应用于客户端,方法包括:
获取未压缩数据中的关键字;
基于预设的排列规则,根据关键字对未压缩数据排序,生成已排序数据;
发送已排序数据,以使服务器获取已排序数据,从已排序数据中提取关键字,组成关键字序列,生成压缩字典,所述压缩字典包括所述关键字序列与预设的序列号之间的对应关系。
本发明实施例还提供了一种生成压缩字典的装置,装置包括:
获取单元,用于获取已排序数据,已排序数据为客户端基于预设的排列规则,根据未压缩数据中的关键字,对未压缩数据排序后生成的;
组成单元,用于从已排序数据中提取关键字,组成关键字序列;
生成单元,用于生成压缩字典,压缩字典包括关键字序列与预设的序列号之间的对应关系。
可选的,装置还包括:
第一判断单元,用于判断已排序数据中的关键字的个数是否超过预设的个数阈值;
第一执行单元,用于若判断单元的判断结果为已排序数据中的关键字的个数超过预设的个数阈值,则执行生成单元。
可选的,装置还包括:
统计单元,用于统计已生成的关键字序列的数量;
计算单元,用于根据数量,计算关键字序列的权重值;
第二判断单元,用于判断权重值是否符合预设条件;
第二执行单元,用于若第二判断单元的判断结果为权重值符合预设条件,则执行生成单元。
可选的,统计单元,具体用于按照预设的统计周期,统计已生成的关键字序列的数量。
可选的,第二判断单元,包括:第一判断子单元和第二判断子单元;
所述第一判断子单元,用于判断所述权重值是否超过预设的权重阈值;
第二判断子单元,用于若第一判断子单元的判断结果为权重值未超过预设的权重阈值,则判断权重值是否为所有的关键字序列的权重值中的最大值;
第二执行单元,具体用于若第一判断子单元的判断结果为权重值超过预设的权重阈值,或者第一判断子单元的判断结果为权重值未超过预设的权重阈值且第二判断子单元的判断结果为权重值为所有的关键字序列对应的权重值中的最大值,则权重值符合预设条件,执行生成单元。
可选的,装置还包括:
发送单元,用于向客户端发送压缩字典;
接收单元,用于接收客户端发送的压缩数据;
确定单元,用于根据压缩字典,确定压缩数据中的序列号对应的关键字序列;
解压单元,用于使用关键字序列,对压缩数据进行解压处理,生成压缩数据对应的未压缩数据。
本发明实施再提供了一种生成压缩字典的装置,应用于客户端,装置包括:
获取单元,用于获取未压缩数据中的关键字;
排序单元,用于基于预设的排列规则,根据关键字对未压缩数据排序,生成已排序数据;
发送单元,用于发送已排序数据,以使服务器获取已排序数据,从已排序数据中提取关键字,组成关键字序列,生成压缩字典,压缩字典包括关键字序列与预设的序列号之间的对应关系。
本发明实施再提供了一种服务器,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现上述任一所述的生成压缩字典的方法。
本发明实施再提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现上述任一所述的生成压缩字典的方法。
本发明实施再提供了一种计算机可读存储介质,计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述任一所述的生成压缩字典的方法。
本发明实施再提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一所述的生成压缩字典的方法。
本发明实施例提供的一种生成压缩字典的方法及装置,首先,服务器端获取已排序数据,已排序数据为基于预设的排列规则,根据未压缩数据中的关键字,对未压缩数据排序后生成的;然后,从已排序数据中提取关键字,组成关键字序列;最后,生成压缩字典,压缩字典包括关键字序列与预设的序列号之间的对应关系。
这样,本发明实施例提供的生成压缩字典的方法及装置,服务器端能够通过从排序后的数据中提取关键字组成关键字序列来实现自动生成压缩字典。不仅能够根据数据的实际情况灵活生成所需的压缩字典,而且无需由人工对压缩字典进行更新,可以提高压缩效率且省时省力;此外,无需再预设压缩字典,可以节省存储资源。当然,实施本发明的任一产品或方法必不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
图1为本发明实施例的生成压缩字典的方法的一种流程图;
图2为本发明实施例的生成压缩字典的方法的又一种流程图;
图3为本发明实施例的生成压缩字典的方法的另一种流程图;
图4为本发明实施例的生成压缩字典的系统的一种示意图;
图5为本发明实施例的生成压缩字典的装置的一种示意图;
图6为本发明实施例的生成压缩字典的装置的又一种示意图;
图7为本发明实施例的服务器的一种示意图;
图8为本发明实施例的电子设备的一种示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述。
本发明实施提供了一种生成压缩字典的方法,应用于服务器端。参见图1,图1为本发明实施例的生成压缩字典的方法的一种流程图,包括如下步骤:
步骤101,获取已排序数据。
其中,已排序数据为客户端基于预设的排列规则,根据未压缩数据中的关键字,对未压缩数据排序后生成的。
本发明实施例的生成压缩字典的方法的执行主体可以为服务器端,服务器端可以安装在服务器上。未压缩数据可以以key:value对的形式存储。
在本步骤中,服务器端获取已排序数据,具体的,可以由客户端生成未压缩数据,然后基于预设的排序规则,根据未压缩数据中的关键字即key:value对中的key,对未压缩数据进行排序,生成已排序数据,再发送至服务器端,以使服务器端能够获取已排序数据,并根据获取到的已排序数据生成关键字序列,从而生成压缩字典。
其中,排序规则可以根据实际情况来预设,比如,当关键字为字母时,排序规则可以为字母的正序顺序或者字母的倒序顺序,具体的,可以将未压缩数据中各关键字中的首字母,按照字母的正序顺序或者倒序顺序,对未压缩数据进行排序,生成已排序数据。又比如,当关键字为数据时,排序规则可以为数字的升序顺序或者数字的降序顺序,具体的,可以将未压缩数据中各关键字中的首数字,按照数字的升序顺序或者降序顺序,对未压缩数据进行排序,生成已排序数据。
比如,未压缩数据为apple=myApple&dog=myDog&boy=myBoy&cat=myCat,其中,关键字分别为apple、dog、boy和cat,预设的排序规则为字母的正序顺序;那么,已排序数据为apple=myApple&boy=myBoy&cat=myCat&dog=myDog。
步骤102,从已排序数据中提取关键字,组成关键字序列。
在本步骤中,服务器端可以从获取到的已排序数据中提取各关键字,组成关键字序列,以根据关键字序列生成压缩字典。
具体的,可以从已排序数据中依次提取关键字,组成关键字序列。其中,“依次”可以是按照从左到右的顺序,也可以是从右到左的顺序,当然,也可以是其他有序的顺序。
比如,已排序数据为apple=myApple&boy=myBoy&cat=myCat&dog=myDog,按照从左到右的顺序,提取已排序数据中的关键字,那么,生成的关键字序列为[apple,boy,cat,dog]。
步骤103,生成压缩字典,压缩字典包括关键字序列与预设的序列号之间的对应关系。
在本步骤中,服务器端可以根据生成的关键字序列和预设的序列号,生成压缩字典,生成的压缩字典包括该关键字序列与预设的序列号之间的对应关系。这样,服务器端可以将自动生成的压缩字典发送至终端设备,使终端设备能够根据压缩字典,使用预设的序列号替换未压缩数据中的关键字序列,以通过简化未压缩数据中的关键字实现数据压缩,节约传输数据使用的流量资源和带宽资源。
比如,组成的关键字序列为[apple,boy,cat,dog],预设的序列号为seq0,那么,生成的压缩字典即为[apple,boy,cat,dog]与seq0的对应关系。
需要说明的是,现有技术中的压缩字典多为包括key:value对中的数值value与预设的序列号的对应关系,而本发明实施例提出的压缩字典包括关键字序列与预设的序列号的对应关系。相比之下,本发明实施例提出的压缩字典针对包括较长的关键字序列,或数值value较短的未压缩数据,压缩效果更佳。
可见,本发明实施例提供的生成压缩字典的方法,能够组成未压缩数据对应的关键字序列,进而根据组成的关键字序列生成压缩字典,压缩字典包括该关键字序列与预设的序列号之间的对应关系。这样,不仅能够根据数据的实际情况灵活生成所需的压缩字典,而且无需由人工对压缩字典进行更新,可以提高压缩效率且省时省力;此外,服务器端和客户端均无需预设压缩字典,可以节省存储资源。
一种实现方式中,参见图2,图2为本发明实施例的生成压缩字典的方法的又一种流程图,包括如下步骤:
步骤201,获取已排序数据。
其中,已排序数据为基于预设的排列规则,根据未压缩数据中的关键字,对未压缩数据排序后生成的。
本步骤的详细过程和技术效果可以参考图1所示的生成压缩字典的方法中的步骤101,在此不再赘述。
步骤202,判断已排序数据中的关键字的个数是否超过预设的个数阈值;若已排序数据中的关键字的个数超过预设的个数阈值,则执行步骤203;若已排序数据中的关键字的个数不超过预设的个数阈值,则执行步骤208。
由于本发明实施例提供的生成压缩字典的方法是通过简化未压缩数据中的关键字实现数据压缩,因此,为了提高压缩效率,可以仅针对包括关键字个数较多的已排序数据进行压缩处理。
因此,在本步骤中,服务器端可以判断获取到的已排序数据中的关键字的个数是否超过预设的个数阈值,当已排序数据中的关键字的个数超过预设的个数阈值时,才会继续执行后续步骤,当已排序数据中的关键字的个数未超过预设的个数阈值时,处理流程结果,不会再通过执行后续步骤生成未压缩数据对应的压缩字典。
步骤203,从已排序数据中提取关键字,组成关键字序列。
本步骤的详细过程和技术效果可以参考图1所示的生成压缩字典的方法中的步骤102,在此不再赘述。
步骤204,统计已生成的关键字序列的数量;
在本步骤中,服务器端可以统计已生成的该关键字序列的数量,也就是说,统计该关键字序列出现的次数,以根据该数量计算关键字序列的权重值,进而根据权重值确定待生成压缩字典的关键字序列。
一种实现方式中,步骤204可以包括:
按照预设的统计周期,统计已生成的关键字序列的数量。
需要说明的是,统计周期越短,生成压缩字典越及时,但对运算资源的消耗也越大。具体的,可以根据实际需求,对统计周期进行设置,比如,可以将统计周期设置为半小时。
步骤205,根据数量,计算关键字序列的权重值。
在本步骤中,服务器端可以根据已生成的关键字序列的数量,计算该关键字序列的权重值。具体的,计算关键字序列的权重值的公式如公式(1)所示:
p=(keys.length-1)×r (1)
在公式(1)中,p为关键字序列的权重值;keys.length为该关键字序列中关键字的个数;r为已生成的该关键字序列的数量。其中,权重值p越大,说明该关键字序列中的关键字的个数越多,且该关键字序列出现的次数越多,可以理解的,对此类关键字序列对应的已排序数据进行压缩,压缩效果较为显著。
步骤206,判断权重值是否符合预设条件;若权重值符合预设条件,则执行步骤207,若权重值不符合预设条件,则执行步骤208。
在本步骤中,服务器端可以判断计算出的权重值是否符合预设条件,若符合条件,则可以生成该关键字序列对应的压缩字典;其中,预设条件可以根据实际情况来设置,若权重值不符合预设条件,则处理流程结束,不生成该关键字序列对应的压缩字典。
在一种实现方式中,步骤206可以包括如下:
判断权重值是否超过预设的权重阈值;
当权重值未超过预设的权重阈值,判断权重值是否为所有的关键字序列的权重值中的最大值;
若权重值超过预设的权重阈值,或者,权重值没有超过预设的权重阈值但权重值为所有的关键字序列对应的权重值中的最大值,则权重值符合预设条件。
其中,权重阈值可以根据实际情况预设,当权重阈值预设的较大时,客户端上传的数据中会有较小比例的数据被压缩,当权重阈值预设的较小时,客户端上传的数据中会有较大比较的数据被压缩。
具体的,首先,可以判断关键字序列的权重值p是否超过预设的权重阈值P;若为是,则说明该关键字序列的权重值符合预设条件,可以继续执行步骤207,若为否,则继续判断该关键字序列的权重值p是否为所有的关键字序列对应的权重值中的最大值;若该关键字序列的权重值p为所有的关键字序列对应的权重值中的最大值,则说明该关键字序列的权重值符合预设条件,可以继续执行步骤207。这样,就可以根据关键字序列的权重值,判断是否可以为该关键字序列对应的已排序数据生成压缩字典。
步骤207,生成压缩字典,所述压缩字典包括所述关键字序列与预设的序列号之间的对应关系。
本步骤的详细过程和技术效果可以参考图1所示的生成压缩字典的方法中的步骤103,在此不再赘述。
步骤208,处理流程结束。
在本步骤中,当已排序数据中的关键字的个数不超过预设的个数阈值,或者关键字序列对应的权重值不符合预设条件时,处理流程结束,不生成未压缩数据对应的压缩字典。
可见,本发明实施例提供的生成压缩字典的方法,为了提高压缩效率,可以自动筛选数据量较大且出现次数较多的数据来生成压缩字典,具体的,可以使用预设的个数阈值和权重阈值来选取包括关键字个数较多且出现次数较多的数据,针对筛选出的数据生成压缩字典。这样,客户端使用生成的压缩字典对待上传的数据进行压缩,能够提压缩效率并获得更好的压缩效果。
此外,另一种实现方式中,在步骤207生成压缩字典之后,本发明实施例提供的生成压缩字典的方法还可以包括:
步骤1,向终端设备发送压缩字典;
步骤2,接收终端设备发送的压缩数据;
步骤3,根据压缩字典,确定压缩数据中的序列号对应的关键字序列;
步骤4,使用关键字序列,对压缩数据进行解压处理,生成压缩数据对应的未压缩数据。
具体的,服务器端在生成压缩字典之后,向客户端发送该压缩字典;客户端接收服务器端发送的压缩字典之后,对待上传的未压缩数据使用该压缩字典进行压缩,生成压缩数据并发送至服务器端;服务器端接收到客户端发送的压缩数据,根据该压缩字典,确定该压缩数据中的序列号对应的关键字序列,接下来,使用该关键字序列,对该压缩数据进行解压处理,生成该压缩数据对应的未压缩数据。
比如,服务器端生成的压缩字典为关键字序列[apple,boy,cat,dog]与序列号seq0的对应关系,并将该压缩字典发送至客户端。客户端中的待上传的未压缩数据为:apple=myApple&dog=myDog&boy=myBoy&cat=myCat,其中的关键字分别为apple、dog、boy和cat。客户端首先基于字母的正序顺序,根据该未压缩数据中的关键字,对该未压缩数据排序,生成已排序数据apple=myApple&boy=myBoy&cat=myCat&dog=myDog,然后,使用该压缩字典对该已排序数据进行压缩,生成压缩数据seq0=myApple,myBoy,myCat,myDog,并将该压缩数据发送至服务器端。服务器端接收到客户端发送的压缩数据seq0=myApple,myBoy,myCat,myDog之后,根据压缩字典即关键字序列[apple,boy,cat,dog]与序列号seq0的对应关系,可以确定该压缩数据中的序列号seq0对应的关键字序列为[apple,boy,cat,dog],接下来,使用关键字序列[apple,boy,cat,dog],对该压缩数据进行解压处理,即用关键字序列替换该压缩数据中的序列号,还原生成该压缩数据对应的未压缩数据为apple=myApple&boy=myBoy&cat=myCat&dog=myDog。
此外,需要说明的是,虽然该解压后的未压缩数据为已排序数据,但由于未压缩数据中关键字的排序不会影响服务器端通过统计数据获取用户的使用信息,因此,服务器端可以将该解压后的未压缩数据作为用户数据直接进行统计处理,无需再将该未压缩数据中的关键字排序还原为客户端中生成的待上传的未压缩数据中的关键字排序。
这样,服务器端能够根据接收到的数据,实时生成压缩字典并告知客户端,客户端可以根据接收到的压缩字典对待上传数据压缩后再上传,这样,客户端和服务器端均无需预设压缩字典,可以节省存储资源,并且,无需由人工对压缩字典进行更新,可以提高压缩效率且节约人力资源。
相应的,本发明实施例还提供了一种生成压缩字典的方法,应用于客户端。参见图3,图3为本发明实施例的生成压缩字典的方法的另一种示意图。包括如下步骤:
步骤301,获取未压缩数据中的关键字。
在本步骤中,客户端可以获取待上传的未压缩数据中的关键字,以根据该关键字生成关键字序列。
一种实现方式中,未压缩数据中的关键字的个数超过预设的个数阈值。只有当未压缩数据中的关键字的个数超过预设的个数阈值时,服务器端才会生成未压缩数据对应的压缩字典。
步骤302,基于预设的排列规则,根据关键字对未压缩数据排序,生成已排序数据;
在本步骤中,客户端可以基于预设的排序规则,根据未压缩数据中的关键字对未压缩数据进行排序,生成已排序数据。
具体的,关于预设的排序规则,可以参考图2所示的生成压缩字典的方法中的步骤101中的相关说明。
步骤303,发送已排序数据,以使服务器获取已排序数据,从已排序数据中提取关键字组成关键字序列,生成压缩字典,压缩字典包括关键字序列与预设的序列号之间的对应关系。
在本步骤中,客户端可以向服务器端发送已排序数据,这样,服务器就能够获取已排序数据,进而从已排序数据中提取关键字,组成关键字序列,再根据组成的关键字序列生成压缩字典,压缩字典包括关键字序列与预设的序列号之间的对应关系。
可见,本发明实施例提供的生成压缩字典的方法,能够基于预设的排序规则,根据未压缩数据中的关键字对未压缩数据进行排序,生成已排序数据,进而根据已排序数据生成压缩字典。这样,不仅能够根据数据的实际情况灵活生成所需的压缩字典,而且无需由人工对压缩字典进行更新,可以提高压缩效率且省时省力;此外,服务器端和客户端均无需预设压缩字典,可以节省存储资源。
本发明实施例另提供了一种生成压缩字典的系统,应用于自动压缩采集到的用户数据。参见图4,图4为本发明实施例的生成压缩字典的系统的一种示意图。
在图4中,生成压缩字典的系统包括服务器端和客户端A、客户端B、客户端C,该系统的工作流程如下:
第一步,客户端生成待上传的未压缩数据,并基于预设的排序规则,根据未压缩数据中的关键字,对未压缩数据进行排序,生成已排序数据,将生成的已排序数据发送至服务器端。
第二步,服务器端获取已排序数据,根据获取到的已排序数据生成压缩字典,并向客户端发送该压缩字典。
第三步,客户端在接收到该压缩字典后,对新的待上传的未压缩数据使用该压缩字典进行压缩,生成压缩数据并发送至服务器端。
第四步,服务器端接收到客户端发送的压缩数据,根据该压缩字典,对该压缩数据进行解压处理,生成该压缩数据对应的未压缩数据。
具体的,服务器端在接收到客户端发送的数据时,可以判断该数据是未压缩数据还是压缩数据,若为未压缩数据,则执行第二步,若为压缩数据,则执行第四步。
需要说明的是,生成压缩字典的系统的处理流程的详细步骤和技术效果可以参考前文图1、图2和图3所示的生成压缩字典的方法中的相关说明,在此不再赘述。
可见,在本发明实施例提供的生成压缩字典的系统中,服务器端能够根据接收到的数据,实时生成压缩字典并告知客户端,客户端可以根据接收到的压缩字典对待上传数据压缩后再上传。这样,不仅能够根据数据的实际情况灵活生成所需的压缩字典,而且无需由人工对压缩字典进行更新,可以提高压缩效率且省时省力;此外,服务器端和客户端均无需预设压缩字典,可以节省存储资源。
本发明实施例再提供了一种生成压缩字典的装置,应用于服务器端。参见图5,图5为本发明实施例的生成压缩字典的装置的一种示意图。该生成压缩字典的装置包括:
获取单元501,用于获取已排序数据,已排序数据为基于预设的排列规则,根据未压缩数据中的关键字,对未压缩数据排序后生成的;
组成单元502,用于从已排序数据中提取关键字,组成关键字序列;
生成单元503,用于生成压缩字典,压缩字典包括关键字序列与预设的序列号之间的对应关系。
可选的,装置还包括:
第一判断单元,用于判断已排序数据中的关键字的个数是否超过预设的个数阈值;
第一执行单元,用于若判断单元的判断结果为已排序数据中的关键字的个数超过预设的个数阈值,则执行生成单元503。
可选的,装置还包括:
统计单元,用于统计已生成的关键字序列的数量;
计算单元,用于根据数量,计算关键字序列的权重值;
第二判断单元,用于判断权重值是否符合预设条件;
第二执行单元,用于若第二判断单元的判断结果为权重值符合预设条件,则执行生成单元503。
可选的,统计单元,具体用于按照预设的统计周期,统计已生成的关键字序列的数量。
可选的,第二判断单元,包括:第一判断子单元和第二判断子单元;
第一判断子单元,用于判断权重值是否超过预设的权重阈值;
第二判断子单元,用于当所述第一判断子单元的判断结果为所述权重值未超过预设的权重阈值时,判断权重值是否为所有的关键字序列的权重值中的最大值;
第二执行单元,具体用于若第一判断子单元的判断结果为权重值超过预设的权重阈值,或者第一判断子单元的判断结果为权重值未超过预设的权重阈值且第二判断子单元的判断结果为权重值为所有的关键字序列对应的权重值中的最大值,则权重值符合预设条件,执行生成单元503。
可选的,装置还包括:
发送单元,用于向客户端发送压缩字典;
接收单元,用于接收客户端发送的压缩数据;
确定单元,用于根据压缩字典,确定压缩数据中的序列号对应的关键字序列;
解压单元,用于使用关键字序列,对压缩数据进行解压处理,生成压缩数据对应的未压缩数据。
可见,本发明实施例提供的生成压缩字典的装置,能够通过生成未压缩数据对应的关键字序列,生成该关键字序列与预设的序列号之间的对应关系,即压缩字典。这样,不仅能够根据数据的实际情况灵活生成所需的压缩字典,而且无需由人工对压缩字典进行更新,可以提高压缩效率且省时省力;此外,服务器端和客户端均无需预设压缩字典,可以节省存储资源。
本发明实施例再提供了一种生成压缩字典的装置,应用于客户端。参见图6,图6为本发明实施例的生成压缩字典的装置的又一种示意图。该生成压缩字典的装置包括:
获取单元601,用于获取未压缩数据中的关键字;
排序单元602,用于基于预设的排列规则,根据所述关键字对所述未压缩数据排序,生成已排序数据;
发送单元603,用于发送所述已排序数据,以使服务器获取所述已排序数据,从所述已排序数据中提取关键字,组成关键字序列,生成压缩字典,所述压缩字典包括所述关键字序列与预设的序列号之间的对应关系。
可见,本发明实施例提供的生成压缩字典的装置,能够基于预设的排序规则,根据未压缩数据中的关键字对未压缩数据进行排序,生成已排序数据,进而根据已排序数据生成压缩字典。这样,不仅能够根据数据的实际情况灵活生成所需的压缩字典,而且无需由人工对压缩字典进行更新,可以提高压缩效率且省时省力;此外,服务器端和客户端均无需预设压缩字典,可以节省存储资源。
本发明实施例再提供了一种服务器。参见图7,图7为本发明实施例的服务器的一种示意图。如图7所示,包括处理器701、通信接口702、存储器703和通信总线704,其中,处理器701,通信接口702,存储器703通过通信总线704完成相互间的通信,
存储器703,用于存放计算机程序;
处理器701,用于执行存储器703上所存放的程序时,实现如下步骤:
获取已排序数据,已排序数据为基于预设的排列规则,根据未压缩数据中的关键字,对未压缩数据排序后生成的;
从已排序数据中提取关键字,组成关键字序列;
生成压缩字典,压缩字典包括关键字序列与预设的序列号之间的对应关系。
上述服务器提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
可见,本发明实施例提供的服务器,能够组成未压缩数据对应的关键字序列,进而根据组成的关键字序列生成压缩字典,压缩字典包括该关键字序列与预设的序列号之间的对应关系。这样,不仅能够根据数据的实际情况灵活生成所需的压缩字典,而且无需由人工对压缩字典进行更新,可以提高压缩效率且省时省力;此外,服务器端和客户端均无需预设压缩字典,可以节省存储资源。
本发明实施例再提供了一种电子设备。参见图8,图8为本发明实施例的电子设备的一种示意图。如图8所示,包括处理器801、通信接口802、存储器803和通信总线804,其中,处理器801,通信接口802,存储器803通过通信总线804完成相互间的通信,
存储器803,用于存放计算机程序;
处理器801,用于执行存储器803上所存放的程序时,实现如下步骤:
获取未压缩数据中的关键字;
基于预设的排列规则,根据关键字对未压缩数据排序,生成已排序数据;
发送已排序数据,以使服务器获取已排序数据,从已排序数据中提取关键字组成关键字序列,生成压缩字典,压缩字典包括关键字序列与预设的序列号之间的对应关系。
可见,本发明实施例提供的电子设备,能够基于预设的排序规则,根据未压缩数据中的关键字对未压缩数据进行排序,生成已排序数据,进而根据已排序数据生成压缩字典。这样,不仅能够根据数据的实际情况灵活生成所需的压缩字典,而且无需由人工对压缩字典进行更新,可以提高压缩效率且省时省力;此外,服务器端和客户端均无需预设压缩字典,可以节省存储资源。
本发明实施例再提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的生成压缩字典的方法。
本发明实施例再提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的生成压缩字典的方法。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
Claims (16)
1.一种生成压缩字典的方法,其特征在于,应用于服务器端,所述方法包括:
获取已排序数据,所述已排序数据为客户端基于预设的排列规则,根据未压缩数据中的关键字,对所述未压缩数据排序后生成的;
从所述已排序数据中提取关键字,组成关键字序列;
生成压缩字典,所述压缩字典包括所述关键字序列与预设的序列号之间的对应关系。
2.根据权利要求1所述的方法,其特征在于,在所述从所述已排序数据中提取关键字,组成关键字序列的步骤之前,所述方法还包括:
判断所述已排序数据中的关键字的个数是否超过预设的个数阈值;
若所述已排序数据中的关键字的个数超过所述个数阈值,则执行所述从所述已排序数据中提取关键字,组成关键字序列的步骤。
3.根据权利要求1所述的方法,其特征在于,在所述从所述已排序数据中提取关键字,组成关键字序列的步骤之后,所述方法还包括:
统计已生成的所述关键字序列的数量;
根据所述数量,计算所述关键字序列的权重值;
判断所述权重值是否符合预设条件;
若所述权重值符合所述预设条件,则执行所述生成压缩字典的步骤。
4.根据权利要求3所述的方法,其特征在于,所述统计已生成的所述关键字序列的数量的步骤,包括:
按照预设的统计周期,统计已生成的所述关键字序列的数量。
5.根据权利要求3所述的方法,其特征在于,
所述判断所述权重值是否符合预设条件的步骤,包括:
判断所述权重值是否超过预设的权重阈值;
当所述权重值未超过预设的权重阈值时,判断所述权重值是否为所有的关键字序列的权重值中的最大值;
所述权重值符合所述预设条件的步骤,包括:
若所述权重值超过预设的权重阈值,或者,所述权重值没有超过预设的权重阈值且所述权重值为所有的关键字序列对应的权重值中的最大值,则所述权重值符合所述预设条件。
6.根据权利要求1所述的方法,其特征在于,在所述生成压缩字典的步骤之后,所述方法还包括:
向客户端发送所述压缩字典;
接收所述客户端发送的压缩数据;
根据所述压缩字典,确定所述压缩数据中的序列号对应的关键字序列;
使用所述关键字序列,对所述压缩数据进行解压处理,生成所述压缩数据对应的未压缩数据。
7.一种生成压缩字典的方法,其特征在于,应用于客户端,所述方法包括:
获取未压缩数据中的关键字;
基于预设的排列规则,根据所述关键字对所述未压缩数据排序,生成已排序数据;
发送所述已排序数据,以使服务器获取所述已排序数据,从所述已排序数据中提取关键字组成关键字序列,生成压缩字典,所述压缩字典包括所述关键字序列与预设的序列号之间的对应关系。
8.一种生成压缩字典的装置,其特征在于,应用于服务器端,所述装置包括:
获取单元,用于获取已排序数据,所述已排序数据为客户端基于预设的排列规则,根据未压缩数据中的关键字,对所述未压缩数据排序后生成的;
组成单元,用于从所述已排序数据中提取关键字,组成关键字序列;
生成单元,用于生成压缩字典,所述压缩字典包括所述关键字序列与预设的序列号之间的对应关系。
9.根据权利要求8所述的装置,其特征在于,所述装置还包括:
第一判断单元,用于判断所述已排序数据中的关键字的个数是否超过预设的个数阈值;
第一执行单元,用于若所述判断单元的判断结果为所述已排序数据中的关键字的个数超过预设的个数阈值,则执行所述生成单元。
10.根据权利要求8所述的装置,其特征在于,所述装置还包括:
统计单元,用于统计已生成的所述关键字序列的数量;
计算单元,用于根据所述数量,计算所述关键字序列的权重值;
第二判断单元,用于判断所述权重值是否符合预设条件;
第二执行单元,用于若所述第二判断单元的判断结果为所述权重值符合预设条件,则执行所述生成单元。
11.根据权利要求10所述的装置,其特征在于,
所述统计单元,具体用于按照预设的统计周期,统计已生成的所述关键字序列的数量。
12.根据权利要求10所述的装置,其特征在于,
所述第二判断单元,包括:第一判断子单元和第二判断子单元;
所述第一判断子单元,用于判断所述权重值是否超过预设的权重阈值;
所述第二判断子单元,用于当所述第一判断子单元的判断结果为所述权重值未超过预设的权重阈值时,则判断所述权重值是否为所有的关键字序列的权重值中的最大值;
所述第二执行单元,具体用于若所述第一判断子单元的判断结果为所述权重值超过预设的权重阈值,或者所述第一判断子单元的判断结果为所述权重值未超过预设的权重阈值且所述第二判断子单元的判断结果为所述权重值为所有的关键字序列对应的权重值中的最大值,则所述权重值符合预设条件,执行所述生成单元。
13.根据权利要求8所述的装置,其特征在于,所述装置还包括:
发送单元,用于向客户端发送所述压缩字典;
接收单元,用于接收所述客户端发送的压缩数据;
确定单元,用于根据所述压缩字典,确定所述压缩数据中的序列号对应的关键字序列;
解压单元,用于使用所述关键字序列,对所述压缩数据进行解压处理,生成所述压缩数据对应的未压缩数据。
14.一种生成压缩字典的装置,其特征在于,应用于客户端,所述装置包括:
获取单元,用于获取未压缩数据中的关键字;
排序单元,用于基于预设的排列规则,根据所述关键字对所述未压缩数据排序,生成已排序数据;
发送单元,用于发送所述已排序数据,以使服务器获取所述已排序数据,从所述已排序数据中提取关键字,组成关键字序列,生成压缩字典,所述压缩字典包括所述关键字序列与预设的序列号之间的对应关系。
15.一种服务器,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-6任一所述的方法步骤。
16.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求7所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711251754.4A CN107994907B (zh) | 2017-12-01 | 2017-12-01 | 一种生成压缩字典的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711251754.4A CN107994907B (zh) | 2017-12-01 | 2017-12-01 | 一种生成压缩字典的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107994907A true CN107994907A (zh) | 2018-05-04 |
CN107994907B CN107994907B (zh) | 2021-05-28 |
Family
ID=62035218
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711251754.4A Active CN107994907B (zh) | 2017-12-01 | 2017-12-01 | 一种生成压缩字典的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107994907B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111782660A (zh) * | 2020-07-17 | 2020-10-16 | 支付宝(杭州)信息技术有限公司 | 基于键值存储的数据压缩的方法和系统 |
CN114666406A (zh) * | 2022-02-24 | 2022-06-24 | 国电南瑞科技股份有限公司 | 一种基于物模型的电力物联网数据压缩方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102708187A (zh) * | 2012-05-14 | 2012-10-03 | 成都信息工程学院 | 基于Hbase数据库的倒排索引混合压缩及解压方法 |
CN105095520A (zh) * | 2015-09-23 | 2015-11-25 | 电子科技大学 | 面向结构化数据的分布式内存数据库索引方法 |
CN105322969A (zh) * | 2015-12-09 | 2016-02-10 | 北京奇虎科技有限公司 | 数据压缩及解压的方法及装置 |
US20160197621A1 (en) * | 2015-01-04 | 2016-07-07 | Emc Corporation | Text compression and decompression |
-
2017
- 2017-12-01 CN CN201711251754.4A patent/CN107994907B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102708187A (zh) * | 2012-05-14 | 2012-10-03 | 成都信息工程学院 | 基于Hbase数据库的倒排索引混合压缩及解压方法 |
US20160197621A1 (en) * | 2015-01-04 | 2016-07-07 | Emc Corporation | Text compression and decompression |
CN105095520A (zh) * | 2015-09-23 | 2015-11-25 | 电子科技大学 | 面向结构化数据的分布式内存数据库索引方法 |
CN105322969A (zh) * | 2015-12-09 | 2016-02-10 | 北京奇虎科技有限公司 | 数据压缩及解压的方法及装置 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111782660A (zh) * | 2020-07-17 | 2020-10-16 | 支付宝(杭州)信息技术有限公司 | 基于键值存储的数据压缩的方法和系统 |
CN114666406A (zh) * | 2022-02-24 | 2022-06-24 | 国电南瑞科技股份有限公司 | 一种基于物模型的电力物联网数据压缩方法及装置 |
CN114666406B (zh) * | 2022-02-24 | 2023-11-21 | 国电南瑞科技股份有限公司 | 一种基于物模型的电力物联网数据压缩方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN107994907B (zh) | 2021-05-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3820048A1 (en) | Data compression and decompression method and related apparatus, electronic device, and system | |
CN105204781A (zh) | 压缩方法、装置和设备 | |
CN106649336B (zh) | 一种日志压缩方法及日志处理设备、日志处理系统 | |
US9710166B2 (en) | Systems and methods for predicting compressibility of data | |
GB2425864A (en) | System and method for compressing system tracking data | |
CN111277274B (zh) | 数据压缩方法、装置、设备及存储介质 | |
CN107665093A (zh) | 数据存储方法及装置 | |
CN108023597B (zh) | 一种数控系统可靠性数据压缩方法 | |
CN107994907A (zh) | 一种生成压缩字典的方法及装置 | |
CN112637123A (zh) | 一种边缘服务器数据传输方法、系统、终端及存储介质 | |
CN112765364A (zh) | 群聊会话排序方法、装置、存储介质和电子设备 | |
CN113497627A (zh) | 一种数据压缩和解压缩方法、装置及系统 | |
CN112182460A (zh) | 资源的推送方法和装置、存储介质及电子装置 | |
CN111324725B (zh) | 一种话题获取方法、终端、计算机可读存储介质 | |
CN115952398B (zh) | 基于物联网的数据上传统计计算方法、系统和存储介质 | |
CN104933178A (zh) | 官方网站确定方法及系统 | |
CN110598797B (zh) | 故障的检测方法及装置、存储介质和电子装置 | |
CN112054805B (zh) | 一种模型数据压缩方法、系统及相关设备 | |
CN111080362A (zh) | 广告监测系统及方法 | |
CN104462422A (zh) | 对象的处理方法及装置 | |
CN109033189B (zh) | 链路结构日志的压缩方法、装置、服务器及可读存储介质 | |
CN103138766A (zh) | 数据压缩与解压缩的方法及装置 | |
CN109255771B (zh) | 图像滤波方法及装置 | |
CN113992597A (zh) | 一种电缆监测数据上报方法、装置、设备以及存储介质 | |
CN114385568A (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 |