1.本发明涉及数据库技术领域,尤其涉及一种多源数据融合方法、装置及电子设备。
背景技术:2.在基于数据库的实际项目应用中,随着新需求和功能的不断追加和完善,经常会遇到项目一期、项目二期、项目三期需要分别接入不同的数据源,那么数据融合就显着非常必要。
3.目前常规的做法是在项目一期的数据库(存储项目一期的数据的数据库)的基础上进行改造和扩展,这种做法固然可行,但是也带来一些问题,例如,需要对项目一期的数据库的结构进行改造,改造的过程中,可能会产生一些不可预知的bug(漏洞),影响项目一期的数据库的稳定性;同时项目二期、项目三期的数据都接入到项目一期的数据库中,将给项目一期的数据库带来很大的压力,从而拖慢针对项目一期的数据库的查询速度。
技术实现要素:4.有鉴于此,本发明实施例提供一种多源数据融合方法、装置及电子设备,用以解决现有技术中存在的多源数据融合时对原有数据库存在不利影响的问题。
5.第一方面,本发明实施例提供一种多源数据融合方法,包括:
6.基于待融合的多个数据源包含的各字段,在列式数据库中创建待融合数据的明细表,所述明细表中包括所述多个数据源的全部字段;
7.将所述多个数据源包含的数据,按照所述明细表所包含的字段,添加到所述列式数据库中;
8.按照与所述多个数据源包含的数据相关的业务逻辑,对所述列式数据库中的数据进行轻度汇总,得到多个汇总结果集。
9.根据本发明实施例的一种具体实现方式,所述基于待融合的多个数据源包含的各字段,在列式数据库中创建待融合数据的明细表,包括:
10.基于待融合的多个数据源包含的各字段,按照所述多个数据源包含的各字段之间的相关性,在列式数据库中创建待融合数据的多个明细表,其中,每个明细表所包含的多个字段之间的相关性满足预设相关条件,所述多个明细表中包括所述多个数据源的全部字段。
11.根据本发明实施例的一种具体实现方式,按照与所述多个数据源包含的数据相关的业务逻辑,对所述列式数据库中的数据进行轻度汇总,包括:
12.按照与所述多个数据源包含的数据相关的业务逻辑,分别针对每个明细表,对所述列式数据库中该明细表包含的数据进行轻度汇总。
13.根据本发明实施例的一种具体实现方式,还包括:
14.获取数据查询条件;
15.从所述多个汇总结果集中,选择与所述数据查询条件相匹配的汇总结果集,作为
待查询汇总结果集;
16.从所述待查询汇总结果集中,按照所述数据查询条件进行数据查询。
17.根据本发明实施例的一种具体实现方式,所述列式数据库为clickhouse列式数据库。
18.根据本发明实施例的一种具体实现方式,所述多个汇总结果集为多个物化视图结果集。
19.第二方面,本发明实施例还提供一种多源数据融合装置,包括:
20.明细表创建模块,用于基于待融合的多个数据源包含的各字段,在列式数据库中创建待融合数据的明细表,所述明细表中包括所述多个数据源的全部字段;
21.数据添加模块,用于将所述多个数据源包含的数据,按照所述明细表所包含的字段,添加到所述列式数据库中;
22.数据汇总模块,用于按照与所述多个数据源包含的数据相关的业务逻辑,对所述列式数据库中的数据进行轻度汇总,得到多个汇总结果集。
23.根据本发明实施例的一种具体实现方式,所述明细表创建模块,具体用于基于待融合的多个数据源包含的各字段,按照所述多个数据源包含的各字段之间的相关性,在列式数据库中创建待融合数据的多个明细表,其中,每个明细表所包含的多个字段之间的相关性满足预设相关条件,所述多个明细表中包括所述多个数据源的全部字段。
24.根据本发明实施例的一种具体实现方式,所述数据汇总模块,具体用于按照与所述多个数据源包含的数据相关的业务逻辑,分别针对每个明细表,对所述列式数据库中该明细表包含的数据进行轻度汇总。
25.根据本发明实施例的一种具体实现方式,还包括:
26.条件获取模块,用于获取数据查询条件;
27.结果集选择模块,用于从所述多个汇总结果集中,选择与所述数据查询条件相匹配的汇总结果集,作为待查询汇总结果集;
28.数据查询模块,用于从所述待查询汇总结果集中,按照所述数据查询条件进行数据查询。
29.根据本发明实施例的一种具体实现方式,所述列式数据库为clickhouse列式数据库。
30.根据本发明实施例的一种具体实现方式,所述多个汇总结果集为多个物化视图结果集。
31.第三方面,本发明实施例还提供一种电子设备,所述电子设备包括:壳体、处理器、存储器、电路板和电源电路,其中,电路板安置在壳体围成的空间内部,处理器和存储器设置在电路板上;电源电路,用于为上述电子设备的各个电路或器件供电;存储器用于存储可执行程序代码;处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行前述任一实现方式所述的方法。
32.第四方面,本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现本发明任一实施方式所述的方法。
33.第五方面,本发明的实施例还提供一种应用程序,所述应用程序被执行以实现本
发明任一实施方式所述的方法。
34.本发明实施例提供的一种多源数据融合方法中,基于待融合的多个数据源包含的各字段,在列式数据库中创建待融合数据的明细表,该明细表中包括多个数据源的全部字段;将多个数据源包含的数据,按照明细表所包含的字段,添加到列式数据库中;按照与多个数据源包含的数据相关的业务逻辑,对列式数据库中的数据进行轻度汇总,得到多个汇总结果集,从而实现了对多个数据源的数据的融合。并且,在数据融合的过程中,不需要改变原有数据库的结构,也并未在原有数据库中增加新的数据,因此,不会影响原有数据库的稳定性,亦避免新bug产生,也不会降低针对原有数据库的数据查询速度,即降低了对原有数据库的不利影响。
附图说明
35.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
36.图1为本发明的实施例提供的多源数据融合方法的流程图;
37.图2为本发明的实施例提供的多源数据融合方法的示意图;
38.图3为本发明的另一实施例提供的多源数据融合方法的流程图;
39.图4-1为本发明的实施例提供的多源数据融合装置的结构示意图;
40.图4-2为本发明的另一实施例提供的多源数据融合装置的结构示意图;
41.图5为本发明的实施例提供的电子设备的结构示意图。
具体实施方式
42.下面结合附图对本发明实施例进行详细描述。应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
43.本发明实施例提供一种多源数据融合方法,如图1所示,包括:
44.步骤11、基于待融合的多个数据源包含的各字段,在列式数据库中创建待融合数据的明细表,明细表中包括多个数据源的全部字段;
45.步骤12、将多个数据源包含的数据,按照明细表所包含的字段,添加到列式数据库中;
46.步骤13、按照与多个数据源包含的数据相关的业务逻辑,对列式数据库中的数据进行轻度汇总,得到多个汇总结果集。
47.采用本发明实施例提供的上述多源数据融合方法,在对多个数据源的数据进行融合的过程中,不需要改变原有数据库的结构,也并未在原有数据库中增加新的数据,因此,不会影响原有数据库的稳定性,亦避免新bug产生,也不会降低针对原有数据库的数据查询速度,即降低了对原有数据库的不利影响。
48.下面结合附图,对本发明实施例提供的方法及装置进行详细描述。
49.本发明另一实施例还提供了一种多源数据融合方法,其示意图如图2所示,以3个
数据源为例,分别是postgresql、oracle、hadoop三个数据源,三个数据源位于贴源层(operation data store),采用本发明实施例提供的多源数据融合方法,对该三个数据源的数据进行融合,其流程如图3所示,可以包括如下步骤:
50.步骤31、基于待融合的多个数据源包含的各字段,按照多个数据源包含的各字段之间的相关性,在列式数据库中创建待融合数据的多个明细表,其中,每个明细表所包含的多个字段之间的相关性满足预设相关条件,该多个明细表中包括多个数据源的全部字段。
51.每个数据源均可能包括多个字段的数据,为了能够实现对多个数据源的全部数据的融合,本步骤中,在列式数据库中创建的多个明细表中包括了多个数据源的全部字段。
52.本步骤中,针对字段的预设相关条件,可以基于实际的业务需求进行灵活设置,创建多个明细表,并将满足预设相关条件的各字段放到一个明细表中,有利于后续对每个明细表中数据的提取和使用。
53.本发明实施例中,不同明细表中可以具有相同的字段。
54.本发明实施例中,所采用的列式数据库可以是clickhouse列式数据库。
55.如图2所示,基于3个数据源,创建了2个clickhouse明细表,分别是clickhouse明细表1和clickhouse明细表2,2个clickhouse明细表位于明细层(data warehouse detail)。
56.步骤32、将多个数据源包含的数据,按照明细表所包含的字段,添加到列式数据库中。
57.本步骤中,可以使用etl(extract-transform-load,数据抽取、转换、装载)工具,如kettle工具,分别连接postgresql、oracle、hadoop三个数据源,使用sql融合三个数据源的数据至clickhouse列式数据库的明细表中。
58.执行本步骤之后,图2所示的明细层中已经添加了postgresql、oracle、hadoop三个数据源中的全部数据。
59.步骤33、按照与多个数据源包含的数据相关的业务逻辑,分别针对每个明细表,对列式数据库中该明细表包含的数据进行轻度汇总,得到多个汇总结果集。
60.对数据进行轻度汇总得到多个汇总结果集,便于后续针对数据查询的需要,提升查询速度。
61.其中,与多个数据源包含的数据相关的业务逻辑,可以基于实际的业务需求以及数据的特性进行灵活设置,在此不做具体限定。
62.针对clickhouse列式数据库,在对数据进行轻度汇总后,可以得到多个物化视图结果集,以便后续在数据查询时,进一步的提升查询速度。
63.如图2所示,针对明细层的2个clickhouse明细表的数据进行轻度汇总后,得到n个汇总结果集,所得到的n个汇总结果集位于轻度汇总层(data warehouse service)。
64.基于对3个数据源的数据进行融合,以及轻度汇总得到的汇总结果集,如图2所示,可以在应用层(application data store)向用户提供数据查询服务,具体可以包括如下步骤:
65.步骤34、获取数据查询条件。
66.该数据查询条件可以是用户基于前端展示页面输入的。
67.步骤35、从多个汇总结果集中,选择与数据查询条件相匹配的汇总结果集,作为待
查询汇总结果集。
68.汇总结果集是基于业务逻辑对数据进行轻度汇总得到的,数据查询条件也与业务逻辑存在关系,因此,本步骤中,可以先从多个汇总结果集中选择出与数据查询条件相匹配的汇总结果集。
69.步骤36、从待查询汇总结果集中,按照数据查询条件进行数据查询。
70.本发明实施例中,当某一个数据源中的数据发生更新时,可以先将数据更新到明细层的明细表中,再经过轻度汇总,更新到轻度汇总层的汇总结果集中。
71.基于同一发明构思,根据本发明实施例提供的上述多源数据融合方法,本发明实施例还提供一种多源数据融合装置,如图4-1所示,包括:
72.明细表创建模块41,用于基于待融合的多个数据源包含的各字段,在列式数据库中创建待融合数据的明细表,明细表中包括多个数据源的全部字段;
73.数据添加模块42,用于将多个数据源包含的数据,按照明细表所包含的字段,添加到列式数据库中;
74.数据汇总模块43,用于按照与多个数据源包含的数据相关的业务逻辑,对列式数据库中的数据进行轻度汇总,得到多个汇总结果集。
75.根据本发明实施例的一种具体实现方式,明细表创建模块41,具体用于基于待融合的多个数据源包含的各字段,按照多个数据源包含的各字段之间的相关性,在列式数据库中创建待融合数据的多个明细表,其中,每个明细表所包含的多个字段之间的相关性满足预设相关条件,多个明细表中包括多个数据源的全部字段。
76.根据本发明实施例的一种具体实现方式,数据汇总模块43,具体用于按照与多个数据源包含的数据相关的业务逻辑,分别针对每个明细表,对列式数据库中该明细表包含的数据进行轻度汇总。
77.根据本发明实施例的一种具体实现方式,如图4-2所示,还包括:
78.条件获取模块44,用于获取数据查询条件;
79.结果集选择模块45,用于从多个汇总结果集中,选择与数据查询条件相匹配的汇总结果集,作为待查询汇总结果集;
80.数据查询模块46,用于从待查询汇总结果集中,按照数据查询条件进行数据查询。
81.根据本发明实施例的一种具体实现方式,列式数据库为clickhouse列式数据库。
82.根据本发明实施例的一种具体实现方式,多个汇总结果集为多个物化视图结果集。
83.本实施例的装置,可以用于执行图1-图3所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
84.本发明实施例还提供一种电子设备,所述电子设备包含前述任一实施例所述的装置。
85.图5为本发明电子设备一个实施例的结构示意图,可以实现本发明图1-3所示实施例的流程,如图5所示,上述电子设备可以包括:壳体51、处理器52、存储器53、电路板54和电源电路55,其中,电路板54安置在壳体51围成的空间内部,处理器52和存储器53设置在电路板54上;电源电路55,用于为上述电子设备的各个电路或器件供电;存储器53用于存储可执行程序代码;处理器52通过读取存储器53中存储的可执行程序代码来运行与可执行程序代
码对应的程序,用于执行前述任一实施例所述的多源数据融合方法。
86.处理器52对上述步骤的具体执行过程以及处理器52通过运行可执行程序代码来进一步执行的步骤,可以参见本发明图1-3所示实施例的描述,在此不再赘述。
87.该电子设备以多种形式存在,包括但不限于:
88.(1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类终端包括:智能手机(例如iphone)、多媒体手机、功能性手机,以及低端手机等。
89.(2)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类终端包括:pda、mid和umpc设备等,例如ipad。
90.(3)便携式娱乐设备:这类设备可以显示和播放多媒体内容。该类设备包括:音频、视频播放器(例如ipod),掌上游戏机,电子书,以及智能玩具和便携式车载导航设备。
91.(4)服务器:提供计算服务的设备,服务器的构成包括处理器、硬盘、内存、系统总线等,服务器和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。
92.(5)其他具有数据交互功能的电子设备。
93.本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现本发明任一实施方式所述的方法。
94.本发明的实施例还提供一种应用程序,所述应用程序被执行以实现本发明任一实施例提供的方法。
95.需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
96.本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。
97.尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
98.为了描述的方便,描述以上装置是以功能分为各种单元/模块分别描述。当然,在实施本发明时可以把各单元/模块的功能在同一个或多个软件和/或硬件中实现。
99.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(read-only memory,rom)或随机存储记忆体(random access memory,ram)等。
100.以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何
熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。