本公开涉及数据处理,更具体地,涉及一种数据处理方法、数据处理装置及电子设备。
背景技术:
1、数据分析系统对数据进行处理,这包括将不同来源的数据进行采集、存储、分析等。通过这些数据处理,可以快速地发现行业趋势、用户特性、运营指标等关键数据,辅助决策,达成发展目标。随着数据量级的不断增加,如何存储、处理和应用海量数据是每一个数据分析系统都面临的巨大挑战。例如在用户运营的场景,往往面临着对数千万、数亿级别用户的海量行为进行分析、洞察和透视。这些场景都需要海量的存储和计算资源,以及尽可能低延迟的查询响应。
2、随着数据的不断积累,如何组织、管理、存储、和查询十数亿级别的用户、数十亿的商品以及每秒钟大量的网络服务请求日志记录,并精确的实现人、货、场的高效匹配,做到精细化运营,是行业面临的一个巨大挑战。因此,需要对数据查询、分析和存储进行改进。
技术实现思路
1、本公开实施例的一个目的是提供一种的新的数据处理技术方案。
2、根据本公开的第一方面,提供了一种数据处理方法,包括:
3、接收查询请求;
4、对所述查询请求进行解析,确定所述查询请求对应的数据集和所述查询请求对于所述数据集的单点运算符;
5、对于每一所述数据集,根据所述数据集的元数据,查询所述数据集的数据内容,及根据所述数据集的数据内容和所述数据集的单点运算符,得到对于所述数据集的单点查询结果;其中,所述数据集的元数据包括所述数据集的存储结构和存储位置;
6、根据每一数据集的单点查询结果,得到并输出对于所述查询请求的响应结果。
7、可选地,所述查询请求对应至少两个数据集,所述至少两个数据集包括第一数据集和第二数据集,所述第一数据集的存储结构为基于高效压缩位图的存储结构,所述第二数据集的存储结构为基于位图分片索引的存储结构。
8、可选地,所述查询请求涉及所述第一数据集与所述第二数据集的联合运算;所述对所述查询请求进行解析,还确定所述查询请求对应的联合运算符;所述根据每一数据集的单点查询结果,得到并输出所述查询请求的响应结果,包括:
9、根据每一数据集的单点查询结果和所述联合运算符,得到并输出所述查询请求的响应结果;其中,所述联合运算符包括所述第一数据集的第一单点查询结果与所述第二数据集的第二单点查询结果之间的运算符。
10、可选地,所述查询请求对应至少两个数据集,所述至少两个数据集包括第三数据集和第四数据集,所述第三数据集和所述第四数据集的存储结构均为基于高效压缩位图的存储结构,所述第三数据集的第一位数大于所述第四数据集的第二位数;所述根据每一数据集的单点查询结果,得到并输出所述查询请求的响应结果,包括:
11、将所述第四数据集的第二位数的第四单点查询结果转换为第一位数的第四单点查询结果;
12、根据所述第三数据集的第一位数的第三单点查询结果和所述第四数据集的第一位数的第四单点查询结果,得到并输出所述查询请求的响应结果。
13、可选地,所述查询请求对应的数据集包括第二数据集,根据所述数据集的元数据,查询所述数据集的数据内容,包括:
14、根据所述第二数据集的元数据,确定所述第二数据集为基于位图分片索引的存储结构,并确定所述第二数据集的各数据分片的分片存储区;
15、根据所述分片存储区记录的所对应数据分片的分片信息,以及所述第二数据集的单点运算符,确定所述查询请求涉及的数据分片作为目标分片;
16、在所述目标分片对应的分片存储区中,查询所述第二数据集的数据内容。
17、可选地,所述查询请求对应的数据集包括第二数据集,所述第二数据集的存储结构为基于位图分片索引的存储结构,查询所述第二数据集的数据内容之后,所述方法包括:
18、将查询的所述第二数据集的数据内容保存在内存中,形成新的数据分片;
19、在所述新的数据分片还用于区别所述第二数据集对应的第二单点运算符的其他运算时,遍历所述新的数据分片,以在所述内存中记录所述新的数据分片的分片信息;
20、在所述新的数据分片不用于所述其他运算时,省去所述遍历所述新的数据分片的步骤。
21、可选地,所述查询请求对应的数据集包括第二数据集,根据所述数据集的元数据,查询所述数据集的数据内容,及根据所述数据集的数据内容和所述数据集的单点运算符,得到对于所述数据集的单点查询结果,包括:
22、根据所述第二数据集的元数据,确定所述第二数据集为基于位图分片索引的存储结构,并确定所述第二数据集的数据分片所在的分配存储区;
23、将所述数据分片按照用户分组拆分成多个子分片;
24、启动与所述多个子分片一一对应的多个线程;
25、通过所述多个线程,在所述分配存储区中并行查询所对应子分片的数据内容,并根据所述单点运算符计算所对应子分片的分片结果;
26、根据每一线程的分片结果,得到对于所述第二数据集的单点查询结果。
27、可选地,所述查询请求对应的数据集包括第二数据集,所述第二数据集的存储结构为位图分片索引的存储结构,根据所述第二数据集的数据内容和所述第二数据集的第二单点运算符,得到对于所述第二数据集的第二单点查询结果,包括:
28、对于所述第二数据集的多个数据分片,在同一内存空间进行对应于所述第二单点运算符的计算,得到所述第二单点查询结果。
29、可选地,所述接收查询请求之前,所述方法还包括:
30、获取原始数据集;
31、确定所述原始数据集的应用属性;其中,所述应用属性为描述所对应数据集含义的属性;
32、根据所述应用属性,确定所述原始数据集的压缩类型;
33、基于所确定的压缩类型,对所述原始数据集进行压缩,得到并在存储介质中保存压缩后的数据集;
34、在元数据文件中记录所述压缩后的数据集的元数据;其中,所述元数据包括所述压缩后的数据集的存储属性和应用属性,所述存储属性包括存储位置和基于所述压缩类型的存储结构;
35、所述查询请求对应的数据集包括所述压缩后的数据集。
36、可选地,所述根据所述应用属性,确定所述原始数据集的压缩类型,包括:
37、在所述应用属性表示所述原始数据为非去重类数据的情况下,确定所述原始数据集的压缩类型为位图分片索引;或者,
38、在所述应用属性表示所述原始数据为去重类数据、且所述原始数据集的基数大于或者等于设定阈值的情况下,所述压缩类型为位图分片索引;或者,
39、在所述应用属性表示所述原始数据为去重类数据、且所述原始数据集的基数小于设定阈值的情况下,确定所述原始数据集的压缩类型为高效压缩位图。
40、根据本公开的第二方面,提供了一种数据处理装置,包括:
41、接收模块,接收查询请求;
42、解析模块,对所述查询请求进行解析,确定所述查询请求对应的数据集的元数据和所述查询请求对于所述数据集的单点运算符;
43、查询模块,对于每一所述数据集,根据所述数据集的元数据,查询所述数据集的数据内容,及根据所述数据集的数据内容和所述数据集的单点运算符,得到对于所述数据集的单点查询结果;其中,所述数据集的元数据包括所述数据集的存储结构和存储位置;
44、输出模块,用于根据每一数据集的单点查询结果,得到并输出对于所述查询请求的响应结果。
45、根据本公开的第三方面,提供了一种电子设备,其特征在于,包括存储器和处理器,所述存储器用于存储计算机程序,所述处理器用于在所述计算机程序的控制下,执行根据本公开的第一方面所述的数据处理方法。
46、本公开实施例的一个有益效果在于,由于数据集的元数据包括数据集的存储结构和存储位置,因此,可以在对实际的数据集内容进行操作之前,通过数据集的元数据预先进行处理,确定对于各个数据集的单点运算符。这里,预先对数据集的元数据的处理,可以减少对于实际数据集的处理量,并支持跨不同存储结构和不同存储介质的查询请求处理,从而提升查询处理效率和查询处理的灵活性。此外,通过这种方式,查询层模块的上层模块,例如分析层模块,不需要了解数据集的具体存储方式和位置。这样,数据集的底层查询操作对于上层的模块或用户是透明的,上层的模块或用户不需要了解底层的存储结构和操作方式。
47、通过以下参照附图对本说明书的示例性实施例的详细描述,本说明书的实施例的特征及其优点将会变得清楚。