一种数据处理方法及装置与流程

文档序号:32169023发布日期:2022-11-12 06:06阅读:49来源:国知局
一种数据处理方法及装置与流程

1.本技术涉及数据处理技术领域,尤其涉及一种数据处理方法及装置。


背景技术:

2.多表关联计算,通常是指从多个数据表中计算具有某些共同属性的记录。
3.在现有技术中,数据湖进行多表关联计算时,需要先将关联计算过程中的中间结果先生成本地文件,再将本地文件写入本地磁盘中,等需要用时再读取该本地文件。
4.由于在多表关联计算过程中,中间结果需要多次落地在本地磁盘中,等需要用到时在读取,使得数据库频繁访问磁盘,导致磁盘i/o开销高,且磁盘容易损坏。


技术实现要素:

5.有鉴于此,本技术实施例提供了一种数据处理方法及装置,旨在大规模并行分析数据仓库的内存中处理数据,没有中间结果落地到磁盘中,减少磁盘i/o开销。
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.所述第二发送子模块,用于将所述第三计算结果发送至所述数据湖中分布式文件系统的第二目录中;
48.所述第二获取子模块,用于从所述第二目录中,获取所述第三计算结果;
49.所述第二写入子模块,用于将所述第三计算结果写入所述数据湖的数据表中;
50.所述第三发送子模块,用于将所述第四计算结果发送至所述数据湖中分布式文件系统的第三目录中;
51.所述第三获取子模块,用于从所述第三目录中,获取所述第四计算结果;
52.所述第三写入子模块,用于将所述第四计算结果写入所述数据湖的数据表中;
53.所述第四发送子模块,用于将所述第五计算结果发送至所述数据湖中分布式文件系统的第四目录中;
54.所述第四获取子模块,用于从所述第四目录中,获取所述第五计算结果;
55.所述第四写入子模块,用于将所述第五计算结果写入所述数据湖的数据表中。
56.第三方面,本技术实施例提供了一种电子设备,所述电子设备包括:
57.存储器,用于存储一个或多个程序;
58.处理器;当所述一个或多个程序被所述处理器执行时,实现前述第一方面任一项所述的数据处理方法。
59.第四方面,本技术实施例提供了一种计算机存储介质,所述计算机存储介质中存储有程序,当所述程序被处理器执行时,实现前述第一方面任一项所述的数据处理方法。
60.上述技术方案具有如下有益效果:
61.本技术实施例提供了一种数据处理方法及装置。在执行所述方法时,先获取数据湖中的待处理的多表关联数据,后将所述多表关联数据发送给大规模并行分析数据仓库,然后在所述大规模并行分析数据仓库的内存中对多表关联数据进行计算,得到计算结果,最后将所述计算结果发送至数据湖中,以便所述数据湖存储所述计算结果。这样,通过在大规模并行分析数据仓库的内存中对多表关联数据进行处理,将中间结果存储在内存中,没有中间结果落地到磁盘中,使得磁盘i/o开销低,降低损坏磁盘的风险。
附图说明
62.为更清楚地说明本实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
63.图1为本技术实施例提供的数据处理方法的一种方法流程图;
64.图2为本技术实施例提供的数据处理装置的一种结构示意图。
具体实施方式
65.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
66.在现有技术中,数据湖进行多表关联计算时,需要先将关联计算过程中的中间结果(关联计算过程中各阶段输出结果的缓存)先生成本地文件,再将本地文件写入本地磁盘中,等需要用时再读取该本地文件。其中,中间结果指的是。例如:先将某一步关联计算过程中的中间结果缓存到本地磁盘中,而下一步关联计算过程中将从本地磁盘读取所需的中间结果后才能进行数据处理,因此在进行多表关联查询,将不可避免的存在多次查询结果落地缓存再读取的过程。
67.由于在多表关联计算过程中,中间结果需要多次落地在本地磁盘中,等需要用到时在读取,使得数据库频繁访问磁盘,导致磁盘i/o开销高,且磁盘容易损坏。
68.为了克服上述技术问题,本技术实施例提供了一种数据处理方法,该方法可以由数据库的操作系统来执行。
69.需要说明的是,本技术提供的一种数据处理方法及装置可用于数据处理技术领域或金融领域。上述仅为实例,并不对本技术提供的一种数据处理方法及装置的应用领域进行限定。
70.本技术实施例的相关术语介绍如下:
71.hadoop是一个能够对大量数据进行分布式处理的软件框架。hadoop以一种可靠、高效、可伸缩的方式进行数据处理。hadoop实现了一个分布式文件系统(distributed file system),其中一个组件是hdfs。
72.hive:hive是基于hadoop的一个数据工具,用来进行数据提取、转化、加载,这是一种可以存储、查询和分析存储在hadoop中的大规模数据的机制。hive数据仓库工具能将结构化的数据文件映射为一张数据库表,并提供sql查询功能,能将sql语句转变成mapreduce任务来执行。
73.hdfs:分布式文件系统(hadoop distributed file system,hdfs)是指被设计成适合运行在通用硬件(commodity hardware)上的分布式文件系统(distributed file system)。hdfs能提供高吞吐量的数据访问,适合大规模数据集上的应用。
74.mpp(massively parallel processing),意为大规模并行处理系统,这样的系统是由许多松耦合处理单元组成的,每个单元内的cpu都有自己私有的资源,如总线、内存、硬盘等。在每个单元内都有操作系统和管理数据库的实例复本。
75.参见图1,图1为本技术实施例提供的数据处理方法的一种方法流程图,该方法可以包括:
76.步骤s101:获取数据湖中的待处理的多表关联数据。
77.具体地,本技术实施例中,可以由数据库的操作系统从数据湖中获取待处理的多表关联数据;其中,多表关联数据指的是从多个数据表中计算具有某些共同属性的记录的数据。
78.相应地,可以利用hadoop构建数据湖,并从数据湖的贴源层的数据表获取待处理
的多表关联数据。
79.步骤s102:将所述多表关联数据发送给大规模并行分析数据仓库。
80.本技术实施例中,可以由数据库的操作系统将多表关联数据发送给mpp数据仓库,以便后续能够在所述大规模并行分析数据仓库的内存中对多表关联数据进行计算,得到计算结果。
81.例如:通过数据库语句将数据湖中贴源层的待处理的多表关联数据发送至mpp数据仓库,以便后续能够在所述大规模并行分析数据仓库的内存中对多表关联数据进行计算。
82.步骤s103:在所述大规模并行分析数据仓库的内存中对多表关联数据进行计算,得到计算结果。
83.具体地,本技术实施例在mpp数据仓库的内存中对所述多表关联数据进行计算,从而得到计算结果。
84.需要说明的是,本技术实施例通过在大规模并行分析数据仓库的内存中对多表关联数据进行处理,将中间结果存储在内存中,没有中间结果落地到磁盘中,使得磁盘i/o开销低。
85.作为一种优选的实施方式,所述大规模并行分析数据仓库的内存可以包括:技术缓冲层、整合模型层、共性加工层、应用计算层、应用接口层。其中,所述技术缓冲层用于存储所述多表关联数据,所述整合模型层、所述共性加工层、所述应用计算层和所述应用接口层用于对所述多表关联数据进行计算。
86.需要说明的是,本技术实施例将数据湖中对多表关联数据计算过程发送到mpp数据仓库中,由于mpp数据仓库多表关联计算能力强,因此能大幅度提高处理数据的能力。
87.作为一种优选的实施方式,所述在所述大规模并行分析数据仓库的内存中对多表关联数据进行计算,得到计算结果可以包括:在所述数据仓库中的技术缓冲层中对多表关联数据进行计算,得到第一计算结果后,将所述第一计算结果发送给所述整合模型层;在所述整合模型层中对第一计算结果进行计算,得到第二计算结果;将所述第二计算结果发送给所述共性加工层,在所述共性加工层中对第二计算结果进行计算,得到第三计算结果;将所述第三计算结果发送给所述应用计算层,在所述应用计算层中对第三计算结果进行计算,得到第四计算结果;将所述第四计算结果发送给所述应用接口层,在所述应用接口层中对第四计算结果进行计算,得到第五计算结果。
88.例如:数据湖中贴源层有a、b、c三张表,将贴源层的a、b、c三张表中待处理的多表关联数据发送到mpp数据仓库的技术缓冲层,在所述技术缓冲层中对多表关联数据进行计算,得到d、e两张表。然后将d、e两张表的多表关联数据发送给整合模型层,在所述整合模型层中对d、e两张表的多表关联数据进行计算,得到f表。接着将f表的多表关联数据发送给共性加工层,在所述共性加工层中对f表的多表关联数据进行计算,得到g表。接着可以将g表的多表关联数据发送给应用计算层,在所述应用计算层中对g表的多表关联数据进行计算,得到h表。接着可以将h表的多表关联数据发送给应用接口层,在所述应用接口层中对h表的多表关联数据进行计算,得到j表。相应的,在对多表关联数据进行计算,得到计算结果后,以便后续将所述计算结果发送至数据湖中。
89.步骤s104:将所述计算结果发送至数据湖中,以便所述数据湖存储所述计算结果。
90.本技术实施例中,通过步骤s103,对多表关联数据进行计算,得到计算结果后,将所述计算结果发送至数据湖中,以便所述数据湖存储所述计算结果。
91.需要说明的是,通过将复杂的多表关联计算在计算能力强的mpp数据仓库实现,将海量数据存储在数据湖中实现,充分利用了两种技术栈各自的优点,达到优势互补的效果。
92.从上述技术方案可以看出,本技术实施例中先获取数据湖中的待处理的多表关联数据,后将多表关联数据发送给大规模并行分析数据仓库,然后在大规模并行分析数据仓库的内存中对多表关联数据进行计算,得到计算结果,最后将计算结果发送至数据湖中,以便数据湖存储所述计算结果。这样,通过在大规模并行分析数据仓库的内存中对多表关联数据进行处理,将中间结果存储在内存中,没有中间结果落地到磁盘中,使得磁盘i/o开销低,降低损坏磁盘的风险。
93.作为一种优选的实施方式,所述将所述计算结果发送至数据湖中,以便所述数据湖存储所述计算结果可以包括:在整合模型层对多表关联数据进行计算,得到第二计算结果后,可以将第二计算结果发送至数据湖中hdfs分布式文件系统的第一目录中,从该目录中获取该第二计算结果,并将第二计算结果写入数据湖的hive数据表中。
94.在共性加工层对多表关联数据进行计算,得到第三计算结果后,可以将第三计算结果发送至数据湖中hdfs分布式文件系统的第二目录中,从该目录中获取该第三计算结果,并将第三计算结果写入数据湖的hive数据表中。
95.在应用计算层对多表关联数据进行计算,得到第四计算结果后,可以将第四计算结果发送至数据湖中hdfs分布式文件系统的第三目录中,从该目录中获取该第四计算结果,并将第四计算结果写入数据湖的hive数据表中。
96.在应用接口层对多表关联数据进行计算,得到第五计算结果后,可以将第五计算结果发送至数据湖中hdfs分布式文件系统的第四目录中,从该目录中获取该第五计算结果,并将第五计算结果写入数据湖的hive数据表中。
97.需要说明的是,在对多表关联数据进行计算,得到多个计算结果后,可以将多个计算结果发送至数据湖中hdfs分布式文件系统的多个目录中,从多个目录中获取多个计算结果,并将多个计算结果写入数据湖的hive数据表中。
98.可以理解的是,在hdfs的目录中保存的计算结果格式为txt文本格式,将计算结果的txt文本格式转换为orc(optimized row columnar)文本格式后,写入到数据湖中的hive数据表中。
99.需要说明的是,通过将复杂的多表关联计算在计算能力强的mpp数据仓库实现,将海量数据存储在数据湖中实现,充分利用了两种技术栈各自的优点,达到优势互补的效果。
100.以上为本技术实施例提供一种数据处理方法的一些具体实现方式,基于此,本技术还提供了对应的装置。下面将从功能模块化的角度对本技术实施例提供的装置进行介绍。
101.参见图2所示的一种数据处理装置的结构举例示意图,该装置包括第一获取模块100、第一发送模块200、计算模块300和第二发送模块400。
102.第一获取模块100,用于获取数据湖中的待处理的多表关联数据;
103.第一发送模块200,用于将所述多表关联数据发送给大规模并行分析数据仓库;
104.计算模块300,用于在所述大规模并行分析数据仓库的内存中对多表关联数据进
行计算,得到计算结果;
105.第二发送模块400,用于将所述计算结果发送至数据湖中,以便所述数据湖存储所述计算结果。
106.可选地,所述大规模并行分析数据仓库的内存包括:技术缓冲层、整合模型层、共性加工层、应用计算层、应用接口层,所述技术缓冲层用于存储所述多表关联数据,所述整合模型层、所述共性加工层、所述应用计算层和所述应用接口层用于对所述多表关联数据进行计算。
107.可选地,所述计算模块包括:第一计算子模块、第二计算子模块、第三计算子模块、第四计算子模块和第五计算子模块;
108.所述第一计算子模块,用于在所述数据仓库中的技术缓冲层中对多表关联数据进行计算,得到第一计算结果;
109.所述第二计算子模块,将所述第一计算结果发送给所述整合模型层,在所述整合模型层中对第一计算结果进行计算,得到第二计算结果;
110.所述第三计算子模块,将所述第二计算结果发送给所述共性加工层,在所述共性加工层中对第二计算结果进行计算,得到第三计算结果;
111.所述第四计算子模块,将所述第三计算结果发送给所述应用计算层,在所述应用计算层中对第三计算结果进行计算,得到第四计算结果;
112.所述第五计算子模块,将所述第四计算结果发送给所述应用接口层,在所述应用接口层中对第四计算结果进行计算,得到第五计算结果。
113.可选地,所述第二发送模块包括:第一发送子模块、第一获取子模块、第一写入子模块、第二发送子模块、第二获取子模块、第二写入子模块、第三发送子模块、第三获取子模块、第三写入子模块、第四发送子模块、第四获取子模块和第四写入子模块;
114.所述第一发送子模块,用于将所述第二计算结果发送至所述数据湖中分布式文件系统的第一目录中;
115.所述第一获取子模块,用于从所述第一目录中,获取所述第二计算结果;
116.所述第一写入子模块,用于将所述第二计算结果写入所述数据湖的数据表中;
117.所述第二发送子模块,用于将所述第三计算结果发送至所述数据湖中分布式文件系统的第二目录中;
118.所述第二获取子模块,用于从所述第二目录中,获取所述第三计算结果;
119.所述第二写入子模块,用于将所述第三计算结果写入所述数据湖的数据表中;
120.所述第三发送子模块,用于将所述第四计算结果发送至所述数据湖中分布式文件系统的第三目录中;
121.所述第三获取子模块,用于从所述第三目录中,获取所述第四计算结果;
122.所述第三写入子模块,用于将所述第四计算结果写入所述数据湖的数据表中;
123.所述第四发送子模块,用于将所述第五计算结果发送至所述数据湖中分布式文件系统的第四目录中;
124.所述第四获取子模块,用于从所述第四目录中,获取所述第五计算结果;
125.所述第四写入子模块,用于将所述第五计算结果写入所述数据湖的数据表中。
126.本技术实施例还提供了一种电子设备,包括:存储器,用于存储一个或多个程序;
127.处理器;当所述一个或多个程序被所述处理器执行时,实现上述实施例中数据处理装置方法。
128.本技术实施例还提供了一种计算机存储介质,所述计算机存储介质中存储有程序,当所述程序被处理器执行时,实现上述实施例中数据处理方法。
129.本技术实施例中提到的“第一”、“第二”(若存在)等名称中的“第一”、“第二”只是用来做名字标识,并不代表顺序上的第一、第二。
130.本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
131.本领域技术人员可以理解,图所示的流程图仅是本技术的实施方式可以在其中得以实现的一个示例,本技术实施方式的适用范围不受到该流程图任何方面的限制。
132.在本技术所提供的几个实施例中,应该理解到,所揭露的方法、装置和设备,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
133.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
134.所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
135.对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1