数据处理方法、装置、存储介质和计算机设备制造方法及图纸

技术编号:24251444 阅读:29 留言:0更新日期:2020-05-22 23:31
本申请涉及一种数据处理方法、装置、存储介质和计算机设备,所述方法包括:获取待处理数据中各个节点及所述各个节点对应的节点数据,其中,所述节点数据包括位置信息和节点值;对所述各个节点和所述各个节点对应的节点数据进行编码,得到编码结果;若所述编码结果中存在节点的节点值为空,从所述编码结果中丢弃所述节点的位置信息,并标记所述节点为空列。本申请提高了嵌套数据的列式存储的编解码效率,降低了编码过程占用的内存资源。

Data processing methods, devices, storage media and computer equipment

【技术实现步骤摘要】
数据处理方法、装置、存储介质和计算机设备
本申请涉及计算机
,特别是涉及一种数据处理方法、装置、存储介质和计算机设备。
技术介绍
随着大数据的不断发展,以及云计算等新兴技术的不断融合,越来越多的数据流向Hadoop生态圈,同时对于能够快速的从TB级别甚至PB级别的数据中获取有价值的数据对于一个产品来说愈加重要。在Hadoop生态圈的快速发展过程中,涌现了一批开源的数据分析引擎,例如Hive、SparkSQL、Impala、Presto等,同时也产生了多个高性能的列式存储格式,例如RCFile、ORC、Parquet等。Parquet是一种支持嵌套结构的列式存储格式,采用Dremel编码方式。然而,这种编码方式带有较多的冗余信息,造成编解码效率低等问题。
技术实现思路
基于此,有必要针对传统的数据处理方式编解码效率低的问题,提供一种数据处理方法、装置、计算机可读存储介质和计算机设备。一种数据处理方法,所述方法包括:获取待处理数据中各个节点及所述各个节点对应的节点数据,其中,所述节点数据包括位置信息和节点值;对所述各个节点和所述各个节点对应的节点数据进行编码,得到编码结果;若所述编码结果中存在节点的节点值为空,从所述编码结果中丢弃所述节点的位置信息,并标记所述节点为空列。一种数据处理装置,所述装置包括:获取模块,用于获取待处理数据中各个节点及所述各个节点对应的节点数据,其中,所述节点数据包括位置信息和节点值;编码模块,用于对所述各个节点和所述各个节点对应的节点数据进行编码,得到编码结果;标记模块,用于若所述编码结果中存在节点的节点值为空,从所述编码结果中丢弃所述节点的位置信息,并标记所述节点为空列。一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机可执行指令,所述计算机可执行指令被处理器执行时,使得所述处理器执行数据处理方法的步骤。一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,使得所述处理器执行数据处理方法的步骤。上述数据处理方法、装置、计算机可读存储介质和计算机设备,获取待处理数据中各个节点及各个节点对应的节点数据,对各个节点和各个节点对应的节点数据进行编码得到编码结果,若编码结果中存在节点的节点值为空,从编码结果中丢弃节点的位置信息,并标记节点为空列。这种数据处理方法,在编码的过程中标记空节点,在解码的过程中检测到节点被标记,则跳过该节点,减少了需要进行编解码的数据,从而提高了嵌套数据的列式存储的编解码效率,降低了编码过程占用的内存资源。附图说明图1为一个实施例中用于实现数据处理方法的终端的内部结构图;图2为一个实施例中数据处理方法的流程示意图;图3为一个实施例中行式存储和列式存储的示意图;图4为一个实施例中嵌套数据的树状结构的示意图;图5为一个实施例中嵌套数据的列式存储的示意图;图6为一个实施例中编码结果的示意图;图7为另一个实施例中编码结果的示意图;图8为又一个实施例中编码结果的示意图;图9为另一个实施例中数据处理方法的流程示意图;图10为又一个实施例中数据处理方法的流程示意图;图11为一个实施例中数据处理装置的结构框图;图12为另一个实施例中数据处理装置的结构框图。具体实施方式为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。图1为一个实施例中终端的内部结构示意图。如图1所示,该终端包括通过系统总线连接的处理器、非易失性存储介质、内存储器和网络接口、声音采集装置、扬声器、显示屏、摄像头和输入装置。其中,终端的非易失性存储介质存储有操作系统,还可存储有计算机可读指令,该计算机可读指令被处理器执行时,可使得处理器实现一种数据处理方法。该处理器用于提供计算和控制能力,支撑整个终端的运行。该内存储器中也可储存有计算机可读指令,该计算机可读指令被所述处理器执行时,可使得所述处理器执行一种数据处理方法。网络接口用于与服务器或其他终端进行网络通信。终端的显示屏可以是液晶显示屏或者电子墨水显示屏等。输入装置可以是显示屏上覆盖的触摸层,也可以是终端外壳上设置的按键、轨迹球或触控板,也可以是外接的键盘、触控板或鼠标等。本领域技术人员可以理解,图1中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的终端的限定,具体的终端可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。如图2所示,在一个实施例中,提供了一种数据处理方法。参照图2,该数据处理方法具体包括如下步骤:S202,获取待处理数据中各个节点及所述各个节点对应的节点数据,其中,所述节点数据包括位置信息和节点值。其中,待处理数据是指编码过程中待进行编码的嵌套类型的数据。节点是指嵌套类型的数据中各个层级的数据,根据层级,节点分为根节点、叶子节点和中间节点,根节点代表出现一条新的消息,叶子节点用于存储具体的数据,中间节点本身不存储数据,其通过所包含的叶子节点来存储数据。节点数据用于表征节点的属性,节点数据包括节点值和位置信息。节点值是指节点存储的具体的数据;位置信息用于表征节点之间的层级关系和存储状况,在解码过程中还原节点所在的位置。本实施例提供的数据处理方法可适用于嵌套类型的数据的列式存储,比如Parquet、Dremel等。其中,Parquet是一种支持嵌套结构的列式存储格式;Dremel是一套用于分析只读嵌套数据的可扩展交互式即时查询系统,通过结合多层执行树和数据的列组织,在秒级完成上万亿行表的聚合查询。其中,列式存储是指以列相关的存储架构进行数据存储,即一列中的数据在存储介质中以连续存储的形式存在。如图3所示,图3为行式存储和列式存储的示意图,相比于传统的行式存储,列式存储中任何列都能作为索引,可高效查找数据,且查询过程中只读取涉及到的列,可减少无关的输入或者输出操作。其中,嵌套类型是指:当至少两个数据之间具有装配关系时,将一个数据嵌入至另一个数据中的数据类型。其中,嵌套类型的数据的列式存储是指:在对嵌套类型的数据进行编码的过程中,将嵌套类型的数据映射为数据列,按照映射的数据列存储嵌套类型的数据。具体地,在嵌套的数据模型中,每个Schema(数据库的基本组织)包含至少两个节点,每个节点具有三种属性:Repetition(重复数)、Type(类型)和Name(字段名)。Repetition包括Required、Optional和Repeated,其中,Required是指该节点出现1次,Optional是指该节点出现0次或1次,Repeated是指该节点出现0次或多次;Type可分为复杂类型(Group)和基本类型(Int、Bo本文档来自技高网...

【技术保护点】
1.一种数据处理方法,所述方法包括:/n获取待处理数据中各个节点及所述各个节点对应的节点数据,其中,所述节点数据包括位置信息和节点值;/n对所述各个节点和所述各个节点对应的节点数据进行编码,得到编码结果;/n若所述编码结果中存在节点的节点值为空,从所述编码结果中丢弃所述节点的位置信息,并标记所述节点为空列。/n

【技术特征摘要】
1.一种数据处理方法,所述方法包括:
获取待处理数据中各个节点及所述各个节点对应的节点数据,其中,所述节点数据包括位置信息和节点值;
对所述各个节点和所述各个节点对应的节点数据进行编码,得到编码结果;
若所述编码结果中存在节点的节点值为空,从所述编码结果中丢弃所述节点的位置信息,并标记所述节点为空列。


2.根据权利要求1所述的方法,其特征在于,所述位置信息包括定义信息和重复信息,其中,所述定义信息用于表征节点所在路径上节点值为空的层级,所述重复信息用于表征节点所在路径上重复类型的节点的层级;
所述标记所述节点为空列,包括:
获取所述节点的重复信息对应的数据集合;
根据所述重复信息对应的数据集合确定所述节点的重复信息的第一标记值,其中,所述第一标记值不等于所述重复信息对应的数据集合中的任意值;
根据所述第一标记值在所述编码结果中更新所述节点的节点数据。


3.根据权利要求2所述的方法,其特征在于,在根据所述重复信息对应的数据集合确定所述节点的重复信息的第一标记值之后,还包括:
获取所述节点的定义信息对应的数据集合;
根据所述定义信息对应的数据集合确定所述节点的定义信息的第二标记值,其中,所述第二标记值不等于所述定义信息对应的数据集合中的任意值;
所述根据所述第一标记值在所述编码结果中更新所述节点的节点数据,包括:
根据所述第一标记值和所述第二标记值在所述编码结果中更新所述节点的节点数据。


4.根据权利要求2所述的方法,其特征在于,在根据所述重复信息对应的数据集合确定所述节点的重复信息的第一标记值之后,还包括:
确定所述节点所在路径上以所述节点为起点,节点值为空的节点连续的第一数量;
将所述第一数量作为所述节点的定义信息的第二标记值;
所述根据所述第一标记值在所述编码结果中更新所述节点的节点数据,包括:
根据所述第一标记值和所述第二标记值在所述编码结果中更新所述节点的节点数据。


5.根据权利要求2所述的方法,其特征在于,所述根据所述重复信息对应的数据集合确定所述节点的重复信息的第一标记值,包括:
获取所述重复信息对应的数据集合中的最大值或者最小值;
对所述重复信息对应的数据集合中的最大值或者最小值进行处理,得到所述节点的重复信息的第一标记值。


6.根据权利要求5所述的方法,其特征在于,所述对所述重复信息对应的数据集合中的最大值或者最小值进行处理,得到所述节点的重复信息的第一标记值,包括:
在所述重复信息对应的数据集合中的最大值或者最小值的基础上增加预设数值,得到所述第一标记值,其中,所述预设数值为正值;
或者,获取所述重复信息对应的数据集合中的最大值或者最小值与预定数值之间的乘积,得到所述第一标记值,其中,所述预定数值大于1。


7.根据权利要求2所述的方法,其特征在于,所述标记所述节点为空列,包括:
获取所述节点的定义信息对应的数据集合;
根据所述定义信息对应的数据集合确定所述节点的定义信息的第二标记值,其中,所述第二标记值不等于所述定义信息对应的数据集合中的任意值;
根据所述第二标记值在所述编码结果中更新所述节点的节点数据。


8.根据权利要求3或7所述的方法,其特征在于,所述根据所述定义信息对应的数据集合确定所述节点的定义信息的第二标记值,包括:
获取所述定义信息对应的数据集合中的最大值或者最小值;
对所述定义信息对应的数...

【专利技术属性】
技术研发人员:林兆祥易卉芹蔡毅超
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:广东;44

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

1