CN115065725B - 数据处理方法、装置、电子设备及存储介质 - Google Patents

数据处理方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN115065725B
CN115065725B CN202210520722.4A CN202210520722A CN115065725B CN 115065725 B CN115065725 B CN 115065725B CN 202210520722 A CN202210520722 A CN 202210520722A CN 115065725 B CN115065725 B CN 115065725B
Authority
CN
China
Prior art keywords
field
field value
dictionary
data
target
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
Application number
CN202210520722.4A
Other languages
English (en)
Other versions
CN115065725A (zh
Inventor
陈延民
王倍
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing QIYI Century Science and Technology Co Ltd
Original Assignee
Beijing QIYI Century Science and Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing QIYI Century Science and Technology Co Ltd filed Critical Beijing QIYI Century Science and Technology Co Ltd
Priority to CN202210520722.4A priority Critical patent/CN115065725B/zh
Publication of CN115065725A publication Critical patent/CN115065725A/zh
Application granted granted Critical
Publication of CN115065725B publication Critical patent/CN115065725B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/04Protocols for data compression, e.g. ROHC

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

本发明实施例涉及一种数据处理方法、装置、电子设备及存储介质,包括:接收客户端发送的数据请求,确定与所述数据请求相匹配的目标字段集;查找所述目标字段集对应的目标字段值集,确定所述目标字段集以及所述目标字段值集为待压缩数据;查找所述数据请求中携带的策略标识对应的目标压缩策略,利用所述目标压缩策略对所述待压缩数据进行压缩,并返回给所述客户端。由此,可筛选出与数据请求相匹配的目标字段集以及目标字段值集作为待压缩数据,而对于客户端没有请求的数据,则不必对其进行压缩,减少了数据的冗余浪费。

Description

数据处理方法、装置、电子设备及存储介质
技术领域
本发明实施例涉及数据处理技术领域,尤其涉及一种数据处理方法、装置、电子设备及存储介质。
背景技术
当前移动互联网发展迅猛,往往是客户端(比如:手机、电视)+服务端模式,数据传输往往是JSON(JavaScript Object Notation,JS对象简谱)格式。JSON是一种轻量级的数据交换格式,它是基于ECMAScript(欧洲计算机协会制定的JS规范)的一个子集。
然而,随着服务端接口不断迭代升级,不断添加新业务所需字段,因此接口返回给客户端的字段越来越多,传输的数据量变大,并且返回的字段中存在许多对客户端而言无用的字段,导致数据冗余浪费。
发明内容
鉴于此,为解决上述接口返回给客户端的字段越来越多,传输的数据量变大,并且返回的字段中存在许多对客户端而言无用的字段,导致数据冗余浪费的技术问题,本发明实施例提供一种数据处理方法、装置、电子设备及存储介质。
第一方面,本发明实施例提供一种数据处理方法,所述方法应用于服务端,所述方法包括:
接收客户端发送的数据请求,确定与所述数据请求相匹配的目标字段集;
查找所述目标字段集对应的目标字段值集,确定所述目标字段集以及所述目标字段值集为待压缩数据;
查找所述数据请求中携带的策略标识对应的目标压缩策略,利用所述目标压缩策略对所述待压缩数据进行压缩,并返回给所述客户端。
在一可选的实施方式中,所述数据请求携带静态字典标识和/或动态字典标识;所述确定与所述数据请求相匹配的目标字段集,包括:
从预设的静态字典集中,确定与所述静态字典标识对应的静态字典;从所述静态字典中查找与所述数据请求相匹配的第一字段集;和/或,
从预设的动态字典集中,确定与所述动态字典标识对应的动态字典;从所述动态字典中查找与所述数据请求相匹配的第二字段集;
将所述第一字段集和/或所述第二字段集确定为与所述数据请求相匹配的目标字段集。
在一可选的实施方式中,所述查找所述目标字段集对应的目标字段值集,包括:
从所述静态字典中查找所述第一字段集中每一第一字段对应的第一字段值;和/或,
从所述动态字典中查找所述第二字段集中每一第二字段对应的第二字段值;
将查找到的所述第一字段值和/或所述第二字段值归入目标字段值集。
在一可选的实施方式中,所述利用所述目标压缩策略对所述待压缩数据进行压缩,包括:
利用第一压缩策略对所述第一字段集进行压缩;
利用第三压缩策略对第一字段值集进行压缩,所述第一字段值集包括从所述静态字典中查找到的第一字段值;
和/或,
利用第二压缩策略对所述第二字段集进行压缩;
利用所述第三压缩策略对第二字段值集进行压缩,所述第二字段值集包括从所述动态字典中查找到的第二字段值。
在一可选的实施方式中,所述利用第一压缩策略对所述第一字段集进行压缩,包括:
获取所述第一字段集中每一第一字段在所述静态字典中的第一位置信息;
利用对应的第一位置信息替换所述第一字段集中的第一字段。
在一可选的实施方式中,所述利用第二压缩策略对所述第二字段集进行压缩,包括:
确定所述第二字段集中每一第二字段在所述动态字典中的第一出现次数;
根据所述第一出现次数对所述第二字段集中的第二字段进行排序,得到第二字段序列;
确定所述第二字段集中每一第二字段在所述第二字段序列中的第二位置信息;
利用对应的第二位置信息替换所述第二字段集中的第二字段。
在一可选的实施方式中,所述利用第三压缩策略对第一字段值集进行压缩,包括:
确定第一字段值集中每一第一字段值在所述静态字典中的第二出现次数;
根据所述第二出现次数对所述第一字段值集中的第一字段值进行排序,得到第一字段值序列;
确定所述第一字段值集中每一第一字段值在所述第一字段值序列中的第三位置信息;
利用对应的第三位置信息替换所述第一字段值集中的第一字段值。
在一可选的实施方式中,在所述确定第一字段值集中每一第一字段值在所述静态字典中的第二出现次数之前,所述方法还包括:
确定第一字段值集中的第一字段值对应的存储空间占用量;
将对应的所述存储空间占用量满足预设条件的第一字段值从所述第一字段值集中删除,并针对删除处理后的第一字段值集,执行所述确定第一字段值集中每一第一字段值在所述静态字典中的第二出现次数的步骤;
所述方法还包括:
基于字段值类型,对所述存储空间占用量满足所述预设条件的第一字段值进行压缩。
在一可选的实施方式中,所述利用所述第三压缩策略对第二字段值集进行压缩,包括:
确定第二字段值集中每一第二字段值在所述动态字典中的第三出现次数;
根据所述第三出现次数对所述第二字段值集中的第二字段值进行排序,得到第二字段值序列;
确定所述第二字段值集中每一第二字段值在所述第二字段值序列中的第四位置信息;
利用对应的第四位置信息替换所述第二字段值集中的第二字段值。
在一可选的实施方式中,在所述确定第二字段值集中每一第二字段值在所述动态字典中的第三出现次数之前,所述方法还包括:
确定第二字段值集中的第二字段值对应的存储空间占用量;
将对应的所述存储空间占用量满足预设条件的第二字段值从所述第二字段值集中删除,并针对删除处理后的第二字段值集,执行所述确定第二字段值集中每一第二字段值在所述动态字典中的第三出现次数的步骤;
所述方法还包括:
基于字段值类型,对所述存储空间占用量满足所述预设条件的第二字段值进行压缩。
第二方面,本发明实施例提供一种数据处理方法,所述方法应用于客户端,所述方法包括:
向服务端发送数据请求,以使所述服务端接收客户端发送的数据请求,确定与所述数据请求相匹配的目标字段集,查找所述目标字段集对应的目标字段值集,确定所述目标字段集以及所述目标字段值集为待压缩数据,并查找所述数据请求携带的策略标识对应的目标压缩策略,然后利用所述目标压缩策略对所述待压缩数据进行压缩;
接收所述服务端返回的压缩数据;
根据所述数据请求中携带的策略标识,确定对应的目标解压策略;
利用所述目标解压策略对所述压缩数据进行解压,得到所述目标字段集以及所述目标字段值集。
在一可选的实施方式中,所述压缩数据包括第一压缩数据与第二压缩数据,和/或,第三压缩数据与第四压缩数据;所述利用所述目标解压策略对所述压缩数据进行解压,得到所述目标字段集以及所述目标字段值集,包括:
利用第一解压策略对所述压缩数据中的第一压缩数据进行解压,得到第一字段集;
利用第三解压策略对所述压缩数据中的第二压缩数据进行解压,得到第一字段值集;和/或,
利用第二解压策略对所述压缩数据中的第三压缩数据进行解压,得到第二字段集;
利用所述第三解压策略对所述压缩数据中的第四压缩数据进行解压,得到第二字段值集;
将所述第一字段集和/或所述第二字段集确定为所述目标字段集,以及将所述第一字段值集和/或所述第二字段值集确定为所述目标字段值集。
在一可选的实施方式中,所述第一压缩数据包括第一位置信息;所述利用第一解压策略对所述压缩数据中的第一压缩数据进行解压,得到第一字段集,包括:
从静态字典中查找所述第一位置信息对应的第一字段集,将所述第一位置信息替换为所述第一字段集。
在一可选的实施方式中,所述第三压缩数据包括第二字段序列;所述利用第二解压策略对所述压缩数据中的第三压缩数据进行解压,得到第二字段集,包括:
确定动态字典中各个动态字段的第四出现次数,所述动态字段是利用第二位置信息替换第二字段集中的第二字段的结果;
根据所述第四出现次数对各个所述动态字段进行排序,得到第一序列;
基于所述第一序列和所述第二字段序列,确定各个所述动态字段对应的第二字段;
利用对应的第二字段替换所述动态字典中的动态字段,得到第二字段集。
在一可选的实施方式中,所述第二压缩数据包括第一字段值序列;所述利用第三解压策略对所述压缩数据中的第二压缩数据进行解压,得到第一字段值集,包括:
确定静态字典中各个静态字段值的第五出现次数,所述静态字段值是利用第三位置信息替换第一字段值集中的第一字段值的结果;
根据所述第五出现次数对所述静态字段值进行排序,得到第二序列;
基于所述第二序列和所述第一字段值序列,确定所述静态字段值对应的第一字段值;
利用对应的第一字段值替换所述静态字典中的静态字段值,得到第一字段值集。
在一可选的实施方式中,所述第二压缩数据还包括第一类型压缩数据;所述方法还包括:
基于字段值类型,对所述第一类型压缩数据进行解压,得到第一部分的第一字段值。
在一可选的实施方式中,所述确定静态字典中各个静态字段值的第五出现次数,包括:
确定静态字典中除所述第一部分的第一字段值之外的其余静态字段值的第五出现次数;
根据所述第五出现次数对所述静态字段值进行排序,得到第二序列,包括:
根据所述第五出现次数对其余所述静态字段值进行排序,得到第二序列;
基于所述第二序列和所述第一字段值序列,确定所述静态字段值对应的第一字段值,包括:
基于所述第二序列和所述第一字段值序列,确定其余所述静态字段值对应的第二部分的第一字段值;
利用对应的第一字段值替换所述静态字典中的静态字段值,得到第一字段值集,包括:
利用对应的第二部分的第一字段值替换所述静态字典中的其余静态字段值,得到第一字段值集。
在一可选的实施方式中,所述第四压缩数据包括第二字段值序列;所述利用第三解压策略对所述压缩数据中的第四压缩数据进行解压,得到第二字段值集,包括:
确定动态字典中各个动态字段值的第六出现次数,所述动态字段值是利用第四位置信息替换第二字段值集中的第二字段值的结果;
根据所述第六出现次数对所述动态字段值进行排序,得到第三序列;
基于所述第三序列和所述第二字段值序列,确定所述动态字段值对应的第二字段值;
利用对应的第二字段值替换所述动态字典中的动态字段值,得到第二字段值集。
在一可选的实施方式中,所述第四压缩数据还包括第二类型压缩数据;所述方法还包括:
基于字段值类型,对所述第二类型压缩数据进行解压,得到第一部分的第二字段值。
在一可选的实施方式中,所述确定动态字典中各个动态字段值的第六出现次数,包括:
确定动态字典中除所述第一部分的第二字段值之外的其余动态字段值的第六出现次数;
根据所述第六出现次数对所述动态字段值进行排序,得到第三序列,包括:
根据所述第六出现次数对其余所述动态字段值进行排序,得到第三序列;
基于所述第三序列和所述第二字段值序列,确定所述动态字段值对应的第二字段值,包括:
基于所述第三序列和所述第二字段值序列,确定其余所述动态字段值对应的第二部分的第二字段值;
利用对应的第二字段值替换所述动态字典中的动态字段值,得到第二字段值集,包括:
利用对应的第二部分的第二字段值替换所述动态字典中的其余动态字段值,得到第二字段值集。
第三方面,本发明实施例提供一种数据处理装置,所述装置应用于服务端,所述装置包括:
字段确定模块,用于接收客户端发送的数据请求,确定与所述数据请求相匹配的目标字段集;
数据确定模块,用于查找所述目标字段集对应的目标字段值集,确定所述目标字段集以及所述目标字段值集为待压缩数据;
数据压缩模块,用于查找所述数据请求中携带的策略标识对应的目标压缩策略,利用所述目标压缩策略对所述待压缩数据进行压缩,并返回给所述客户端。
在一可选的实施方式中,所述数据请求携带静态字典标识和/或动态字典标识;所述字段确定模块,具体用于:
从预设的静态字典集中,确定与所述静态字典标识对应的静态字典;从所述静态字典中查找与所述数据请求相匹配的第一字段集;和/或,
从预设的动态字典集中,确定与所述动态字典标识对应的动态字典;从所述动态字典中查找与所述数据请求相匹配的第二字段集;
将所述第一字段集和/或所述第二字段集确定为与所述数据请求相匹配的目标字段集。
在一可选的实施方式中,所述数据确定模块,具体用于:
从所述静态字典中查找所述第一字段集中每一第一字段对应的第一字段值;和/或,
从所述动态字典中查找所述第二字段集中每一第二字段对应的第二字段值;
将查找到的所述第一字段值和/或所述第二字段值归入目标字段值集。
在一可选的实施方式中,所述数据压缩模块,包括:
第一压缩单元,用于利用第一压缩策略对所述第一字段集进行压缩;
第二压缩单元,用于利用第三压缩策略对第一字段值集进行压缩,所述第一字段值集包括从所述静态字典中查找到的第一字段值;
和/或,
第三压缩单元,用于利用第二压缩策略对所述第二字段集进行压缩;
第四压缩单元,用于利用所述第三压缩策略对第二字段值集进行压缩,所述第二字段值集包括从所述动态字典中查找到的第二字段值。
在一可选的实施方式中,所述第一压缩单元,具体用于:
获取所述第一字段集中每一第一字段在所述静态字典中的第一位置信息;
利用对应的第一位置信息替换所述第一字段集中的第一字段。
在一可选的实施方式中,所述第三压缩单元,具体用于:
确定所述第二字段集中每一第二字段在所述动态字典中的第一出现次数;
根据所述第一出现次数对所述第二字段集中的第二字段进行排序,得到第二字段序列;
确定所述第二字段集中每一第二字段在所述第二字段序列中的第二位置信息;
利用对应的第二位置信息替换所述第二字段集中的第二字段。
在一可选的实施方式中,所述第二压缩单元,具体用于:
确定第一字段值集中每一第一字段值在所述静态字典中的第二出现次数;
根据所述第二出现次数对所述第一字段值集中的第一字段值进行排序,得到第一字段值序列;
确定所述第一字段值集中每一第一字段值在所述第一字段值序列中的第三位置信息;
利用对应的第三位置信息替换所述第一字段值集中的第一字段值。
在一可选的实施方式中,所述装置还包括:
第一占用量确定模块,用于在所述确定第一字段值集中每一第一字段值在所述静态字典中的第二出现次数之前,确定第一字段值集中的第一字段值对应的存储空间占用量;
第一执行模块,用于将对应的所述存储空间占用量满足预设条件的第一字段值从所述第一字段值集中删除,并针对删除处理后的第一字段值集,执行所述确定第一字段值集中每一第一字段值在所述静态字典中的第二出现次数的步骤。
所述装置还包括:
第一字段值压缩模块,用于基于字段值类型,对所述存储空间占用量满足所述预设条件的第一字段值进行压缩。
在一可选的实施方式中,所述第四压缩单元,具体用于:
确定第二字段值集中每一第二字段值在所述动态字典中的第三出现次数;
根据所述第三出现次数对所述第二字段值集中的第二字段值进行排序,得到第二字段值序列;
确定所述第二字段值集中每一第二字段值在所述第二字段值序列中的第四位置信息;
利用对应的第四位置信息替换所述第二字段值集中的第二字段值。
在一可选的实施方式中,所述装置还包括:
第二占用量确定模块,用于在所述确定第二字段值集中每一第二字段值在所述动态字典中的第三出现次数之前,确定第二字段值集中的第二字段值对应的存储空间占用量;
第二执行模块,用于将对应的所述存储空间占用量满足预设条件的第二字段值从所述第二字段值集中删除,并针对删除处理后的第二字段值集,执行所述确定第二字段值集中每一第二字段值在所述动态字典中的第三出现次数的步骤。
所述装置还包括:
第二字段值压缩模块,用于基于字段值类型,对所述存储空间占用量满足所述预设条件的第二字段值进行压缩。
第四方面,本发明实施例提供一种数据处理装置,所述装置应用于客户端,所述装置包括:
请求发送模块,用于向服务端发送数据请求,以使所述服务端接收客户端发送的数据请求,确定与所述数据请求相匹配的目标字段集,查找所述目标字段集对应的目标字段值集,确定所述目标字段集以及所述目标字段值集为待压缩数据,并查找所述数据请求携带的策略标识对应的目标压缩策略,然后利用所述目标压缩策略对所述待压缩数据进行压缩;
结果接收模块,用于接收所述服务端返回的压缩数据;
策略确定模块,用于根据所述数据请求中携带的策略标识,确定对应的目标解压策略;
数据解压模块,用于利用所述目标解压策略对所述压缩数据进行解压,得到所述目标字段集以及所述目标字段值集。
在一可选的实施方式中,所述压缩数据包括第一压缩数据与第二压缩数据,和/或,第三压缩数据与第四压缩数据;所述数据解压模块,包括:
第一解压单元,用于利用第一解压策略对所述压缩数据中的第一压缩数据进行解压,得到第一字段集;
第二解压单元,用于利用第三解压策略对所述压缩数据中的第二压缩数据进行解压,得到第一字段值集;
和/或,
第三解压单元,用于利用第二解压策略对所述压缩数据中的第三压缩数据进行解压,得到第二字段集;
第四解压单元,用于利用所述第三解压策略对所述压缩数据中的第四压缩数据进行解压,得到第二字段值集。
在一可选的实施方式中,所述第一压缩数据包括第一位置信息,所述第一解压单元,具体用于:
从静态字典中查找所述第一位置信息对应的第一字段集,将所述第一位置信息替换为所述第一字段集。
在一可选的实施方式中,所述第三压缩数据包括第二字段序列,所述第三解压单元,具体用于:
确定动态字典中各个动态字段的第四出现次数,所述动态字段是利用第二位置信息替换第二字段集中的第二字段的结果;
根据所述第四出现次数对各个所述动态字段进行排序,得到第一序列;
基于所述第一序列和所述第二字段序列,确定各个所述动态字段对应的第二字段;
利用对应的第二字段替换所述动态字典中的动态字段,得到第二字段集。
在一可选的实施方式中,所述第二压缩数据包括第一字段值序列,所述第二解压单元,包括:
第一解压子单元,用于确定静态字典中各个静态字段值的第五出现次数,所述静态字段值是利用第三位置信息替换第一字段值集中的第一字段值的结果;
第二解压子单元,用于根据所述第五出现次数对所述静态字段值进行排序,得到第二序列;
第三解压子单元,用于基于所述第二序列和所述第一字段值序列,确定所述静态字段值对应的第一字段值;
第四解压子单元,用于利用对应的第一字段值替换所述静态字典中的静态字段值,得到第一字段值集。
在一可选的实施方式中,所述第二压缩数据还包括第一类型压缩数据,所述装置还包括:
第一字段值解压模块,用于基于字段值类型,对所述第一类型压缩数据进行解压,得到第一部分的第一字段值。
在一可选的实施方式中,所述第一解压子单元,具体用于:
确定静态字典中除所述第一部分的第一字段值之外的其余静态字段值的第五出现次数;
所述第二解压子单元,具体用于:
根据所述第五出现次数对其余所述静态字段值进行排序,得到第二序列;
所述第三解压子单元,具体用于:
基于所述第二序列和所述第一字段值序列,确定其余所述静态字段值对应的第二部分的第一字段值;
所述第四解压子单元,具体用于:
利用对应的第二部分的第一字段值替换所述静态字典中的其余静态字段值,得到第一字段值集。
在一可选的实施方式中,所述第四压缩数据包括第二字段值序列,所述第四解压单元,包括:
第五解压子单元,用于确定动态字典中各个动态字段值的第六出现次数,所述动态字段值是利用第四位置信息替换第二字段值集中的第二字段值的结果;
第六解压子单元,用于根据所述第六出现次数对所述动态字段值进行排序,得到第三序列;
第七解压子单元,用于基于所述第三序列和所述第二字段值序列,确定所述动态字段值对应的第二字段值;
第八解压子单元,用于利用对应的第二字段值替换所述动态字典中的动态字段值,得到第二字段值集。
在一可选的实施方式中,所述第四压缩数据还包括第二类型压缩数据,所述装置还包括:
第二字段值模块,用于基于字段值类型,对所述第二类型压缩数据进行解压,得到第一部分的第二字段值。
在一可选的实施方式中,所述第五解压子单元,具体用于:
确定动态字典中除所述第一部分的第二字段值之外的其余动态字段值的第六出现次数;
所述第六解压子单元,具体用于:
根据所述第六出现次数对其余所述动态字段值进行排序,得到第三序列;
所述第七解压子单元,具体用于:
基于所述第三序列和所述第二字段值序列,确定其余所述动态字段值对应的第二部分的第二字段值;
所述第八解压子单元,具体用于:
利用对应的第二部分的第二字段值替换所述动态字典中的其余动态字段值,得到第二字段值集。
第五方面,本发明实施例提供一种电子设备,包括:处理器和存储器,所述处理器用于执行所述存储器中存储的数据处理程序,以实现第一方面或第二方面中任一项所述的数据处理方法。
第六方面,本发明实施例提供一种存储介质,所述存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现第一方面或第二方面中任一项所述的数据处理方法。
本发明实施例提供的技术方案,通过接收客户端发送的数据请求,确定与数据请求相匹配的目标字段集;查找目标字段集对应的目标字段值集,确定目标字段集以及目标字段值集为待压缩数据;查找数据请求中携带的策略标识对应的目标压缩策略,利用目标压缩策略对待压缩数据进行压缩,并返回给客户端。由此,可筛选出与数据请求相匹配的目标字段集以及目标字段值集作为待压缩数据,而对于客户端没有请求的数据,则不必对其进行压缩,减少了数据的冗余浪费。
附图说明
图1为本发明实施例涉及系统的架构示意图;
图2为现有技术中一种数据处理方法的实施例流程图;
图3为本发明实施例提供的一种数据处理方法的实施例流程图;
图4为本发明实施例提供的另一种数据处理方法的实施例流程图;
图5为本发明实施例提供的又一种数据处理方法的实施例流程图;
图6为本发明实施例提供的再一种数据处理方法的实施例流程图;
图7为本发明实施例提供的还一种数据处理方法的实施例流程图;
图8为本发明实施例提供的还一种数据处理方法的实施例流程图;
图9为本发明实施例提供的还一种数据处理方法的实施例流程图;
图10为本发明实施例提供的还一种数据处理方法的实施例流程图;
图11为本发明实施例提供的还一种数据处理方法的实施例流程图;
图12为本发明实施例提供的一种数据处理装置的实施例框图;
图13为本发明实施例提供的另一种数据处理装置的实施例框图;
图14为本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为便于理解本发明实施例,下面首先结合附图对本发明涉及的系统架构进行举例说明:
参见图1,为本发明实施例涉及系统的架构示意图。如图1所示的系统包括:客户端101、服务端102。
其中,客户端101是为用户提供服务的应用程序,其可以是运行于独立进程的应用程序、嵌入于客户端中的独立于主页面的子应用程序(小程序)、运行于网络浏览器上的功能(又称WebApp)、嵌入于电子邮件中的小程序等。也可以是为用户提供服务的硬件设备,例如:智能手机、平板电脑、膝上型便携计算机、台式计算机等,图1仅以客户端101为智能手机为例。
服务端102是指与上述应用程序对应的,为应用程序提供后台服务的后台服务端,后台服务包括但不限于:数据压缩服务、数据处理服务等。
基于图1所示例的系统架构,现有技术中按照图2所示例的流程来获取数据。如图2所示,为现有技术中一种数据处理方法的实施例流程图,在图2所示流程中,客户端101向服务端102发送数据请求,服务端102接收客户端101发送的数据请求,根据数据请求确定待压缩数据,利用预设的压缩策略对待压缩数据进行压缩,将压缩数据返回给客户端101。
客户端101接收到服务端102返回的压缩数据,利用预设的解压策略对上述压缩数据进行解压,得到来自服务端102的原始数据,也即压缩之前的数据。
在上述过程中,服务端102会根据客户端101发送的数据请求,将服务端102上与数据请求相匹配的数据确定为待压缩数据,由于该数据中存在部分数据是由于服务器升级而增加的,并且该部分数据是客户端不需要的,因此,在对上述待压缩数据进行压缩时,可能导致该部分数据冗余浪费。
需要说明的是,图1中客户端和服务端的数量仅仅是一种示例性说明,本发明实施例对此不做限制。
下面结合附图以具体实施例对本发明提供的数据处理方法做进一步的解释说明,实施例并不构成对本发明实施例的限定。
参见图3,为本发明实施例提供的一种数据处理方法的实施例流程图。作为一个实施例,该方法可应用于服务端,例如图1中所示例的服务端102。如图3所示,该流程可包括以下步骤:
步骤301、服务端接收客户端发送的数据请求,确定与数据请求相匹配的目标字段集。
步骤302、服务端查找目标字段集对应的目标字段值集,确定目标字段集以及目标字段值集为待压缩数据。
以下对步骤301和步骤302进行统一描述:
其中,上述数据可以是JSON(JavaScript Object Notation,JS对象简谱)格式的数据,JSON是一个格式化的String数据。
相应的,上述目标字段集可以是key集,目标字段集对应的目标字段值集可以是value集;上述数据也可以是其他格式(例如键值对格式)的数据,本发明实施例对此不做限制。
在一实施例中,客户端在检测到对获取数据的触发操作时,生成数据请求,并向服务器发送该数据请求。服务端可确定与数据请求相匹配的目标字段集,查找与目标字段集对应的目标字段值集,并将目标字段集以及目标字段值集确定为待压缩数据。
其中,上述触发操作可以是对客户端的可视化界面中指定图标的点击操作(包括单击操作或双击操作),本发明实施例对此不做限制。
由于服务端接口的迭代升级,添加了新业务所需字段和字段值,接口返回给客户端的数据越来越多,又因为返回给客户端的数据可能存在新增的无用的字段,因此浪费了客户端的带宽、内存及CPU计算资源,导致旧版本客户端性能逐渐变差。通过上述处理方式,可以从服务端上确定与数据请求相匹配的目标字段集以及目标字段集对应的目标字段值集为待压缩数据,对于客户端没有请求的数据,服务端不必对其进行压缩,提高了根据数据请求确定对应的数据的灵活性,降低了由于服务端接口的迭代升级对旧版本客户端性能的影响,减少数据的冗余浪费。
步骤303、服务端查找数据请求中携带的策略标识对应的目标压缩策略,利用目标压缩策略对待压缩数据进行压缩,并返回给客户端。
在一实施例中,上述数据请求可携带策略标识。因此,服务器在接收到该数据请求后,可以从中解析出策略标识。
上述策略标识是用于指示对待压缩数据进行压缩时采用的压缩策略的标识,其可以是服务端上指示目标压缩策略的数字版本号,用以向前兼容(指老的版本的软/硬件可以使用新版本的软/硬件产生的数据)。相应的,目标压缩策略是与上述策略标识对应的压缩策略,本发明实施例对此不做限制。
进一步地,服务端可根据解析出的策略标识,从服务端上多个压缩策略中确定目标压缩策略。例如,假设服务端解析出的策略标识为1,并假设服务端上有压缩策略A,B,C,其对应的策略标识分别是:1,2,3。那么,按照上述描述,确定与策略标识对应的压缩策略为目标压缩策略,目标压缩策略为A。
再进一步地,利用该目标压缩策略对待压缩数据进行压缩,并将压缩得到的压缩数据返回给客户端。
通过这种处理方式,可以确定与客户端发送的数据请求中携带的策略标识对应的目标压缩策略,利用目标压缩策略对待压缩数据进行压缩,破解者无法轻易破解压缩数据,这就保证了数据传输的安全性,并且由于待压缩数据是与数据请求相匹配的服务端上的数据,对其进行压缩,而客户端没有请求的数据,不必对其进行压缩,减少了数据的冗余浪费。
至此,完成图3所示流程的相关描述。
通过图3所示流程可以看出,在本发明的技术方案中,通过接收客户端发送的数据请求,确定与数据请求相匹配的目标字段集;查找目标字段集对应的目标字段值集,确定目标字段集以及目标字段值集为待压缩数据;查找数据请求中携带的策略标识对应的目标压缩策略,利用目标压缩策略对待压缩数据进行压缩,并返回给客户端。由此,可筛选出与数据请求相匹配的目标字段集以及目标字段值集作为待压缩数据,而对于客户端没有请求的数据,则不必对其进行压缩,减少了数据的冗余浪费。
参见图4,为本发明实施例提供的另一种数据处理方法的实施例流程图。该图4所示流程在上述图3所示流程的基础上,在数据请求携带静态字典标识和动态字典标识的情况下,描述如何确定待压缩数据,以及利用目标压缩策略对待压缩数据进行压缩。如图4所示,该流程可包括以下步骤:
步骤401、服务端接收客户端发送的数据请求,数据请求携带静态字典标识和动态字典标识。
步骤402、服务端从预设的静态字典集中,确定与静态字典标识对应的静态字典,从静态字典中查找与数据请求相匹配的第一字段集。
步骤403、服务端从预设的动态字典集中,确定与动态字典标识对应的动态字典,从动态字典中查找与数据请求相匹配的第二字段集。
步骤404、将第一字段集和第二字段集确定为与数据请求相匹配的目标字段集。
步骤405、服务端从静态字典中查找第一字段集中每一第一字段对应的第一字段值。
步骤406、服务端从动态字典中查找第二字段集中每一第二字段对应的第二字段值。
步骤407、服务端将查找到的第一字段值和第二字段值归入目标字段值集。
步骤408、服务端确定目标字段集以及目标字段值集为待压缩数据。
以下对步骤401至步骤408进行统一描述:
在一实施例中,在客户端向服务端发送数据请求过程中,可将向服务端发送静态字典标识(例如,静态字典版本号)和动态字典标识(例如,动态字典参数),也即,数据请求携带静态字典标识和动态字典标识。基于此,在本发明实施例中,服务端可接收到客户端发送的数据请求,从数据请求中解析出静态字典标识和动态字典标识,根据静态字典标识和动态字典标识可确定目标字段集以及目标字段值集,将目标字段集以及目标字段值集确定为待压缩数据。
其中,上述静态字典是业务方在客户端发版时服务端发送给客户端的字典数据,并且随着业务的发展,字典数据不会发生变化。上述静态字典版本号是业务方在客户端发版时与服务端约定好的一个数字版本号,基于该静态字典版本号可以从服务端上确定客户端所请求的静态字典。
上述动态字典是在服务端迭代升级或者业务发展的过程中新增且可发生变化的字典数据。上述动态字典标识可以是动态字典参数True或者False,True用于指示客户端请求动态字典,False用于指示客户端未请求动态字典。
上述静态字典和动态字典中的数据可以是数组形式,也可以其他形式,本发明实施例对此不做限制。
在一实施例中,上述确定与数据请求相匹配的目标字段集的具体实现可包括:从预设的静态字典集中,确定与静态字典标识对应的静态字典,从静态字典中查找与数据请求相匹配的第一字段集;以及从预设的动态字典集中,确定与动态字典标识对应的动态字典,从动态字典中查找与数据请求相匹配的第二字段集;将第一字段集和第二字段集确定为与数据请求相匹配的目标字段集。
其中,上述静态字典是与静态字典标识对应的静态字典数据,也即是与数据请求相匹配的静态字典。第一字段集为静态字典中的所有静态字段的集合,该第一字段集中可包括至少一个静态字段,本发明实施例对此不做限制。
上述动态数据是与上述动态字典标识对应的动态字典数据,也即是与数据请求相匹配的动态字典。上述第二字段集为动态字典中所有动态字段的集合,该第二字段集中可包括至少一个动态字段,本发明实施例对此不做限制。
基于上述描述,在本发明实施例中,上述查找目标字段集对应的目标字段值集的具体实现可包括:从静态字典中查找第一字段集中每一第一字段对应的第一字段值,以及从动态字典中查找第二字段集中每一第二字段对应的第二字段值,将查找到的第一字段值和第二字段值归入目标字段值集。
基于上述描述,可确定上述目标字段集以及目标字段值集为待压缩数据。
例如,假设用户想要获取数据{key1:value1,key2:value2,key4:value4,key5:value5},客户端发送的数据请求中携带静态字典标识为dictversion1=1,动态字典标识为:True,并假设服务端上预设的静态字典集包括A={key1:value1,key2:value2},B={key1:value1,key2:value2,key3:value3},静态字典集对应的静态字典标识分别是:dictversion1=1,dictversion1=2。服务端上预设的动态字典集包括C={key4:value4,key5:value5}。那么,按照上述描述,服务端可从数据请求中解析出静态字典标识和动态字典标识,在服务端预设的静态字典集中,确定与静态字典标识对应的静态字典A,从静态字典中确定与数据请求相匹配的第一字段集为:{key1,key2},以及在服务端预设的动态字典集中,确定与动态字典标识对应的动态字典C,从动态字典中确定与数据请求相匹配的第二字段集为:{key4,key5},将第一字段集和第二字段集确定为目标字段集为:{key1,key2,key4,key5}。
并从静态字典中查找第一字段集中每一第一字段对应的第一字段值为:value1、value2,从动态字典中查找第二字段集中每一第二字段对应的第二字段值为:value4、value5,将查找到的第一字段值和第二字段值归入目标字段值集为:{value1,value2,value4,value5}。
确定目标字段集以及目标字段值集为待压缩数据,待压缩数据为:{key1:value1,key2:value2,key4:value4,key5:value5}。
步骤409、服务端查找数据请求中携带的策略标识对应的目标压缩策略,目标压缩策略包括第一压缩策略、第二压缩策略和第三压缩策略。
由上述描述可见,服务端可从数据请求中解析出策略标识,并根据策略标识确定目标压缩策略。
在实践中,由于字段和字段值的不同,可采用不同的压缩策略分别对字段和字段值进行压缩。在本发明实施例中,第一字段集是静态字典中与数据请求相匹配的第一字段的集合,而第二字段集是动态字典中与数据请求相匹配的第二字段的集合,基于第一字段集和第二字段集的差异,可以采用不同的压缩策略对第一字段集和第二字段集进行压缩,本发明实施例对此不做限制。
步骤410、服务端利用第一压缩策略对第一字段集进行压缩。
上述第一压缩策略是与数据请求中携带的策略标识对应的目标压缩策略之一,利用第一压缩策略可对第一字段集进行压缩。
在一实施例中,上述利用第一压缩策略对第一字段集进行压缩的具体实现可包括:获取第一字段集中每一第一字段在静态字典中的第一位置信息,利用对应的第一位置信息替换第一字段集中的第一字段。
其中,上述第一位置信息是第一字段集中每一第一字段在静态字典中的位置信息,其可以是第一字段集中的第一字段在静态字典中的位置编号(例如,1,2,3等或者01,02,03等),本发明实施例对此不做限制。
可选的,可以按照预设的编号规则,根据第一字段集中的第一字段在静态字典中的位置信息确定第一字段的位置编号,将该位置编号替换第一目标字段。
例如,假设待压缩数据包括静态字典为:{key1:value1,key2:value2},第一字段集为:{key1,key2}。那么,按照上述描述,获取第一字段对应的在静态字典中的第一位置信息为:1,2,利用对应的第一位置信息替换第一字段集中的第一字段,第一字段集为:{1,2}。
需要说明的是,以上仅仅是利用第一压缩策略对第一目标字段进行压缩的一种示例,并不构成对本发明实施例的限定。
步骤411、服务端利用第三压缩策略对第一字段值集进行压缩,第一字段值集包括从静态字典中查找到的第一字段值。
上述第三压缩策略是与数据请求中携带的策略标识对应的目标压缩策略之一,利用第三压缩策略可对目标字段值集(包括第一字段值集)进行压缩。
在一实施例中,上述利用第三压缩策略对第一字段值集进行压缩的具体实现可包括:确定第一字段值集中每一第一字段值在静态字典中的第二出现次数,根据第二出现次数对第一字段值集中的第一字段值进行排序,得到第一字段值序列,确定第一字段值集中每一第一字段值在第一字段值序列中的第三位置信息,利用对应的第三位置信息替换第一字段值集中的第一字段值。
其中,上述第三位置信息是第一字段值集中每一第一字段值在第一字段值序列中的位置信息,其可以是第一字段值在第一字段值序列中的位置编号,也可以是按照预设的编号规则,根据第三位置信息确定的其他编号,本发明实施例对此不做限制。
例如,假设待压缩数据包括静态字典为:{key1:value1,key2:value2,key3:value1},第一字段值集为:{value1,value2,value1}。那么,按照上述描述,确定第一字段值集中每一第一字段值在静态字典中的第二出现次数,根据第二出现次数对第一字段值集中的第一字段值进行排序,得到第一字段值序列:(value1,value2),确定第一字段值集中每一第一字段值在第一字段值序列中的第三位置信息为:1,2;之后,利用对应的第三位置信息替换第一字段值集中的第一字段值,第一字段值集为:{1,2,1}。
可以理解的是,为保证客户端可以准确地对服务端返回的压缩数据进行解压,得到第一字段值集,因此,服务端可以根据第一预设压缩策略对第一字段值序列进行压缩,并返回给客户端。
此外,在另一实施例中,上述对第一字段值集进行压缩的具体实现可包括:确定第一字段值集中每一第一字段值在静态字典中的第二出现次数,根据第二出现次数对第一字段值集中的第一字段值进行排序,得到第一字段值序列,可利用第一字段值序列对第一字段值集中的第一字段值进行字段值字典压缩,得到第一字段值字典;并获取第一字段值集中每一第一字段值在第一字段值字典中的位置信息,利用对应的位置信息替换第一字段值集中的第一字段值。这里,位置信息可以是第一字段值集中的第一字段值在第一字段值字典中的位置编号或者字典下标。位置编号或者字典下标可以是1,2,3等,或者,假设a代表静态字典,b代表动态字典,那么位置编号或者字典下标还可以是a1,a2,a3等,本发明实施例对此不做限制。
上述第一字段值字典中包括第一字段值集中的第一字段值。
例如,假设待压缩数据包括静态字典为:{key1:value1,key2:value2,key3:value1,key4:value2,key5:value2},第一字段值集为:{value1,value2,value1,value2,value2},那么,按照上述描述,确定第一字段值集中每一第一字段值在静态字典中的第二出现次数,根据第二出现次数对第一字段值集中的第一字段值进行排序,得到第一字段值序列,可利用第一字段值序列对第一字段值集中的第一字段值进行字段值字典编码,得到第一字段值字典为:(value2,value1)。获取第一字段值集中每一第一字段值在第一字段值字典中的位置信息为:1,2,利用对应的位置信息替换第一字段值集中的第一字段值,第一字段值集为:{2,1,2,1,1}。
可以理解的是,为保证客户端可以准确地对服务端返回的压缩数据进行解压,得到第一字段值集,服务端可根据第二预设压缩方式对第一字段值字典进行压缩,并返回给客户端。
在实践中,由于第一字段值字典中的第一字段值可能包括英文字符,还可能包括中文字符,因此,可采用GBK(Chinese Internal Code Specification,汉字内码扩展规范)压缩方式或者UTF-8(Universal Character Set/Unicode Transformation Format,8位元)压缩方式对第一字段值字典进行压缩,也即第二预设压缩方式是GBK压缩方式或者UTF-8压缩方式。
需要说明的是,由于字段值的存储空间占用量不同,因此,可根据字段值的空间占用量分别执行不同的压缩操作。具体的,在上述确定第一字段值集中每一第一字段值在静态字典中的第二出现次数之前,确定第一字段值集中的第一字段值对应的存储空间占用量,将对应的存储空间占用量满足预设条件的第一字段值从第一字段值集中删除,并针对删除处理后的第一字段值集,执行确定第一字段值集中每一第一字段值在静态字典中的第二出现次数的步骤。
这里,基于存储空间占用量,若第一字段值集中的第一字段值为字符串类型的字段值,上述预设条件可以是第一字段值的字符个数小于或者等于1且第一字段值集中的第一字段值在静态字典中的第二出现次数小于或者等于1。其中,上述第一字段值的字符个数和第二出现次数为正整数。
对于存储空间占用量满足预设条件的第一字段值,可基于字段值类型对该其进行压缩。上述字段值类型至少包括:整数类型、浮点数类型、数组类型、对象类型。针对不同类型的字段值,可采取不同压缩方式对字段值进行压缩。
可选的,针对整数类型的字段值,采用变长无符号、有符号压缩方式对上述其余部分第一字段值进行压缩。
可选的,针对浮点数类型的字段值,采用IEEE754压缩方式对上述其余部分第一字段值进行压缩。
需要说明的是,以上仅仅是本发明实施例涉及的对第一字段值进行压缩的一种示例,在实践中,本发明实施例还可通过其他方式对第一字段值进行压缩,本发明实施例对此不做限制。
步骤412、服务端利用第二压缩策略对第二字段集进行压缩。
上述第二压缩策略是与数据请求中携带的策略标识对应的目标压缩策略之一,利用第二压缩策略可对第二字段集进行压缩。
在一实施例中,上述利用第二压缩策略对第二字段集进行压缩的具体实现可包括:确定第二字段集中每一第二字段在动态字典中的第一出现次数,根据第一出现次数对第二字段集中的第二字段进行排序,得到第二字段序列,确定第二字段集中每一第二字段在第二字段序列中的第二位置信息,之后,利用对应的第二位置信息替换第二字段集中的第二字段。
其中,上述第二位置信息是第二字段集中每一第二字段在动态字典中的位置信息,其可以是第二字段在第二字段序列中的位置编号,也可以是按照预设编号规则,根据第二位置信息确定的其他编号,本发明实施例对比不做限制。
例如,假设待压缩数据包括动态字典为:{key4:value4,key5:value5,key4:value6,key4:value7},第二字段集为:{key4,key5,key4,key4}。那么,按照上述描述,确定第二字段集中每一第二字段在动态字典中的第一出现次数,根据第一出现次数对第二字段集中的第二字段进行排序,得到第二字段序列为:(key4,key5),确定第二字段集中每一第二字段在第二字段序列中的第二位置信息为:1,2,利用对应的第二位置信息替换第二字段集中的第二字段,第二字段集为:{1,2,1,1}。
可以理解的是,为保证客户端可以准确地对服务端返回的压缩数据进行解压,得到第二字段集,因此,服务端可以根据第三预设压缩方式对第二字段序列进行压缩,并返回给客户端。
此外,在另一实施例中,上述对第二字段集进行压缩的具体实现可包括:确定第二字段集中每一第二字段在动态字典中的第一出现次数,根据第一出现次数对第二字段集中的第二字段进行排序,得到第二字段序列,可利用第二字段序列对第二字段集中的第二字段进行字段字典压缩,得到字段字典;获取第二字段集中每一第二字段在字段字典中的位置信息,利用对应的位置信息替换第二字段集中的第二字段。这里,位置信息可以是第二字段集中第二字段在字段子点中的位置编号(或者字典下标)。上述字段字典中包括第二字段集中的第二字段。
例如,假设待压缩数据包括动态字典为:{key4:value4,key5:value5,key4:value6,key4:value7},第二字段集为:{key4,key5,key4,key4}。那么,按照上述描述,确定第二字段集中每一第二字段在动态字典中的第一出现次数,根据第一出现次数对第二字段集中的第二字段进行排序,得到第二字段序列,利用第二字段序列对第二字段集中的第二字段进行字段字典压缩,得到字段字典为:(key4,key5),获取第二字段集中每一第二字段在字段字典中的位置信息为:1,2,利用对应的位置信息替换第二字段集中的第二字段,第二字段集为:{1,2,1,1}。
可以理解的是,为保证客户端可以准确地对服务端返回的压缩数据进行解压,得到第二字段集,服务端可根据第四预设压缩方式对字段字典进行压缩,并返回给客户端。
在实践中,由于字段字典中的第二字段一般是英文字符,因此,可采用UTF-8压缩方式对字段字典进行压缩,也即上述第四预设压缩方式可以是UTF-8压缩方式。
此外,在动态字典中包括多个集合数据或者存在至少一个集合数据嵌套有多层级的集合数据的情况下,可将第二字段集进行合并。
具体的,在动态字典中包括多个集合数据或者存在至少一个集合数据嵌套有多层级的集合数据的情况下,可对该集合数据中第一层级的第二字段集进行提取合并,并进行Bit(Binary digit,比特)标记,得到一个Bitmap(位图),以此类推,分别合并多个不同层级的第二字段集,进行Bit标记,得到Bitmap集。然后,按照预设的合并规则将该多个不同层级(包括第一层级)的Bitmap进行合并。
具体的,以第一个层级的Bitmap为基础Bitmap开始合并,其中,若两个或者多个Bitmap中元素(也即第二字段)的数目之和小于等于8,可直接合并。在合并过程中,可通过预设的算法去计算该两个或多个Bitmap合并的价值,可将合并价值为整数且最大的第二字段集进行合并。
若两个或者多个Bitmap中元素的数目之和大于8,则通过预设的算法去计算该两个或多个Bitmap合并的价值,可将合并价值为整数且最大的第二字段集进行合并。
步骤413、服务端利用第三压缩策略对第二字段值集进行压缩,第二字段值集包括从动态字典中查找到的第二字段值。
由上述描述可见,利用第三压缩策略可对目标字段值集(包括第二字段值集)进行压缩。
在一实施例中,上述利用第三压缩策略对第二字段值集进行压缩的具体实现可包括:确定第二字段值集中每一第二字段值在动态字典中的第三出现次数,根据第三出现次数对第二字段值集中的第二字段值进行排序,得到第二字段值序列,确定第二字段值集中每一第二字段值在第二字段值序列中的第四位置信息,利用对应的第四位置信息替换第二字段值集中的第二字段值。
其中,上述第四位置信息是第二字段值集中每一第二字段值在第二字段值序列中的位置信息,其可以是第二字段值在第二字段值序列中的位置编号,也可以是按照预设的编号规则,根据第四位置信息确定的其他编号,本发明实施例对此不做限制。
例如,假设待压缩数据包括动态字典为:{key4:value4,key5:value5,key6:value4},第二字段值集为:{value4,value5,value4}。那么,按照上述描述,确定第二字段值集中每一第二字段值在动态字典中的第三出现次数,根据第三出现次数对第二字段值集中的第二字段值进行排序,得到第二字段值序列为:(value4,value5),确定第二字段值集中每一第二字段值在第二字段值序列中的第四位置信息为:1,2,利用对应的第四位置信息替换第二字段值集中的第二字段值,第二字段值集为:{1,2,1}。
可以理解的是,为保证客户端可以准确地对服务端返回的压缩数据进行解压,得到第二字段值集,因此,服务端可以根据第一预设压缩方式对第二字段值序列进行压缩,并返回给客户端。
此外,在另一实施例中,上述对第二字段值集进行压缩的具体实现可包括:确定第二字段值集中每一第二字段值在动态字典中的第三出现次数,根据第三出现次数对第二字段值集中的第二字段值进行排序,得到第二字段值序列,可利用第二字段值序列对第二字段值集中的第二字段值进行字段值字典编码,得到第二字段值字典,并获取第二字段值集中每一第二字段值在第二字段值字典中的位置信息,利用对应的位置信息替换第二字段值集中的第二字段值。这里,位置信息可以是第二字段值集中的第二字段值在第二字段值字典中的位置编号(或者字典下标)。上述第二字段值字典中包括第二字段值集中的第二字段值。
例如,假设待压缩数据包括动态字典为:{key4:value4,key5:value5,key6:value4,key7:value5,key8:value5},第二字段值集为:{value4,value5,value4,value5,value5}。那么,按照上述描述,确定第二字段值集中每一第二字段值在动态字典中的第三出现次数,根据第三出现次数对第二字段值集中的第二字段值进行排序,得到第二字段值序列,可利用第二字段值序列对第二字段值集中的第二字段值进行字段值字典编码,得到第二字段值字典为:(value5,value4),并获取第二字段值集中每一第二字段值在第二字段值字典中的位置信息为:1,2,利用对应的位置信息替换第二字段值集中的第二字段值,第二字段值集为:{2,1,2,1,1}。
可以理解的是,为保证客户端可以准确地对服务端返回的压缩数据进行解压,得到第二字段值集,服务端可根据第二预设压缩方式对第二字段值字典进行压缩,并返回给客户端。由步骤411的描述可见,上述第二预设压缩方式可以是GBK压缩方式或者UTF-8压缩方式。
需要说明的是,由于字段值的存储空间占用量不同,因此,可根据字段值的空间占用量分别执行不同的压缩操作。具体的,在上述确定第二字段值集中每一第二字段值在动态字典中的第三出现次数之前,确定第二字段值集中的第二字段值对应的存储空间占用量,将对应的存储空间占用量满足预设条件的第二字段值从第二字段值集中删除,并针对删除处理后的第二字段值集,执行确定第二字段值集中每一第二字段值在动态字典中的第三出现次数的步骤。
这里,基于存储空间占用量,若第二字段集中的第二字段值为字符串类型的字段值,上述预设条件可以是第二字段值的字符个数小于或者等于1且第二字段值集中的第二字段值在动态字典中的第三出现次数小于或者等于1。其中,上述第二字段值的字符个数和第三出现次数为正整数。
对于存储空间占用量满足预设条件的第二字段值,可基于字段值类型对该其进行压缩,具体可参见步骤411的详细介绍,这里不再赘述。
此外,为保证客户端可以准确地获取目标字段集和目标字段值集,服务端可采用预设的压缩策略对待压缩数据的配置信息以及服务端所采用的策略标识进行压缩,并将其返回给客户端。
其中,上述配置信息包括:对待压缩数据进行压缩的压缩模式,以及待压缩数据中静态字典的使用情况。上述压缩模式可包括但不限于:GZIP(GNUzip)、IQZ、IQZ+GZIP。
这里,IQZ是一种高压缩比对象型字节流协议,其特性为:便捷的将JSON数据转换为字节流,并准确还原为JSON格式的原数据;高压缩比,特别是待压缩数据中存在静态字典的情况下更甚。对于列表类的数据的压缩效果显著,并且为后期升级兼容旧版本提供了方案。相比单独的IQZ、GZIP压缩模式,采用IQZ+GZIP压缩模式对待压缩数据进行压缩的压缩效果更加显著,十分适合目前移动互联网的JSON接口压缩。相对JSON数据明文,IQZ压缩模式对数据进行压缩后,使得数据安全性高,提高了拦截门槛。可以实现根据客户端需要的字典范围过滤多余的字段。
通过GZIP压缩模式对待压缩数据进行压缩,可以得到字节数组,该字节数组表示为:Config+GZIP(JSON Data)。
通过IQZ压缩模式对待压缩数据进行压缩,可以得到字节数组,该字节数组表示为:Config+SDK Version+Bitmap Values+Dictionary+Data。
通过IQZ+GZIP压缩模式对待压缩数据进行压缩,可以得到字节数组,该字节数组表示为:Confi g+GZIP(SDK Version+Bitmap Values+Dictionary+Data)。
其中,上述Config为压缩数据所采用的压缩模式,以及静态字典的使用情况;SDKVersion为压缩数据采用的策略标识;Bitmap Values为Bitmap集中的值,是第二字段集压缩过程中的一种特殊结构,目的是为了减少字段依赖的压缩大小;Dictionary为第二字段集、第一字段值集以及第二字段值集(未满足预设条件的字段值集);Data为待压缩数据。
上述字节数组中各数据的数据结构分别为:
Config,占用1个字节(也即8比特),其中前2个比特表示压缩模式,第3个比特表示静态字典的匹配情况,第4到第8个比特作为预留比特,后期算法扩展使用。具体格式为:Mode+Match+预留;
上述Mode代表压缩模式,可包括为:0b00(表示IQZ+GZIP压缩模式),0b01(表示IQZ压缩模式),0b11(表示GZIP压缩模式)。Match代表静态字典的匹配情况,可包括:0b0(表示没有匹配到静态字典),0b1(表示匹配到并采用静态字典)。
SDK Version,每个字节的第一个比特是0,表示该字节是整数的最后一个字节;如果是1,表示该字节后面还有下一个字节是该整数的字节部分。即VLQ(Variable LengthQuantity)表示法。
Bitmap Values,具体格式为:Len+Bitmap Value;上述Len表示后面有多少个Bitmap Value;Bitmap Value:是Bitmap的值。
上述Bitmap Value的格式如下:Len+DictMap+KeyOffset;
其中,Len表示该DictMap表示多少个字段,即DictMap对应的前多少个比特数是此次Bitmap标记有效位。DictMap表示Len个比特所对应的最少字节数。例如,10个字段,需要2个字节表示:0b1011101011000000。KeyOffset表示字段所在字典下标,对应DictMap中的比特值是0,表示是静态字典下标;对应DictMap中的比特值是1,表示是动态字典下标。
Dictionary,具体格式为:Dynamic Key Dictionary+Value Dictionary(UTF-8)+Value Dictionary(GBK);
其中,上述Dynamic Key Dictionary表示动态字段字典,也即第二字段集;ValueDictionary(UTF-8)表示第一字段值集中除满足预设条件的第一字段值集以及第二字段值集中除满足预设条件的第二字段值集,且不符合GBK压缩方式,采用UTF-8压缩方式进行压缩的字段值集;Value Dictionary(GBK)表示第一字段值集中除满足预设条件的第一字段值集以及第二字段值集中除满足预设条件的第二字段值集,且采用GBK压缩方式进行压缩的字段值集。
Data,代表各字段值类型的字段值集。
步骤414、服务端返回给客户端。
由上述描述可见,确定利用第一压缩策略对第一字段集进行压缩,得到第一字段集的压缩数据(以下称第一压缩数据)和利用第三压缩策略对第一字段值集进行压缩,得到第一字段值集的压缩数据(以下称第二压缩数据),以及利用第二压缩策略对第二字段集进行压缩,得到第二目标字段集的压缩数据(以下称第三压缩数据)和利用第三压缩策略对第二字段值集进行压缩,得到第二字段值集的压缩数据(以下称第四压缩数据),为目标字段集和目标字段值集的压缩数据,并将该压缩数据返回给客户端。
参见图5,为本发明实施例提供的又一种数据处理方法的实施例流程图。该图5所示流程在上述图3所示流程的基础上,在数据请求携带静态字典标识的情况下,描述如何确定待压缩数据,以及利用目标压缩策略对待压缩数据进行压缩。如图5所示,该流程可包括以下步骤:
步骤501、服务端接收客户端发送的数据请求,数据请求携带静态字典标识。
步骤502、服务端从预设的静态字典集中,确定与静态字典标识对应的静态字典,从静态字典中查找与数据请求相匹配的第一字段集。
步骤503、服务器将第一字段集确定为与数据请求相匹配的目标字段集。
步骤504、服务端从静态字典中查找第一字段集中每一第一字段对应的第一字段值。
步骤505、服务端将查找到的第一字段值归入目标字段值集。
步骤506、服务端确定目标字段集以及目标字段值集为待压缩数据。
步骤507、服务端查找数据请求中携带的策略标识对应的目标压缩策略,目标压缩策略包括第一压缩策略和第三压缩策略。
步骤508、服务端利用第一压缩策略对第一字段集进行压缩。
步骤509、服务端利用第三压缩策略对第一字段值集进行压缩,第一字段值集包括从静态字典中查找到的第一字段值。
步骤510、服务端返回给客户端。
至于步骤501至步骤510的详细描述可参见上述图4所示流程中相关描述,这里不再赘述。
参见图6,为本发明实施例提供的再一种数据处理方法的实施例流程图。该图6所示流程在上述图3所示流程的基础上,在数据请求携带动态字典标识的情况下,描述如何确定待压缩数据,以及利用目标压缩策略对待压缩数据进行压缩。如图6所示,该流程可包括以下步骤:
步骤601、服务端接收客户端发送的数据请求,数据请求携带动态字典标识。
步骤602、服务端从预设的动态字典集中,确定与动态字典标识对应的动态字典,从动态字典中查找与数据请求相匹配的第二字段集。
步骤603、服务器将第二字段集确定为与数据请求相匹配的目标字段集。
步骤604、服务端从动态字典中查找第二字段集中每一第二字段对应的第二字段值。
步骤605、服务端将查找到的第二字段值归入目标字段值集。
步骤606、服务端确定目标字段集以及目标字段值集为待压缩数据。
步骤607、服务端查找数据请求中携带的策略标识对应的目标压缩策略,目标压缩策略包括第二压缩策略和第三压缩策略。
步骤608、服务端利用第二压缩策略对第二字段集进行压缩。
步骤609、服务端利用第三压缩策略对第二字段值集进行压缩,第二字段值集包括从动态字典中查找到的第二字段值。
步骤610、服务端返回给客户端。
至于步骤601至步骤610的详细描述可参见上述图4所示流程中相关描述,这里不再赘述。
参见图7,为本发明实施例提供的还一种数据处理方法的实施例流程图。作为一个实施例,该方法可应用于客户端,例如图1中所示例的客户端101。如图7所示,该流程可包括以下步骤:
步骤701、客户端向服务端发送数据请求,以使服务端接收客户端发送的数据请求,确定与数据请求相匹配的目标字段集,查找目标字段集对应的目标字段值集,确定目标字段集以及目标字段值集为待压缩数据,并查找数据请求携带的策略标识对应的目标压缩策略,然后利用目标压缩策略对待压缩数据进行压缩。
步骤702、客户端接收服务端返回的压缩数据。
以下对步骤701和步骤702进行统一描述:
在一实施例中,客户端在检测到对获取数据的触发操作时,生成数据请求,并向服务器发送该数据请求,以使服务端可接收客户端发送的数据请求,确定与数据请求相匹配的待压缩数据和目标压缩策略,并利用目标压缩策略将待压缩数据进行压缩。由此,客户端可接收到服务端返回的压缩数据。至于如何利用目标压缩策略对待压缩数据进行压缩,具体可参见图4所示流程中相关描述,这里不再赘述。
通过上述处理方式,客户端在发送数据请求后,可接收到服务端返回的与数据请求相匹配的压缩数据。
步骤703、客户端根据数据请求中携带的策略标识,确定对应的目标解压策略。
步骤704、客户端利用目标解压策略对压缩数据进行解压,得到目标字段集以及目标字段值集。
以下对步骤703和步骤704进行统一描述:
由上述描述可见,在客户端发送数据请求给服务端的过程中,将策略标识发送给服务端,以使服务端根据策略标识确定目标压缩策略。同理,客户端可基于数据请求中携带的策略标识,确定与策略标识对应的目标解压策略。
进一步地,客户端可利用该目标解压策略对服务端返回的压缩数据进行解压,得到目标字段集和目标字段值集。至于如何利用该目标解压策略对服务端返回的压缩数据进行解压,在下文中通过图8所示流程进行说明,这里先不详述。
本发明实施例提供的技术方案,通过向服务端发送数据请求,以使服务端接收客户端发送的数据请求,确定与数据请求相匹配的目标字段集,查找目标字段集对应的目标字段值集,确定目标字段集以及目标字段值集为待压缩数据,并查找数据请求携带的策略标识对应的目标压缩策略,然后利用目标压缩策略对待压缩数据进行压缩;接收服务端返回的压缩数据,根据数据请求中携带的策略标识,确定对应的目标解压策略,并利用目标解压策略对压缩数据进行解压,得到目标字段集以及目标字段值集。由此,客户端接收到服务端根据数据请求筛选的目标字段集和目标字段值集,减少数据压缩造成的冗余浪费,并利用数据请求中携带的策略标识,确定对应的目标解压策略,对服务端发送的压缩数据进行解压,保证了数据传输的安全性。
参见图8,为本发明实施例提供的还一种数据处理方法的实施例流程图。该图8所示流程在上述图7所示流程的基础上,描述如何利用该目标解压策略对服务端返回的压缩数据进行解压。如图8所示,该流程可包括以下步骤:
步骤801、客户端向服务端发送数据请求,以使服务端接收客户端发送的数据请求,确定与数据请求相匹配的目标字段集,查找目标字段集对应的目标字段值集,确定目标字段集以及目标字段值集为待压缩数据,并查找数据请求携带的策略标识对应的目标压缩策略,然后利用目标压缩策略对待压缩数据进行压缩。
步骤802、客户端接收服务端返回的压缩数据,压缩数据包括第一压缩数据与第二压缩数据,和第三压缩数据与第四压缩数据。
由上述图4所示流程的相关描述可见,上述第一压缩数据为服务端利用第一压缩策略对第一字段集进行压缩,所得到的第一字段集的压缩数据;上述第二压缩数据为服务端利用第三压缩策略对第一字段值集进行压缩,所得到的第一字段值集的压缩数据;上述第三压缩数据为服务端利用第二压缩策略对第二字段集进行压缩,所得到的第二字段集的压缩数据;上述第四压缩数据为服务端利用第三压缩策略对第二字段值集进行压缩,所得到的第二字段值集的压缩数据。
至于上述步骤801和步骤802的详细描述,可参见上述图7所示流程中步骤701和步骤702的相关描述,这里不再赘述。
步骤803、客户端根据数据请求中携带的策略标识,确定对应的目标解压策略,目标解压策略包括第一解压策略、第二解压策略和第三解压策略。
至于上述步骤803的详细描述,可参见上述图7中步骤703的相关描述,这里不再赘述。
步骤804、客户端利用第一解压策略对压缩数据中的第一压缩数据进行解压,得到第一字段集。
在一实施例中,上述第一压缩数据至少包括第一位置信息,上述利用第一解压策略对压缩数据中的第一压缩数据进行解压,得到第一字段集的具体实现可包括:从静态字典中查找第一位置信息对应的第一字段集,将第一位置信息替换为第一字段集。其中,上述第一位置信息是指第一字段集中每一第一字段在静态字典中的位置信息。
其中,上述静态字典是客户端在发版时服务端返回的字典数据。该静态字典中包括第一字段集和第一字段值集。
例如,假设静态字典为:{key1:value1,key2:value2},其中,静态字典的字段对应的位置信息分别为:1,2,并假设第一压缩数据中第一位置信息为:1。那么,按照上述描述,从静态字典中查找第一位置信息对应的第一字段集为:{key1},并将第一位置信息替换为第一字段集,第一字段集为:{key1}。
步骤805、客户端利用第三解压策略对压缩数据中的第二压缩数据进行解压,得到第一字段值集。
在一实施例中,上述第二压缩数据至少包括第一字段值序列,上述利用第三解压策略对压缩数据中的第二压缩数据进行解压,得到第一字段值集的具体实现可包括:确定静态字典中各个静态字段值的第五出现次数,静态字段值是利用第三位置信息替换第一字段值集中的第一字段值的结果,根据第五出现次数对静态字段值进行排序,得到第二序列,基于第二序列和第一字段值序列,确定静态字段值对应的第一字段值,利用对应的第一字段值替换静态字典中的静态字段值,得到第一字段值集。
其中,上述第三位置信息是第一字段值集中每一第一字段值在第一字段值序列中的位置信息。
需要说明的是,上述第二压缩数据中的第一字段值序列是客户端根据第一预设解压策略对第一字段值序列压缩数据进行解压得到的,其中,第一字段值序列压缩数据是服务器根据第一预设压缩策略对第一字段值序列进行压缩得到的。第一字段值序列是根据第一字段值集中的第一字段值在静态字典中的第二出现次数,对第一字段值进行排序得到的。
例如,假设第二压缩数据中包括的第一字段值序列为:(value1,value2),并假设第二压缩数据中静态字典的静态字段值为:{1,2,1}。那么,按照上述描述,确定静态字典中各个静态字段值的第五出现次数,根据第五出现次数对静态字段值进行排序,得到第二序列为:(1,2),基于第二序列和第一字段值序列,确定静态字段值对应的第一字段值,各个静态字段值与第一字段值之间的对应关系为:1→value1,2→value2。之后,利用对应的第一字段值替换静态字典中的静态字段值,得到第一字段值集为:{value1,value2,value1}。
此外,在另一实施例中,上述第二压缩数据至少包括第一字段值字典。上述利用第三解压策略对压缩数据中的第二压缩数据进行解压,得到第一字段值集的具体实现可包括:查找第一字段值字典,确定第二压缩数据中静态字典的各个静态字段值对应的第一字段值,利用对应的第一字段值替换静态字典中的静态字段值,得到第一字段值集。
需要说明的是,上述第一字段值字典是客户端根据第二预设解压策略对第一字段值字典的压缩数据进行解压得到的。上述第二压缩数据中静态字典的各个静态字段值是根据第一字段值集中每一第一字段值在第一字段值字典中的位置信息,替换第一字段值的结果。因此,可以确定第二压缩数据中静态字典的静态字段值与第一字段值字典中第一字段值之间的关系。
例如,假设第二压缩数据中静态字典的静态字段值为:{2,1,2,1,1},第一字段值字典为:{value2,value1}。那么,按照上述描述,查找第一字段值字典,确定第二压缩数据中静态字典的各个静态字段值对应的第一字段值,确定静态字段值与第一字段值字典中第一字段值之间的关系为:1→value2,2→value1,利用对应的第一字段值替换静态字典中的静态字段值,得到第一字段值集,该第一字段值集为:{value1,value2,value1,value2,value2}。
在实践中,由于字段值的存储空间占用量不同,服务端根据字段值的存储空间占用量是否满足预设条件,采用不同的压缩策略对字段值进行压缩。相应的,客户端可采用不同的解压策略对字段值的压缩数据进行解压。
具体的,在本发明实施例中,上述第二压缩数据还可以包括第一类型压缩数据,基于字段值类型,对第一类型压缩数据进行解压,得到第一部分的第一字段值。这里,第一部分的第一字段值是第一字段值集中第一字段值对应的存储空间占用量满足预设条件的第一字段值。该预设条件在上述图4所示流程的相关描述中已做详细介绍,这里不再赘述。
基于上述描述,上述确定静态字典中各个静态字段值的第五出现次数的具体实现可包括:确定静态字典中除第一部分的第一字段值之外的其余静态字段值的第五出现次数;上述根据第五出现次数对静态字段值进行排序,得到第二序列的具体实现可包括:根据第五出现次数对其余静态字段值进行排序,得到第二序列;上述基于第二序列和第一字段值序列,确定静态字段值对应的第一字段值的具体实现可包括:基于第二序列和第一字段值序列,确定其余静态字段值对应的第二部分的第一字段值;上述利用对应的第一字段值替换静态字典中的静态字段值,得到第一字段值集的具体实现可包括:利用对应的第二部分的第一字段值替换静态字典中的其余静态字段值,得到第一字段值集。
步骤806、客户端利用第二解压策略对压缩数据中的第三压缩数据进行解压,得到第二字段集。
在一实施例中,上述第三压缩数据至少包括第二字段序列,上述利用第二解压策略对压缩数据中的第三压缩数据进行解压,得到第二字段集的具体实现可包括:确定动态字典中各个动态字段的第四出现次数,动态字段是利用第二位置信息替换第二字段集中的第二字段的结果,根据第四出现次数对各个动态字段进行排序,得到第一序列;基于第一序列和第二字段序列,确定各个动态字段对应的第二字段;利用对应的第二字段替换动态字典中的动态字段,得到第二字段集。
其中,上述动态字典是服务器返回给客户端的压缩数据中的字典数据。上述第二位置信息是第二字段集中每一第二字段在动态字典中的位置信息。
需要说明的是,第三压缩数据中的第二字段序列是客户端根据第三预设解压策略对第二字段序列压缩数据进行解压得到的,其中,第二字段序列压缩数据是服务器根据第三预设压缩策略对第二字段序列进行压缩得到的。第二字段序列是根据第二字段集中的第二字段在动态字典中的第一出现次数,对第二字段进行排序得到的。
例如,假设第三压缩数据中包括的第二字段序列:(key4,key5),并假设第三压缩数据中动态字典的各个动态字段为:{1,2,1,1}。那么,按照上述描述,确定动态字典中各个动态字段的第四出现次数,根据第四出现次数对各个动态字段进行排序,得到第一序列为:(1,2);基于第一序列和第二字段序列,确定各个动态字段对应的第二字段,各个静态字段与第一字段值之间的对应关系为:1→key4,2→key5;利用对应的第二字段替换动态字典中的动态字段,得到第二字段集,第二字段集为:{key4,key5,key4,key4}。
此外,在另一实施例中,上述第三压缩数据至少包括字段字典。上述利用第二解压策略对压缩数据中的第三压缩数据进行解压,得到第二字段集的具体实现可包括:查找字段字典,确定第三压缩数据中动态字典的各个动态字段对应的第二字段,利用对应的第二字段替换动态字典中的动态字段,得到第二字段集。
需要说明的是,上述字段字典是客户端根据第四解压策略对字段字典的压缩数据进行解压得到的。上述第三压缩数据中动态字典的各个动态字段是根据第二字段集中每一第二字段在字段字典中的位置信息,替换第二字段的结果。因此,可以确定第三压缩数据中动态字典的动态字段与字段字典中第二字段之间的关系。
例如,假设第三压缩数据中动态字典的动态字段为:{1,2,1,1},字段字典为:{key4,key5}。那么,按照上述描述,查找字段字典,确定第三压缩数据中动态字典的各个动态字段对应的第二字段,确定动态字段与字段字典中第二字段之间的关系为:1→key4,2→key5,利用对应的第二字段替换动态字典中的动态字段,得到第二字段集,第二字段集为:{key4,key5,key4,key4}。
步骤807、客户端利用第三解压策略对压缩数据中的第四压缩数据进行解压,得到第二字段值集。
在一实施例中,上述第四压缩数据至少包括第二字段值序列,上述利用第三解压策略对压缩数据中的第四压缩数据进行解压,得到第二字段值集的具体实现可包括:确定动态字典中各个动态字段值的第六出现次数,动态字段值是利用第四位置信息替换第二字段值集中的第二字段值的结果,动态字段值是被替换后的第四位置信息,根据第六出现次数对动态字段值进行排序,得到第三序列,基于第三序列和第二字段值序列,确定动态字段值对应的第二字段值,利用对应的第二字段值替换动态字典中的动态字段值,得到第二字段值集。
其中,上述第四位置信息是第二字段值集中每一第二字段值在第二字段值序列中的位置信息。
需要说明的是,上述第四压缩数据中的第二字段值序列是客户端根据第一预设解压策略对第二字段值序列压缩数据进行解压得到的,其中,第二字段值序列压缩数据是服务器根据第一预设压缩策略对第二字段值序列进行压缩得到的。第二字段值序列是根据第二字段值集中的第二字段值序列在静态字典中的第三出现次数,对第二字段值进行排序得到的。
例如,假设第四压缩数据中包括的第二字段值序列为:(value4,value5),并假设第四压缩数据中动态字典的各个动态字段值为:{1,2,1}。那么,按照上述描述,确定动态字典中各个动态字段值的第六出现次数,根据第六出现次数对动态字段值进行排序,得到第三序列为:(1,2),基于第三序列和第二字段值序列确定动态字段值对应的第二字段值,各个动态字段值与第二字段值之间的对应关系为:1→value4,2→value5,之后,利用对应的第二字段值替换动态字典中的动态字段值,得到第二字段值集,第二字段值集为:{value4,value5,value4}。
此外,在另一实施例中,上述第四压缩数据至少包括第二字段值字典。上述利用第三解压策略对压缩数据中的第四压缩数据进行解压,得到第二字段值的具体实现可包括:查找第二字段值字典,确定第四压缩数据中动态字典的各个动态字段值对应的第二字段值,利用对应的第二字段值替换动态字典中的动态字段值,得到第二字段值集。
需要说明的是,上述第二字段值字典是客户端根据第二预设解压策略对第二字段值字典的压缩数据进行解压得到的。上述第四压缩数据中动态字典的各个动态字段值是根据第二字段值集中每一第二字段值在第二字段值字典中的位置信息,替换第二字段值的结果。因此,可以确定第四压缩数据中动态字典的动态字段值与第二字段值字典中第二字段值之间的关系。
例如,假设第四压缩数据中动态字典的动态字段值为:{2,1,2,1,1},第二字段值字典为:{value5,value4}。那么,按照上述描述,查找第二字段值字典,确定第四压缩数据中动态字典的各个动态字段值对应的第二字段值,确定动态字段值与第二字段值字典中第二字段值之间的关系为:1→value5,2→value4,利用对应的第二字段值替换动态字典中的动态字段值,得到第二字段值集,第二字段值集为:{value4,value5,value4,value5,value5}。
由步骤805的描述可见,客户端可采用不同的解压策略对字段值的压缩数据进行解压。
具体的,在本发明实施例中,上述第四压缩数据还包括第二类型压缩数据,基于字段值类型,对第二类型压缩数据进行解压,得到第一部分的第二字段值。这里,第一部分的第二字段值是第二字段值集中第二字段值对应的存储空间占用量满足预设条件的第二字段值。该预设条件在上述图4所示流程的相关描述中已做详细介绍,这里不再赘述。
基于上述描述,上述确定动态字典中各个动态字段值的第六出现次数的具体实现可包括:确定动态字典中除第一部分的第二字段值之外的其余动态字段值的第六出现次数;上述根据第六出现次数对动态字段值进行排序,得到第三序列的具体表现可包括:根据第六出现次数对其余动态字段值进行排序,得到第三序列;上述基于第三序列和第二字段值序列,确定动态字段值对应的第二字段值的具体实现可包括:基于第三序列和第二字段值序列,确定其余动态字段值对应的第二部分的第二字段值;上述按利用对应的第二字段值替换动态字典中的动态字段值,得到第二字段值集的具体实现可包括:利用对应的第二部分的第二字段值替换动态字典中的其余动态字段值,得到第二字段值集。
步骤808、客户端确定第一字段集和第二字段集为目标字段集,以及确定第一字段值集和第二字段值集为目标字段值集。
由上述描述可见,可确定利用第一解压策略对压缩数据中的第一压缩数据进行解压,得到第一字段集和利用第三解压策略对压缩数据中的第二压缩数据进行解压,得到第一字段值集,以及利用第二解压策略对压缩数据中的第三压缩数据进行解压,得到第二字段集和利用第三解压策略对压缩数据中的第四压缩数据进行解压,得到第二字段值集,为客户端采用目标解压策略对压缩数据进行解压后,得到的目标字段集和目标字段值集。
参见图9,为本发明实施例提供的还一种数据处理方法的实施例流程图。该图9所示流程在上述图7所示流程的基础上,描述如何利用该目标解压策略对服务端返回的压缩数据进行解压。如图9所示,该流程可包括以下步骤:
步骤901、客户端向服务端发送数据请求,以使服务端接收客户端发送的数据请求,确定与数据请求相匹配的目标字段集,查找目标字段集对应的目标字段值集,确定目标字段集以及字段值集为待压缩数据,并查找数据请求携带的策略标识对应的目标压缩策略,然后利用目标压缩策略对待压缩数据进行压缩。
步骤902、客户端接收服务端返回的压缩数据,压缩数据包括第一压缩数据与第二压缩数据。
步骤903、客户端根据数据请求中携带的策略标识,确定对应的目标解压策略,目标解压策略包括第一解压策略和第三解压策略。
步骤904、客户端利用第一解压策略对压缩数据中的第一压缩数据进行解压,得到第一字段集。
步骤905、客户端利用第三解压策略对压缩数据中的第二压缩数据进行解压,得到第一字段值集。
步骤906、客户端确定第一字段集为目标字段集,以及确定第一字段值集为目标字段值集。
至于步骤901至步骤906的详细描述可参见上述图8所示流程中相关描述,这里不再赘述。
参见图10,为本发明实施例提供的还一种数据处理方法的实施例流程图。该图10所示流程在上述图7所示流程的基础上,描述如何利用该目标解压策略对服务端返回的压缩数据进行解压。如图10所示,该流程可包括以下步骤:
步骤1001、客户端向服务端发送数据请求,以使服务端获取客户端发送的数据请求,确定与数据请求相匹配的目标字段集,查找目标字段集对应的目标字段值集,确定目标字段集以及字段值集为待压缩数据,并查找数据请求携带的策略标识对应的目标压缩策略,然后利用目标压缩策略对待压缩数据进行压缩。
步骤1002、客户端接收服务端返回的压缩数据,压缩数据包括第三压缩数据与第四压缩数据。
步骤1003、客户端根据数据请求中携带的策略标识,确定对应的目标解压策略,目标解压策略包括第二解压策略和第三解压策略。
步骤1004、客户端利用第二解压策略对压缩数据中的第三压缩数据进行解压,得到第二字段集。
步骤1005、客户端利用第三解压策略对压缩数据中的第四压缩数据进行解压,得到第二字段值集。
步骤1006、客户端确定第二字段集为目标字段集,以及确定第二字段值集为目标字段值集。
至于步骤1001至步骤1006的详细描述可参见上述图8所示流程中相关描述,这里不再赘述。
参见图11,为本发明实施例提供的还一种数据处理方法的实施例流程图。如图11所示,该流程可包括以下步骤:
步骤1101、客户端向服务端发送数据请求。
步骤1102、服务端接收客户端发送的数据请求,确定与数据请求相匹配的目标字段集。
步骤1103、服务端查找目标字段集对应的目标字段值集,确定目标字段集以及目标字段值集为待压缩数据。
步骤1104、服务端查找数据请求中携带的策略标识对应的目标压缩策略,利用目标压缩策略对待压缩数据进行压缩,并返回给客户端。
步骤1105、客户端接收服务端返回的压缩数据。
步骤1106、客户端根据数据请求中携带的策略标识,确定对应的目标解压策略。
步骤1107、客户端利用目标解压策略对压缩数据进行解压,得到目标字段集以及目标字段值集。
至于步骤1101至步骤1107的详细描述,可参见上述图3至图10所示流程中的相关描述,这里不再赘述。
在本发明技术方案中,通过客户端向服务端发送数据请求,服务端接收客户端发送的数据请求,确定与数据请求相匹配的目标字段集,并查找目标字段集对应的目标字段值集,确定目标字段集以及目标字段值集为待压缩数据,以及查找数据请求中携带的策略标识对应的目标压缩策略,然后,利用目标压缩策略对待压缩数据进行压缩,并返回给客户端。之后,客户端可接收服务端返回的压缩数据,根据数据请求中携带的策略标识,确定对应的目标解压策略,并利用目标解压策略对压缩数据进行解压,得到目标字段集以及目标字段值集。由此,可以实现服务端根据客户端发送的数据请求,确定与该数据请求相匹配的目标字段集,以及目标字段集对应的目标字段值集,将目标字段集以及目标字段值集确定为待压缩数据。在此过程中,服务端可根据数据请求筛选客户端请求的数据为待压缩数据,不必对客户端未请求的数据进行压缩,以减少利用目标压缩策略对待压缩数据进行数据压缩时,造成的冗余浪费,还可筛选出由于服务端的迭代升级而新增加的数据,降低对旧版本客户端的影响。另外,选择与数据请求携带的策略标识对应的目标解压策略,对压缩数据进行解压,保证了数据传输的安全性。
与前述数据处理方法的实施例相对应,本发明还提供装置的实施例框图。
参见图12,为本发明实施例提供的一种数据处理装置的实施例框图。作为一个实施例,该装置可应用于服务端,例如图1中所示例的服务端102。如图12所示,该装置包括:
字段确定模块1201,用于接收客户端发送的数据请求,确定与所述数据请求相匹配的目标字段集;
数据确定模块1202,用于查找所述目标字段集对应的目标字段值集,确定所述目标字段集以及所述目标字段值集为待压缩数据;
数据压缩模块1203,用于查找所述数据请求中携带的策略标识对应的目标压缩策略,利用所述目标压缩策略对所述待压缩数据进行压缩,并返回给所述客户端。
在一可选的实施方式中,所述数据请求携带静态字典标识和/或动态字典标识,所述字段确定模块1201,具体用于:
从预设的静态字典集中,确定与所述静态字典标识对应的静态字典;从所述静态字典中查找与所述数据请求相匹配的第一字段集;和/或,
从预设的动态字典集中,确定与所述动态字典标识对应的动态字典;从所述动态字典中查找与所述数据请求相匹配的第二字段集;
将所述第一字段集和/或所述第二字段集确定为与所述数据请求相匹配的目标字段集。
在一可选的实施方式中,所述数据确定模块1202,具体用于:
从所述静态字典中查找所述第一字段集中每一第一字段对应的第一字段值;和/或,
查找所述第二字段集中每一第二字段对应的第二字段值;
将查找到的所述第一字段值和/或所述第二字段值归入目标字段值集。
在一可选的实施方式中,所述数据压缩模块1203,包括(图中未示出):
第一压缩单元,用于利用第一压缩策略对所述第一字段集进行压缩;
第二压缩单元,用于利用第三压缩策略对第一字段值集进行压缩,所述第一字段值集包括从所述静态字典中查找到的第一字段值;
和/或,
第三压缩单元,用于利用第二压缩策略对所述第二字段集进行压缩;
第四压缩单元,用于利用第三压缩策略对第二字段值集进行压缩,所述第二字段值集包括从所述动态字典中查找到的第二字段值。
在一可选的实施方式中,所述第一压缩单元,具体用于:
获取所述第一字段集中每一第一字段在所述静态字典中的第一位置信息;
利用对应的第一位置信息替换所述第一字段集中的第一字段。
在一可选的实施方式中,所述第三压缩单元,具体用于:
确定所述第二字段集中每一第二字段在所述动态字典中的第一出现次数;
根据所述第一出现次数对所述第二字段集中的第二字段进行排序,得到第二字段序列;
确定所述第二字段集中每一第二字段在所述第二字段序列中的第二位置信息;
利用对应的第二位置信息替换所述第二字段集中的第二字段。
在一可选的实施方式中,所述第二压缩单元,具体用于:
确定第一字段值集中每一第一字段值在所述静态字典中的第二出现次数;
根据所述第二出现次数对所述第一字段值集中的第一字段值进行排序,得到第一字段值序列;
确定所述第一字段值集中每一第一字段值在所述第一字段值序列中的第三位置信息;
利用对应的第三位置信息替换所述第一字段值集中的第一字段值。
在一可选的实施方式中,所述装置还包括(图中未示出):
第一占用量确定模块,用于在所述确定第一字段值集中每一第一字段值在所述静态字典中的第二出现次数之前,确定第一字段值集中的第一字段值对应的存储空间占用量;
第一执行模块,用于将对应的所述存储空间占用量满足预设条件的第一字段值从所述第一字段值集中删除,并针对删除处理后的第一字段值集,执行所述确定第一字段值集中每一第一字段值在所述静态字典中的第二出现次数的步骤。
所述装置还包括(图中未示出):
第一字段值压缩模块,用于基于字段值类型,对所述存储空间占用量满足所述预设条件的第一字段值进行压缩。
在一可选的实施方式中,所述第四压缩单元,具体用于:
确定第二字段值集中每一第二字段值在所述动态字典中的第三出现次数;
根据所述第三出现次数对所述第二字段值集中的第二字段值进行排序,得到第二字段值序列;
确定所述第二字段值集中每一第二字段值在所述第二字段值序列中的第四位置信息;
利用对应的第四位置信息替换所述第二字段值集中的第二字段值。
在一可选的实施方式中,所述装置还包括(图中未示出):
第二占用量确定模块,用于在所述确定第二字段值集中每一第二字段值在所述动态字典中的第三出现次数之前,确定第二字段值集中的第二字段值对应的存储空间占用量;
第二执行模块,用于将对应的所述存储空间占用量满足预设条件的第二字段值从所述第二字段值集中删除,并针对删除处理后的第二字段值集,执行所述确定第二字段值集中每一第二字段值在所述动态字典中的第三出现次数的步骤。
所述装置还包括(图中未示出):
第二字段值压缩模块,用于基于字段值类型,对所述存储空间占用量满足所述预设条件的第二字段值进行压缩。
参见图13,为本发明实施例提供的另一种数据处理装置的实施例框图。作为一个实施例,该装置可应用于客户端,例如图1中所示例的客户端101。如图13所示,该装置包括:
请求发送模块1301,用于向服务端发送数据请求,以使所述服务端接收客户端发送的数据请求,确定与所述数据请求相匹配的目标字段集,查找所述目标字段集对应的目标字段值集,确定所述目标字段集以及所述目标字段值集为待压缩数据,并查找所述数据请求携带的策略标识对应的目标压缩策略,然后利用所述目标压缩策略对所述待压缩数据进行压缩;
结果接收模块1302,用于接收所述服务端返回的压缩数据;
策略确定模块1303,用于根据所述数据请求中携带的策略标识,确定对应的目标解压策略;
数据解压模块1304,用于利用所述目标解压策略对所述压缩数据进行解压,得到所述目标字段集以及所述目标字段值集。
在一可选的实施方式中,所述压缩数据包括第一压缩数据与第二压缩数据,和/或,第三压缩数据与第四压缩数据;所述数据解压模块1304,包括(图中未示出):
第一解压单元,用于利用第一解压策略对所述压缩数据中的第一压缩数据进行解压,得到第一字段集;
第二解压单元,用于利用第三解压策略对所述压缩数据中的第二压缩数据进行解压,得到第一字段值集;
和/或,
第三解压单元,用于利用第二解压策略对所述压缩数据中的第三压缩数据进行解压,得到第二字段集;
第四解压单元,用于利用所述第三解压策略对所述压缩数据中的第四压缩数据进行解压,得到第二字段值集。
在一可选的实施方式中,所述第一压缩数据包括第一位置信息,所述第一解压单元,具体用于:
从静态字典中查找所述第一位置信息对应的第一字段集,将所述第一位置信息替换为所述第一字段集。
在一可选的实施方式中,所述第三压缩数据包括第二字段序列,所述第三解压单元,具体用于:
确定动态字典中各个动态字段的第四出现次数,所述动态字段是利用第二位置信息替换第二字段集中的第二字段的结果;
根据所述第四出现次数对各个所述动态字段进行排序,得到第一序列;
基于所述第一序列和所述第二字段序列,确定各个所述动态字段对应的第二字段;
利用对应的第二字段替换所述动态字典中的动态字段,得到第二字段集。
在一可选的实施方式中,所述第二压缩数据包括第一字段值序列,所述第二解压单元,包括(图中未示出):
第一解压子单元,用于确定静态字典中各个静态字段值的第五出现次数,所述静态字段值是利用第三位置信息替换第一字段值集中的第一字段值的结果;
第二解压子单元,用于根据所述第五出现次数对所述静态字段值进行排序,得到第二序列;
第三解压子单元,用于基于所述第二序列和所述第一字段值序列,确定所述静态字段值对应的第一字段值;
第四解压子单元,用于利用对应的第一字段值替换所述静态字典中的静态字段值,得到第一字段值集。
在一可选的实施方式中,所述第二压缩数据还包括第一类型压缩数据,所述装置还包括(图中未示出):
第一字段值解压模块,用于基于字段值类型,对所述第一类型压缩数据进行解压,得到第一部分的第一字段值。
在一可选的实施方式中,所述第一解压子单元,具体用于:
确定静态字典中除所述第一部分的第一字段值之外的其余静态字段值的第五出现次数;
所述第二解压子单元,具体用于:
根据所述第五出现次数对其余所述静态字段值进行排序,得到第二序列;
所述第三解压子单元,具体用于:
基于所述第二序列和所述第一字段值序列,确定其余所述静态字段值对应的第二部分的第一字段值;
所述第四解压子单元,具体用于:
利用对应的第二部分的第一字段值替换所述静态字典中的其余静态字段值,得到第一字段值集。
在一可选的实施方式中,所述第四压缩数据包括第二字段值序列,所述第四解压单元,包括(图中未示出):
第五解压子单元,用于确定动态字典中各个动态字段值的第六出现次数,所述动态字段值是利用第四位置信息替换第二字段值集中的第二字段值的结果;
第六解压子单元,用于根据所述第六出现次数对所述动态字段值进行排序,得到第三序列;
第七解压子单元,用于基于所述第三序列和所述第二字段值序列,确定所述动态字段值对应的第二字段值;
第八解压子单元,用于利用对应的第二字段值替换所述动态字典中的动态字段值,得到第二字段值集。
在一可选的实施方式中,所述第四压缩数据还包括第二类型压缩数据,所述装置还包括(图中未示出):
第二字段值模块,用于基于字段值类型,对所述第二类型压缩数据进行解压,得到第一部分的第二字段值。
在一可选的实施方式中,所述第五解压子单元,具体用于:
确定动态字典中除所述第一部分的第二字段值之外的其余动态字段值的第六出现次数;
所述第六解压子单元,具体用于:
根据所述第六出现次数对其余所述动态字段值进行排序,得到第三序列;
所述第七解压子单元,具体用于:
基于所述第三序列和所述第二字段值序列,确定其余所述动态字段值对应的第二部分的第二字段值;
所述第八解压子单元,具体用于:
利用对应的第二部分的第二字段值替换所述动态字典中的其余动态字段值,得到第二字段值集。
图14为本发明实施例提供的一种电子设备的结构示意图,图14所示的电子设备1400包括:至少一个处理器1401、存储器1402、至少一个网络接口1404和其他用户接口1403。电子设备1400中的各个组件通过总线系统1405耦合在一起。可理解,总线系统1405用于实现这些组件之间的连接通信。总线系统1405除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图14中将各种总线都标为总线系统1405。
其中,用户接口1403可以包括显示器、键盘或者点击设备(例如,鼠标,轨迹球(trackball))、触感板或者触摸屏等。
可以理解,本发明实施例中的存储器1402可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(Read-OnlyMemory,ROM)、可编程只读存储器(ProgrammableROM,PROM)、可擦除可编程只读存储器(ErasablePROM,EPROM)、电可擦除可编程只读存储器(ElectricallyEPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(RandomAccessMemory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(StaticRAM,SRAM)、动态随机存取存储器(DynamicRAM,DRAM)、同步动态随机存取存储器(SynchronousDRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(DoubleDataRateSDRAM,DDRSDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(SynchlinkDRAM,SLDRAM)和直接内存总线随机存取存储器(DirectRambusRAM,DRRAM)。本文描述的存储器1402旨在包括但不限于这些和任意其它适合类型的存储器。
在一些实施方式中,存储器1402存储了如下的元素,可执行单元或者数据结构,或者他们的子集,或者他们的扩展集:操作系统14021和应用程序14022。
其中,操作系统14021,包含各种系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务。应用程序14022,包含各种应用程序,例如媒体播放器(MediaPlayer)、浏览器(Browser)等,用于实现各种应用业务。实现本发明实施例方法的程序可以包含在应用程序14022中。
在本发明实施例中,通过调用存储器1402存储的程序或指令,具体的,可以是应用程序14022中存储的程序或指令,处理器1401用于执行各方法实施例所提供的方法步骤,例如包括:
接收客户端发送的数据请求,确定与所述数据请求相匹配的目标字段集;
查找所述目标字段集对应的目标字段值集,确定所述目标字段集以及所述目标字段值集为待压缩数据;
查找所述数据请求中携带的策略标识对应的目标压缩策略,利用所述目标压缩策略对所述待压缩数据进行压缩,并返回给所述客户端。
或者,
向服务端发送数据请求,以使所述服务端接收客户端发送的数据请求,确定与所述数据请求相匹配的目标字段集,查找所述目标字段集对应的目标字段值集,确定所述目标字段集以及所述目标字段值集为待压缩数据,并查找所述数据请求携带的策略标识对应的目标压缩策略,然后利用所述目标压缩策略对所述待压缩数据进行压缩;
接收所述服务端返回的压缩数据;
根据所述数据请求中携带的策略标识,确定对应的目标解压策略;
利用所述目标解压策略对所述压缩数据进行解压,得到所述目标字段集以及所述目标字段值集。
上述本发明实施例揭示的方法可以应用于处理器1401中,或者由处理器1401实现。处理器1401可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器1401中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器1401可以是通用处理器、数字信号处理器(DigitalSignalProcessor,DSP)、专用集成电路(ApplicationSpecificIntegratedCircuit,ASIC)、现成可编程门阵列(FieldProgrammableGateArray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件单元组合执行完成。软件单元可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器1402,处理器1401读取存储器1402中的信息,结合其硬件完成上述方法的步骤。
可以理解的是,本文描述的这些实施例可以用硬件、软件、固件、中间件、微码或其组合来实现。对于硬件实现,处理单元可以实现在一个或多个专用集成电路(ApplicationSpecificIntegratedCircuits,ASIC)、数字信号处理器(DigitalSignalProcessing,DSP)、数字信号处理设备(DSPDevice,DSPD)、可编程逻辑设备(ProgrammableLogicDevice,PLD)、现场可编程门阵列(Field-ProgrammableGateArray,FPGA)、通用处理器、控制器、微控制器、微处理器、用于执行本申请所述功能的其它电子单元或其组合中。
对于软件实现,可通过执行本文所述功能的单元来实现本文所述的技术。软件代码可存储在存储器中并通过处理器执行。存储器可以在处理器中或在处理器外部实现。
本实施例提供的电子设备可以是如图14中所示的电子设备,可执行如图3-11中数据处理方法的所有步骤,进而实现图3-11中数据处理方法的技术效果,具体请参照图3-11相关描述,为简洁描述,在此不作赘述。
本发明实施例还提供了一种存储介质(计算机可读存储介质)。这里的存储介质存储有一个或者多个程序。其中,存储介质可以包括易失性存储器,例如随机存取存储器;存储器也可以包括非易失性存储器,例如只读存储器、快闪存储器、硬盘或固态硬盘;存储器还可以包括上述种类的存储器的组合。
当存储介质中一个或者多个程序可被一个或者多个处理器执行,以实现上述在电子设备侧执行的数据处理方法。
所述处理器用于执行存储器中存储的数据处理程序,以实现以下在电子设备侧执行的数据处理方法的步骤:
接收客户端发送的数据请求,确定与所述数据请求相匹配的目标字段集;
查找所述目标字段集对应的目标字段值集,确定所述目标字段集以及所述目标字段值集为待压缩数据;
查找所述数据请求中携带的策略标识对应的目标压缩策略,利用所述目标压缩策略对所述待压缩数据进行压缩,并返回给所述客户端。
或者,
向服务端发送数据请求,以使所述服务端接收客户端发送的数据请求,确定与所述数据请求相匹配的目标字段集,查找所述目标字段集对应的目标字段值集,确定所述目标字段集以及所述目标字段值集为待压缩数据,并查找所述数据请求携带的策略标识对应的目标压缩策略,然后利用所述目标压缩策略对所述待压缩数据进行压缩;
接收所述服务端返回的压缩数据;
根据所述数据请求中携带的策略标识,确定对应的目标解压策略;
利用所述目标解压策略对所述压缩数据进行解压,得到所述目标字段集以及所述目标字段值集。
专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (21)

1.一种数据处理方法,其特征在于,所述方法应用于服务端,所述方法包括:
接收客户端发送的数据请求,所述数据请求携带静态字典标识和/或动态字典标识,确定与所述数据请求相匹配的目标字段集,包括:从预设的静态字典集中,确定与所述静态字典标识对应的静态字典;从所述静态字典中查找与所述数据请求相匹配的第一字段集;和/或,从预设的动态字典集中,确定与所述动态字典标识对应的动态字典;从所述动态字典中查找与所述数据请求相匹配的第二字段集;将所述第一字段集和/或所述第二字段集确定为与所述数据请求相匹配的目标字段集;
查找所述目标字段集对应的目标字段值集,包括:从所述静态字典中查找所述第一字段集中每一第一字段对应的第一字段值;和/或,从所述动态字典中查找所述第二字段集中每一第二字段对应的第二字段值;将查找到的所述第一字段值和/或所述第二字段值归入目标字段值集;确定所述目标字段集以及所述目标字段值集为待压缩数据;
查找所述数据请求中携带的策略标识对应的目标压缩策略,利用所述目标压缩策略对所述待压缩数据进行压缩,包括:利用第一压缩策略对所述第一字段集进行压缩;利用第三压缩策略对第一字段值集进行压缩,所述第一字段值集包括从所述静态字典中查找到的第一字段值;和/或,利用第二压缩策略对所述第二字段集进行压缩;利用所述第三压缩策略对第二字段值集进行压缩,所述第二字段值集包括从所述动态字典中查找到的第二字段值;用不同的压缩策略分别对字段和字段值进行压缩,采用不同的压缩策略对第一字段集和第二字段集进行压缩;并返回给所述客户端。
2.根据权利要求1所述的方法,其特征在于,所述利用第一压缩策略对所述第一字段集进行压缩,包括:
获取所述第一字段集中每一第一字段在所述静态字典中的第一位置信息;
利用对应的第一位置信息替换所述第一字段集中的第一字段。
3.根据权利要求1所述的方法,其特征在于,所述利用第二压缩策略对所述第二字段集进行压缩,包括:
确定所述第二字段集中每一第二字段在所述动态字典中的第一出现次数;
根据所述第一出现次数对所述第二字段集中的第二字段进行排序,得到第二字段序列;
确定所述第二字段集中每一第二字段在所述第二字段序列中的第二位置信息;
利用对应的第二位置信息替换所述第二字段集中的第二字段。
4.根据权利要求1所述的方法,其特征在于,所述利用第三压缩策略对第一字段值集进行压缩,包括:
确定第一字段值集中每一第一字段值在所述静态字典中的第二出现次数;
根据所述第二出现次数对所述第一字段值集中的第一字段值进行排序,得到第一字段值序列;
确定所述第一字段值集中每一第一字段值在所述第一字段值序列中的第三位置信息;
利用对应的第三位置信息替换所述第一字段值集中的第一字段值。
5.根据权利要求4所述的方法,其特征在于,在所述确定第一字段值集中每一第一字段值在所述静态字典中的第二出现次数之前,所述方法还包括:
确定第一字段值集中的第一字段值对应的存储空间占用量;
将对应的所述存储空间占用量满足预设条件的第一字段值从所述第一字段值集中删除,并针对删除处理后的第一字段值集,执行所述确定第一字段值集中每一第一字段值在所述静态字典中的第二出现次数的步骤;
所述方法还包括:
基于字段值类型,对所述存储空间占用量满足所述预设条件的第一字段值进行压缩。
6.根据权利要求1所述的方法,其特征在于,所述利用所述第三压缩策略对第二字段值集进行压缩,包括:
确定第二字段值集中每一第二字段值在所述动态字典中的第三出现次数;
根据所述第三出现次数对所述第二字段值集中的第二字段值进行排序,得到第二字段值序列;
确定所述第二字段值集中每一第二字段值在所述第二字段值序列中的第四位置信息;
利用对应的第四位置信息替换所述第二字段值集中的第二字段值。
7.根据权利要求6所述的方法,其特征在于,在所述确定第二字段值集中每一第二字段值在所述动态字典中的第三出现次数之前,所述方法还包括:
确定第二字段值集中的第二字段值对应的存储空间占用量;
将对应的所述存储空间占用量满足预设条件的第二字段值从所述第二字段值集中删除,并针对删除处理后的第二字段值集,执行所述确定第二字段值集中每一第二字段值在所述动态字典中的第三出现次数的步骤;
所述方法还包括:
基于字段值类型,对所述存储空间占用量满足所述预设条件的第二字段值进行压缩。
8.一种数据处理方法,其特征在于,所述方法应用于客户端,所述方法包括:
向服务端发送数据请求,以使所述服务端接收客户端发送的数据请求,所述数据请求携带静态字典标识和/或动态字典标识,确定与所述数据请求相匹配的目标字段集,包括:从预设的静态字典集中,确定与所述静态字典标识对应的静态字典;从所述静态字典中查找与所述数据请求相匹配的第一字段集;和/或,从预设的动态字典集中,确定与所述动态字典标识对应的动态字典;从所述动态字典中查找与所述数据请求相匹配的第二字段集;将所述第一字段集和/或所述第二字段集确定为与所述数据请求相匹配的目标字段集;查找所述目标字段集对应的目标字段值集,包括:从所述静态字典中查找所述第一字段集中每一第一字段对应的第一字段值;和/或,从所述动态字典中查找所述第二字段集中每一第二字段对应的第二字段值;将查找到的所述第一字段值和/或所述第二字段值归入目标字段值集;确定所述目标字段集以及所述目标字段值集为待压缩数据,并查找所述数据请求携带的策略标识对应的目标压缩策略,然后利用所述目标压缩策略对所述待压缩数据进行压缩,包括:利用第一压缩策略对所述第一字段集进行压缩;利用第三压缩策略对第一字段值集进行压缩,所述第一字段值集包括从所述静态字典中查找到的第一字段值;和/或,利用第二压缩策略对所述第二字段集进行压缩;利用所述第三压缩策略对第二字段值集进行压缩,所述第二字段值集包括从所述动态字典中查找到的第二字段值;用不同的压缩策略分别对字段和字段值进行压缩,采用不同的压缩策略对第一字段集和第二字段集进行压缩;
接收所述服务端返回的压缩数据;
根据所述数据请求中携带的策略标识,确定对应的目标解压策略;
利用所述目标解压策略对所述压缩数据进行解压,得到所述目标字段集以及所述目标字段值集。
9.根据权利要求8所述的方法,其特征在于,所述压缩数据包括第一压缩数据与第二压缩数据,和/或,第三压缩数据与第四压缩数据;所述利用所述目标解压策略对所述压缩数据进行解压,得到所述目标字段集以及所述目标字段值集,包括:
利用第一解压策略对所述压缩数据中的第一压缩数据进行解压,得到第一字段集;
利用第三解压策略对所述压缩数据中的第二压缩数据进行解压,得到第一字段值集;
和/或,
利用第二解压策略对所述压缩数据中的第三压缩数据进行解压,得到第二字段集;
利用所述第三解压策略对所述压缩数据中的第四压缩数据进行解压,得到第二字段值集;
将所述第一字段集和/或所述第二字段集确定为所述目标字段集,以及将所述第一字段值集和/或所述第二字段值集确定为所述目标字段值集。
10.根据权利要求9所述的方法,其特征在于,所述第一压缩数据包括第一位置信息;所述利用第一解压策略对所述压缩数据中的第一压缩数据进行解压,得到第一字段集,包括:
从静态字典中查找所述第一位置信息对应的第一字段集,将所述第一位置信息替换为所述第一字段集。
11.根据权利要求9所述的方法,其特征在于,所述第三压缩数据包括第二字段序列;所述利用第二解压策略对所述压缩数据中的第三压缩数据进行解压,得到第二字段集,包括:
确定动态字典中各个动态字段的第四出现次数,所述动态字段是利用第二位置信息替换第二字段集中的第二字段的结果;
根据所述第四出现次数对各个所述动态字段进行排序,得到第一序列;
基于所述第一序列和所述第二字段序列,确定各个所述动态字段对应的第二字段;
利用对应的第二字段替换所述动态字典中的动态字段,得到第二字段集。
12.根据权利要求9所述的方法,其特征在于,所述第二压缩数据包括第一字段值序列;所述利用第三解压策略对所述压缩数据中的第二压缩数据进行解压,得到第一字段值集,包括:
确定静态字典中各个静态字段值的第五出现次数,所述静态字段值是利用第三位置信息替换第一字段值集中的第一字段值的结果;
根据所述第五出现次数对所述静态字段值进行排序,得到第二序列;
基于所述第二序列和所述第一字段值序列,确定所述静态字段值对应的第一字段值;
利用对应的第一字段值替换所述静态字典中的静态字段值,得到第一字段值集。
13.根据权利要求12所述的方法,其特征在于,所述第二压缩数据还包括第一类型压缩数据;所述方法还包括:
基于字段值类型,对所述第一类型压缩数据进行解压,得到第一部分的第一字段值。
14.根据权利要求13所述的方法,其特征在于,所述确定静态字典中各个静态字段值的第五出现次数,包括:
确定静态字典中除所述第一部分的第一字段值之外的其余静态字段值的第五出现次数;
根据所述第五出现次数对所述静态字段值进行排序,得到第二序列,包括:
根据所述第五出现次数对其余所述静态字段值进行排序,得到第二序列;
基于所述第二序列和所述第一字段值序列,确定所述静态字段值对应的第一字段值,包括:
基于所述第二序列和所述第一字段值序列,确定其余所述静态字段值对应的第二部分的第一字段值;
利用对应的第一字段值替换所述静态字典中的静态字段值,得到第一字段值集,包括:
利用对应的第二部分的第一字段值替换所述静态字典中的其余静态字段值,得到第一字段值集。
15.根据权利要求9所述的方法,其特征在于,所述第四压缩数据包括第二字段值序列;所述利用第三解压策略对所述压缩数据中的第四压缩数据进行解压,得到第二字段值集,包括:
确定动态字典中各个动态字段值的第六出现次数,所述动态字段值是利用第四位置信息替换第二字段值集中的第二字段值的结果;
根据所述第六出现次数对所述动态字段值进行排序,得到第三序列;
基于所述第三序列和所述第二字段值序列,确定所述动态字段值对应的第二字段值;
利用对应的第二字段值替换所述动态字典中的动态字段值,得到第二字段值集。
16.根据权利要求15所述的方法,其特征在于,所述第四压缩数据还包括第二类型压缩数据;所述方法还包括:
基于字段值类型,对所述第二类型压缩数据进行解压,得到第一部分的第二字段值。
17.根据权利要求16所述的方法,其特征在于,所述确定动态字典中各个动态字段值的第六出现次数,包括:
确定动态字典中除所述第一部分的第二字段值之外的其余动态字段值的第六出现次数;
根据所述第六出现次数对所述动态字段值进行排序,得到第三序列,包括:
根据所述第六出现次数对其余所述动态字段值进行排序,得到第三序列;
基于所述第三序列和所述第二字段值序列,确定所述动态字段值对应的第二字段值,包括:
基于所述第三序列和所述第二字段值序列,确定其余所述动态字段值对应的第二部分的第二字段值;
利用对应的第二字段值替换所述动态字典中的动态字段值,得到第二字段值集,包括:
利用对应的第二部分的第二字段值替换所述动态字典中的其余动态字段值,得到第二字段值集。
18.一种数据处理装置,其特征在于,所述装置应用于服务端,所述装置包括:
字段确定模块,用于接收客户端发送的数据请求,所述数据请求携带静态字典标识和/或动态字典标识,确定与所述数据请求相匹配的目标字段集,包括:从预设的静态字典集中,确定与所述静态字典标识对应的静态字典;从所述静态字典中查找与所述数据请求相匹配的第一字段集;和/或,从预设的动态字典集中,确定与所述动态字典标识对应的动态字典;从所述动态字典中查找与所述数据请求相匹配的第二字段集;将所述第一字段集和/或所述第二字段集确定为与所述数据请求相匹配的目标字段集;
数据确定模块,用于查找所述目标字段集对应的目标字段值集,包括:从所述静态字典中查找所述第一字段集中每一第一字段对应的第一字段值;和/或,从所述动态字典中查找所述第二字段集中每一第二字段对应的第二字段值;将查找到的所述第一字段值和/或所述第二字段值归入目标字段值集;确定所述目标字段集以及所述目标字段值集为待压缩数据;
数据压缩模块,用于查找所述数据请求中携带的策略标识对应的目标压缩策略,利用所述目标压缩策略对所述待压缩数据进行压缩,包括:利用第一压缩策略对所述第一字段集进行压缩;利用第三压缩策略对第一字段值集进行压缩,所述第一字段值集包括从所述静态字典中查找到的第一字段值;和/或,利用第二压缩策略对所述第二字段集进行压缩;利用所述第三压缩策略对第二字段值集进行压缩,所述第二字段值集包括从所述动态字典中查找到的第二字段值;用不同的压缩策略分别对字段和字段值进行压缩,采用不同的压缩策略对第一字段集和第二字段集进行压缩;并返回给所述客户端。
19.一种数据处理装置,其特征在于,所述装置应用于客户端,所述装置包括:
请求发送模块,用于向服务端发送数据请求,以使所述服务端接收客户端发送的数据请求,所述数据请求携带静态字典标识和/或动态字典标识,确定与所述数据请求相匹配的目标字段集,包括:从预设的静态字典集中,确定与所述静态字典标识对应的静态字典;从所述静态字典中查找与所述数据请求相匹配的第一字段集;和/或,从预设的动态字典集中,确定与所述动态字典标识对应的动态字典;从所述动态字典中查找与所述数据请求相匹配的第二字段集;将所述第一字段集和/或所述第二字段集确定为与所述数据请求相匹配的目标字段集;查找所述目标字段集对应的目标字段值集,包括:从所述静态字典中查找所述第一字段集中每一第一字段对应的第一字段值;和/或,从所述动态字典中查找所述第二字段集中每一第二字段对应的第二字段值;将查找到的所述第一字段值和/或所述第二字段值归入目标字段值集;确定所述目标字段集以及所述目标字段值集为待压缩数据,并查找所述数据请求携带的策略标识对应的目标压缩策略,然后利用所述目标压缩策略对所述待压缩数据进行压缩,包括:利用第一压缩策略对所述第一字段集进行压缩;利用第三压缩策略对第一字段值集进行压缩,所述第一字段值集包括从所述静态字典中查找到的第一字段值;和/或,利用第二压缩策略对所述第二字段集进行压缩;利用所述第三压缩策略对第二字段值集进行压缩,所述第二字段值集包括从所述动态字典中查找到的第二字段值;用不同的压缩策略分别对字段和字段值进行压缩,采用不同的压缩策略对第一字段集和第二字段集进行压缩;
结果接收模块,用于接收所述服务端返回的压缩数据;
策略确定模块,用于根据所述数据请求中携带的策略标识,确定对应的目标解压策略;
数据解压模块,用于利用所述目标解压策略对所述压缩数据进行解压,得到所述目标字段集以及所述目标字段值集。
20.一种电子设备,其特征在于,包括:处理器和存储器,所述处理器用于执行所述存储器中存储的数据处理程序,以实现权利要求1~7或8~17中任一项所述的数据处理方法。
21.一种存储介质,其特征在于,所述存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现权利要求1~7或8~17中任一项所述的数据处理方法。
CN202210520722.4A 2022-05-12 2022-05-12 数据处理方法、装置、电子设备及存储介质 Active CN115065725B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210520722.4A CN115065725B (zh) 2022-05-12 2022-05-12 数据处理方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210520722.4A CN115065725B (zh) 2022-05-12 2022-05-12 数据处理方法、装置、电子设备及存储介质

Publications (2)

Publication Number Publication Date
CN115065725A CN115065725A (zh) 2022-09-16
CN115065725B true CN115065725B (zh) 2024-01-12

Family

ID=83199355

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210520722.4A Active CN115065725B (zh) 2022-05-12 2022-05-12 数据处理方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN115065725B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115941808A (zh) * 2023-03-02 2023-04-07 深圳依时货拉拉科技有限公司 基于自训练字典编码的json数据压缩方法及装置
CN116578542B (zh) * 2023-07-13 2023-09-29 鹏钛存储技术(南京)有限公司 基于可配置逻辑的自适应压缩算法的硬件实现方法及系统
CN116708589B (zh) * 2023-08-03 2023-10-13 腾讯科技(深圳)有限公司 包头的压缩方法、装置、计算机设备和存储介质
CN117478149B (zh) * 2023-12-27 2024-04-16 深圳市活力天汇科技股份有限公司 一种数据压缩的方法、装置、计算机设备和可读存储介质

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2065578A1 (en) * 1991-04-22 1992-10-23 David W. Carr Packet-based data compression method
CN103685179A (zh) * 2012-09-12 2014-03-26 中国移动通信集团公司 一种内容压缩方法、装置及系统
WO2016146009A1 (zh) * 2015-03-17 2016-09-22 阿里巴巴集团控股有限公司 Html页面压缩方法及装置
CN108011952A (zh) * 2017-12-01 2018-05-08 北京奇艺世纪科技有限公司 一种获取压缩字典的方法和装置
CN109660577A (zh) * 2017-10-10 2019-04-19 中国移动通信有限公司研究院 信息传输方法、通信设备及存储介质
CN110958212A (zh) * 2018-09-27 2020-04-03 阿里巴巴集团控股有限公司 一种数据压缩、数据解压缩方法、装置及设备
CN111049751A (zh) * 2019-12-10 2020-04-21 平安国际智慧城市科技股份有限公司 数据传输优化方法、装置、设备及可读存储介质
CN111273999A (zh) * 2020-01-20 2020-06-12 北京字节跳动网络技术有限公司 数据处理方法、装置、电子设备及存储介质
CN112069773A (zh) * 2020-07-23 2020-12-11 北京三快在线科技有限公司 数据处理系统、方法、装置、电子设备和计算机可读介质
WO2021135468A1 (zh) * 2019-12-30 2021-07-08 华为技术有限公司 段标识的确定方法和设备
CA3138764A1 (en) * 2020-11-11 2022-05-11 10353744 Canada Ltd. Data processing method, device, computer equipment and storage medium

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8949488B2 (en) * 2013-02-15 2015-02-03 Compellent Technologies Data replication with dynamic compression
US11122095B2 (en) * 2019-09-23 2021-09-14 Netapp, Inc. Methods for dictionary-based compression and devices thereof

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2065578A1 (en) * 1991-04-22 1992-10-23 David W. Carr Packet-based data compression method
CN103685179A (zh) * 2012-09-12 2014-03-26 中国移动通信集团公司 一种内容压缩方法、装置及系统
WO2016146009A1 (zh) * 2015-03-17 2016-09-22 阿里巴巴集团控股有限公司 Html页面压缩方法及装置
CN109660577A (zh) * 2017-10-10 2019-04-19 中国移动通信有限公司研究院 信息传输方法、通信设备及存储介质
CN108011952A (zh) * 2017-12-01 2018-05-08 北京奇艺世纪科技有限公司 一种获取压缩字典的方法和装置
CN110958212A (zh) * 2018-09-27 2020-04-03 阿里巴巴集团控股有限公司 一种数据压缩、数据解压缩方法、装置及设备
CN111049751A (zh) * 2019-12-10 2020-04-21 平安国际智慧城市科技股份有限公司 数据传输优化方法、装置、设备及可读存储介质
WO2021135468A1 (zh) * 2019-12-30 2021-07-08 华为技术有限公司 段标识的确定方法和设备
CN111273999A (zh) * 2020-01-20 2020-06-12 北京字节跳动网络技术有限公司 数据处理方法、装置、电子设备及存储介质
CN112069773A (zh) * 2020-07-23 2020-12-11 北京三快在线科技有限公司 数据处理系统、方法、装置、电子设备和计算机可读介质
CA3138764A1 (en) * 2020-11-11 2022-05-11 10353744 Canada Ltd. Data processing method, device, computer equipment and storage medium

Also Published As

Publication number Publication date
CN115065725A (zh) 2022-09-16

Similar Documents

Publication Publication Date Title
CN115065725B (zh) 数据处理方法、装置、电子设备及存储介质
CN106407201B (zh) 一种数据处理方法、装置及计算机可读存储介质
CN111857550B (zh) 用于数据去重的方法、设备以及计算机可读介质
US8799239B2 (en) Method, apparatus and computer program product for performing a query using a decision diagram
US10735025B2 (en) Use of data prefixes to increase compression ratios
CN112099725A (zh) 一种数据处理方法、装置及计算机可读存储介质
EP3295568B1 (en) Improved compressed caching in a virtual memory system
CN108984103B (zh) 用于去重的方法和设备
CN114065704A (zh) 数据压缩方法、电子设备和计算机程序产品
US20220004524A1 (en) Chunking method and apparatus
US10565182B2 (en) Hardware LZMA compressor
CN114764557A (zh) 一种数据处理方法、装置、电子设备及存储介质
WO2019236218A1 (en) Dynamic dictionary-based data symbol encoding
CN110888603A (zh) 高并发数据写入方法、装置、计算机设备及存储介质
CN113268453A (zh) 日志信息压缩存储方法及装置
CN114125071B (zh) 数据压缩传输方法及装置
CN109302449B (zh) 数据写入方法、数据读取方法、装置和服务器
CN113220651A (zh) 运行数据压缩方法、装置、终端设备以及存储介质
US20170048303A1 (en) On the fly statistical delta differencing engine
US11789708B2 (en) Compression of firmware updates
CN111831620B (zh) 用于存储管理的方法、设备和计算机程序产品
CN114035822A (zh) 一种文件更新方法及设备
CN108011952B (zh) 一种获取压缩字典的方法和装置
US12099475B2 (en) System and method for random-access manipulation of compacted data files
US20240202163A1 (en) System and method for random-access manipulation of compacted data files

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