数据处理方法、数据压缩方法及设备技术

技术编号:33361474 阅读:11 留言:0更新日期:2022-05-11 22:16
本公开提供了一种用于具有多个版本的多个关联集合的数据处理方法、数据压缩方法及对应的设备、装置和计算机可读存储介质。数据处理方法包括:确定多个关联集合的多个版本中的每个版本的状态,其中多个关联集合是按照不同维度对相同的数据集合进行聚合计算得到的多个彼此关联的集合,多个版本具有不同的创建时间,并且对于每个创建时间,所述多个关联集合中的各个关联集合对应同一版本,每个版本的状态指示该版本对应的写入操作的完成情况;基于多个版本中的每个版本的状态,确定多个关联集合的数据读取版本,其中数据读取版本是多个关联集合之间满足数据一致性的最大版本;以及基于该数据读取版本,对多个关联集合进行数据查询和读取。询和读取。询和读取。

【技术实现步骤摘要】
数据处理方法、数据压缩方法及设备


[0001]本公开涉及数据处理领域,并且更具体地涉及一种数据处理方法、数据压缩方法及对应的设备、装置和计算机可读存储介质。

技术介绍

[0002]如今,无论是在商业、科研还是个人应用中,经常需要处理大量的数据,通常采用报表系统来对这些大量数据进行存储、管理、更新和查询。报表系统例如可以存储在搭建于服务器上的数据库中,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
[0003]在报表系统中,为了便于数据查询,可以将最底层的数据按照不同的维度进行聚合,并为每个维度创建一张表,使得可以直接从不同维度的表中读取对应的数据,而无需在数据读取时再进行实时计算,从而加快了数据查询速度。然而,由于不同维度的表的更新时间有先后,在数据读取时可能出现不同维度的表之间数据不一致的问题。另外,在多版本报表系统中,由于系统能够存储的数据版本的数量是有限的,因此,通常会设置每条数据最多存储的版本数N,当数据版本的数量超过N时,则对数据进行压缩,以清理掉一些版本。通常采用的数据压缩方法是保留最新的N个版本,而清理掉其他版本。然而,当数据写任务执行情况稳定的时候,这种方法会产生不必要的冗余数据,浪费存储空间,并且增大查询延迟。

技术实现思路

[0004]为了解决上述问题,本公开提供了一种用于具有多个版本的关联集合的数据处理方法、数据压缩方法及对应的设备、装置和计算机可读存储介质。
[0005]根据本公开的一个方面,提供了一种用于具有多个版本的多个关联集合的数据处理方法,包括:确定所述多个关联集合的所述多个版本中的每个版本的状态,其中所述多个关联集合是按照不同维度对相同的数据集合进行聚合计算得到的多个彼此关联的集合,所述多个版本具有不同的创建时间,并且对于每个创建时间,所述多个关联集合中的各个关联集合对应同一版本,每个版本的状态指示该版本对应的写入操作的完成情况;基于所述多个版本中的每个版本的状态,确定所述多个关联集合的数据读取版本,其中所述数据读取版本是所述多个关联集合之间满足数据一致性的最大版本;以及基于所述数据读取版本,对所述多个关联集合进行数据读取。
[0006]根据本公开的示例,其中,确定所述多个关联集合的所述多个版本中的每个版本的状态包括:基于所述数据集合中的至少一个数据的输入值,确定所述多个关联集合的一个或多个写入值;将所述版本的状态设置为第一状态;利用所述一个或多个写入值对所述
多个关联集合进行写入操作,以得到所述版本的多个关联集合;基于所述写入操作的完成情况,将所述版本的状态更新为第二状态或第三状态。
[0007]根据本公开的示例,其中,确定所述多个关联集合的一个或多个写入值包括:利用所述至少一个数据的输入值对所述多个关联集合进行聚合计算,以确定所述多个关联集合的一个或多个写入值。
[0008]根据本公开的示例,其中,基于所述写入操作的完成情况,将所述版本的状态更新为第二状态或第三状态包括:在所述写入操作完成时,将所述版本的状态更新为第二状态;以及在所述写入操作失败时,执行与所述一个或多个写入值对应的重启写入操作,并且在所述重启写入操作完成时,将所述版本的状态更新为第三状态,其中,所述写入操作与所述重启写入操作对应于不同的版本。
[0009]根据本公开的示例,其中,在所述版本的状态为第三状态时,该方法还包括:基于与所述版本相比具有更小的版本号的一个或多个版本的状态,以及介于所述版本与所述重启写入操作所对应的版本之间的一个或多个版本的完成情况,将所述版本的状态修复为第二状态。
[0010]根据本公开的示例,其中,在与所述版本相比具有更小的版本号的一个或多个版本均为第二状态或第三状态,并且介于所述版本与所述重启写入操作所对应的版本之间的一个或多个版本均为第二状态或第三状态时,将所述版本的状态修复为第二状态。
[0011]根据本公开的示例,其中,确定多个关联集合的数据读取版本包括:将所述多个版本中最后一个连续为第二状态的版本确定为所述多个关联集合的数据读取版本。
[0012]根据本公开的示例,其中,确定多个关联集合的数据读取版本包括:将所述多个版本中最后一个连续为第二状态的版本确定为第一数据读取版本;将所述多个版本中版本号最大的版本确定为第二数据读取版本;以及基于所述第一数据读取版本和所述第二数据读取版本确定所述数据读取版本。
[0013]根据本公开的示例,其中,基于所述第一数据读取版本和所述第二数据读取版本确定所述数据读取版本包括:在所述第二数据读取版本的版本号和所述第一数据读取版本的版本号之间的差小于预定阈值的情况下,确定所述数据读取版本为所述第一数据读取版本;以及在所述第二数据读取版本的版本号和所述第一数据读取版本的版本号之间的差大于或等于预定阈值的情况下,确定所述数据读取版本为所述第二数据读取版本。
[0014]根据本公开的另一方面,提供了一种用于具有多个版本的多个关联集合的数据压缩方法,包括:确定所述多个关联集合的所述多个版本中每个版本的状态,其中所述多个关联集合是按照不同维度对相同的数据集合进行聚合计算得到的多个彼此关联的集合,所述多个版本具有不同的创建时间,并且对于每个创建时间,所述多个关联集合中的各个关联集合对应同一版本,每个版本的状态指示该版本对应的写入操作的完成情况;基于所述多个版本中每个版本的状态,确定所述多个关联集合的数据读取版本,其中所述数据读取版本是所述多个关联集合之间满足数据一致性的最大版本;以及基于所述数据读取版本与构成所述多个版本的多个关联集合的数据的不同版本之间的关系,对所述不同版本的数据进行压缩。
[0015]根据本公开的示例,其中,确定所述关联集合的所述多个版本中每个版本的状态包括:基于所述多个数据集合中的至少一个数据的输入值,确定所述多个关联集合的一个
或多个写入值;将所述版本的状态设置为第一状态;利用所述一个或多个写入值对所述多个关联集合进行写入操作,以得到所述版本的多个关联集合;基于所述写入操作的完成情况,将所述版本的状态更新为第二状态或第三状态。
[0016]根据本公开的示例,其中,确定多个关联集合的数据读取版本包括:将所述多个版本中最后一个连续为第二状态的版本确定为所述数据读取版本。
[0017]根据本公开的示例,其中,基于所述数据读取版本与构成所述多个关联集合的数据的不同版本之间的关系,对所述不同版本的数据进行压缩包括:保留与所述数据读取版本相比具有更大的版本号的版本的数据;以及保留具有小于或等于所述数据读取版本的版本号的最大版本号的版本的数据。
[0018]根据本公本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种用于具有多个版本的多个关联集合的数据处理方法,包括:确定所述多个关联集合的所述多个版本中的每个版本的状态,其中所述多个关联集合是按照不同维度对相同的数据集合进行聚合计算得到的多个彼此关联的集合,所述多个版本具有不同的创建时间,并且对于每个创建时间,所述多个关联集合中的各个关联集合对应同一版本,每个版本的状态指示该版本对应的写入操作的完成情况;基于所述多个版本中的每个版本的状态,确定所述多个关联集合的数据读取版本,其中所述数据读取版本是所述多个关联集合之间满足数据一致性的最大版本;以及基于所述数据读取版本,对所述多个关联集合进行数据读取。2.根据权利要求1所述的数据处理方法,其中,确定所述多个关联集合的所述多个版本中的每个版本的状态包括:基于所述数据集合中的至少一个数据的输入值,确定所述多个关联集合的一个或多个写入值;将所述版本的状态设置为第一状态;利用所述一个或多个写入值对所述多个关联集合进行写入操作,以得到所述版本的多个关联集合;基于所述写入操作的完成情况,将所述版本的状态更新为第二状态或第三状态。3.根据权利要求2所述的数据处理方法,其中,确定所述多个关联集合的一个或多个写入值包括:利用所述至少一个数据的输入值对所述多个关联集合进行聚合计算,以确定所述多个关联集合的一个或多个写入值。4.根据权利要求2所述的数据处理方法,其中,基于所述写入操作的完成情况,将所述版本的状态更新为第二状态或第三状态包括:在所述写入操作完成时,将所述版本的状态更新为第二状态;以及在所述写入操作失败时,执行与所述一个或多个写入值对应的重启写入操作,并且在所述重启写入操作完成时,将所述版本的状态更新为第三状态,其中,所述写入操作与所述重启写入操作对应于不同的版本。5.根据权利要求4所述的数据处理方法,其中,在所述版本的状态为第三状态时,所述方法还包括:基于与所述版本相比具有更小的版本号的一个或多个版本的状态,以及介于所述版本与所述重启写入操作对应的版本之间的一个或多个版本的完成情况,将所述版本的状态修复为第二状态。6.根据权利要求5所述的数据处理方法,其中,在与所述版本相比具有更小的版本号的一个或多个版本均为第二状态或第三状态,并且介于所述版本与所述重启写入操作对应的版本之间的一个或多个版本均为第二状态或第三状态时,将所述版本的状态修复为第二状态。7.根据权利要求2所述的数据处理方法,其中,确定所述多个关联集合的数据读取版本包括:将所述多个版本中最后一个连续为第二状态的版本确定为所述多个关联集合的数据读取版本。
8.根据权利要求2所述的数据处理方法,其中,确定所述多个关联集合的数据读取版本包括:将所述多个版本中最后一个连续为第二状态的版本确定为第一数据读取版本;将所述多个...

【专利技术属性】
技术研发人员:冯琛李延龙林兆祥蔡毅超
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:

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

1