一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

多源异构数据的处理方法、计算机设备及存储介质与流程

2022-07-16 16:17:11 来源:中国专利 TAG:


1.本发明实施例涉及信息处理技术,尤其涉及一种多源异构数据的处理方法、计算机设备及存储介质。


背景技术:

2.数据库是一个按数据结构来存储和管理数据的计算机软件系统。随着数据库的发展,数据库种类不断增多,不同类型的数据库适用于存储不同类型的数据内容。不同类型的数据库适配的结构化查询语言(structured query language,sql)语句存在差别。为了方便说明,后续将sql语句称为sql语句。
3.多源异构数据的查询为在多个存储有不同数据类型或数据结构的数据库之间进行的查询。通常,需要分别使用各数据库适配的sql语句向服务器发起查询,服务器将该查询语句转发至相应的数据库的查询引擎后进行sql语句的响应。目前缺少一种能够快速响应涉及多个数据库的sql语句的方案,如何提高多数据库查询的sql语句响应速度,成为亟待解决的技术问题。


技术实现要素:

4.本发明提供一种多源异构数据的处理方法、计算机设备及存储介质,以实现提高多数据库查询的sql语句响应速度。
5.第一方面,本发明实施例提供了一种多源异构数据的处理方法,其特征在于,包括:
6.与多个异构的数据源建立连接,获取数据源的数据源元数据;
7.根据连接的数据源中的物理库进行映射,得到逻辑库;
8.根据逻辑库确定逻辑库元数据,逻辑库元数据包括逻辑库;
9.通过内存缓存存储数据源元数据和逻辑库元数据;
10.根据数据源元数据和逻辑库元数据对sql语句进行响应,反馈查询结果。
11.第二方面,本发明实施例还提供了一种多源异构数据的处理装置,其特征在于,包括:
12.内存缓存控制模块,用于与多个异构的数据源建立连接;获取数据源的数据源元数据;根据连接的数据源中的物理库进行映射,得到逻辑库;根据逻辑库确定逻辑库元数据,逻辑库元数据包括逻辑库;
13.内存缓存模块,用于存储逻辑库、数据源元数据和逻辑库元数据;
14.应用客户端模块,用于接收sql语句;
15.查询引擎模块,用于根据数据源元数据和逻辑库元数据对sql语句进行响应,反馈查询结果。
16.第三方面,本发明实施例还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时实现如本发明实施例提供
的多源异构数据的处理方法。
17.第四方面,本发明实施例还提供了一种包含计算机可执行指令的存储介质,计算机可执行指令在由计算机处理器执行时用于执行如本发明实施例提供的多源异构数据的处理方法。
18.本发明实施例提供的多源异构数据的处理方法,与多个异构的数据源建立连接,获取数据源的数据源元数据;根据连接的数据源中的物理库进行映射,得到逻辑库;根据逻辑库确定逻辑库元数据,逻辑库元数据包括逻辑库;通过内存缓存存储数据源元数据和逻辑库元数据;根据数据源元数据和逻辑库元数据对sql语句进行响应,反馈查询结果。相对于目前缺少能够快速响应涉及多个数据库的sql语句的问题,本发明实施例能够在内存缓存中,根据多个异构的数据源的物理库进行映射,得到逻辑库,并在内存缓存中存储数据源元数据和逻辑库元数据。由于逻辑库是物理库的映射,而非对物理库进行拷贝,因此逻辑库中无需存储物理库中的字段内容,只需记载不同物理库包含的字段。在接收到sql语句时,sql语句包括查询的表格名称和字段名称,通过逻辑库元数据可以获知该表格名称以及字段名称所在的物理库,通过数据源元数据可与物理库进行连接,并通过连接的物理库获取字段内容,并进行查询响应。上述过程中,由于逻辑库、数据源元数据以及逻辑库元数据存储于内存缓存,使内存缓存无需存储数据源中的物理表,提高内存缓存的利用率,同时由于内存缓存具有较高的数据读写效率,因此能够快速的对sql语句进行响应,提高多源异构数据的查询效率。本发明实施例基于多源异构数据存储系统之上的逻辑映射,使用统一的sql语法进行数据的访问和统一的管理,构建了全局的逻辑数据库并支持对多源异构数据存储系统的二次安全保护。
附图说明
19.图1是本发明实施例提供的多源异构数据的处理的架构图;
20.图2是本发明实施例一中的多源异构数据的处理方法的流程图;
21.图3是本发明实施例二中的多源异构数据的处理方法的流程图;
22.图4是本发明实施例三中的多源异构数据的处理方法的数据流示意图;
23.图5是本发明实施例四中的多源异构数据的处理方法的流程图;
24.图6是本发明实施例四中的逻辑视图示意图;
25.图7是本发明实施例五中的一个多源异构数据的处理装置的结构示意图;
26.图8是本发明实施例五中的另一个多源异构数据的处理装置的结构示意图;
27.图9是本发明实施例六中的计算机设备的结构示意图。
具体实施方式
28.下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
29.图1为本发明实施例适用的多源异构数据的处理的架构图,包括多源异构数据源11、内存缓存12、查询引擎13、应用客户端14、管理客户端15以及持久化存储16。其中,多源异构数据源11包括多个数据源,数据源可以为关系型数据或非关系型数据库。内存缓存12、
查询引擎13、应用客户端14、管理客户端15以及持久化存储16可运行于一个计算机设备中,作为不同的功能模块运行。
30.内存缓存12可以以分布式形式存储。内存缓存12中存储有元数据。元数据包括逻辑库元数据、数据源元数据以及用户权限信息。内存缓存12与数据源中的数据同步,例如逻辑库名称与物理库名称同步、逻辑表名称与物理表名称同步以及逻辑表中字段与物理表中字段同步。
31.应用客户端14用于接收用户输入的sql语句,根据内存缓存12中的用户权限信息进行用户认证,认证成功后将sql语句发送至查询引擎13。应用客户端14可以对内存缓存12中的数据进行监听,当内存缓存12中的数据发生变化时,可实时发布至应用客户端14,以便提高数据时效性。
32.可以设置多个查询引擎13,每个查询引擎13用于与一种类型的数据源均进行数据交互,根据通过内存缓存12存储的逻辑库、逻辑库元数据、数据源元数据,与数据源连接,并扫描得到sql语句相关的字段内容,将字段内容拷贝到查询引擎本地,在查询引擎本地根据sql语句进行查询,将得到的查询结果通过应用客户端14反馈给用户。查询引擎13可以对内存缓存12中的数据进行监听,当内存缓存12中的数据发生变化时,可实时发布至查询引擎13,以便提高数据时效性。
33.查询引擎13可以以分布式方式配置,可通过执行sql从数据源查询数据,通过逻辑表与物理表映射关系定位数据源。可以通过在线扩展,提高并发sql查询数量。
34.管理客户端15用于为用户提供对内存缓存12中的元数据进行查询、修改等维护操作。
35.持久化存储16用于为内存缓存12提供持久化存储,避免临时断电等突发情况导致内存缓存12数据丢失的问题。
36.在上述监听过程中,可以监听内存缓存中的目录或关键字key,当发生目录删除、目录修改、key新增、key删除、key修改、value修改等事件时,监听客户端会实时收到变化的数据。
37.实施例一
38.图2为本发明实施例一提供的多源异构数据的处理方法的流程图,本实施例可适用于多源异构数据库进行数据查询管理的情况,该方法可以由用于进行数据库管理的计算机设备来执行,计算机设备可以为服务器或个人电脑等,该方法具体包括如下步骤:
39.步骤110、与多个异构的数据源建立连接,获取数据源的数据源元数据。
40.本发明实施例中内存缓存中保存有元数据(metadata),元数据为数据库的描述数据。获取数据源的连接信息,连接信息包括数据源地址、具有访问权限的用户名及密码等。数据源的连接信息可以由用户输入,也可以通过读取预先存储的连接信息获取。在于数据源建立连接后,可以通过数据源获取到数据源具有的物理库名称,以及每个物理库包含的物理表名称。数据源元数据为数据源的元数据,包括数据源的连接信息、数据源具有的物理库名称,以及每个物理库包含的物理表名称等。
41.多源异构的数据源可以包括关系型数据库、数据仓库存储系统、nosql数据库存储系统、分布式文件存储系统以及第三方存储系统的api等。其中,关系型数据库包括但不限于mysql、oracle、sqlserver、db2等,数据仓库存储系统包括但不限于teradata、
greenplum、hive等,nosql数据库存储系统包括但不限于hbase、mongodb、kudu、elasticsearch等。分布式文件存储系统包括但不限于hdfs、datacell fs、本地文件、nfs等。
42.步骤120、根据连接的数据源中的物理库进行映射,得到逻辑库。
43.逻辑库为内存缓存中维护的逻辑表的集合。映射得到的逻辑库包含与物理库中相同的表单名称、表单中包含的字段,逻辑库中为包括物理表中字段的字段内容,只包含字段的表头。换言之,逻辑库中的每个逻辑表与数据源中的物理表对应,通过字段的形式表示物理表中包含的字段的表头,而非字段内容。示例性的,字段表头可以为“姓名”,字段内容可以为“张三”、“李四”等。
44.在对物理表进行映射得到逻辑表后,生成物理表与逻辑表的映射关系。
45.可选的,根据连接的数据源中的物理库进行映射,得到逻辑库,可通过下述方式实施:
46.如果数据源为关系型数据库,根据物理库的物理表进行映射,得到逻辑表,逻辑表与物理表的字段一一对应。如果数据源为非关系型数据库,根据非关系型数据库的数据层级映射逻辑表以及逻辑表中的字段。
47.如果数据源为关系型数据库,则依次获取数据源中物理库中的物理表,对每个物理表进行映射,得到逻辑表。物理表的映射包括物理表名称的映射和物理表中字段的映射。为每个物理表分别映射一逻辑表,使物理表与逻辑表一一对应。
48.非关系型数据库(not only sql)中通过不同的数据层级存储数据。如果数据源为非关系型数据库(not only sql),根据非关系型数据库的数据结构类型,将其中不同的数据层级映射成表和字段。示例性的,如果非关系型数据库为mongodb数据源,则将其中聚集层collection映射为逻辑表,将聚集层collection下文档层document中的关键字key映射成字段,文档层document代表一行数据。示例性的,如果非关系型数据库为elasticsearch数据源,则将类型层type映射为逻辑表,将类型层type下文档层document中的关键字key映射成字段,文档层document代表一行数据。
49.通过上述方式能够对关系型数据库进行映射。对于不同类型的非关系型数据库,进行快速映射,试下能将非关系型数据库转换为逻辑表,提高逻辑库映射的普遍性。映射后的逻辑表均采用表头和字段的方式表示数据,使用统一的逻辑表格式表示数据源的物理表,能够提高数据处理速度。
50.步骤130、根据逻辑库确定逻辑库元数据,逻辑库元数据包括逻辑库。
51.在生成逻辑库后,将逻辑库、逻辑表、字段、逻辑表与物理表映射关系作为逻辑库元数据。其中,逻辑库包含多个逻辑表,逻辑库与数据源的物理库对应,逻辑表与数据源中物理库的物理表对应。字段为逻辑表包含的字段。
52.步骤140、通过内存缓存存储数据源元数据和逻辑库元数据。
53.内存缓存可以通过分布式的方式存储数据源元数据和逻辑库元数据。
54.可选的,内存缓存以key-value和目录(目录下包含多个key-value)结构的进行存储。内存缓存可以支持高速读写,支持分布式存储防止数据丢失,故障容忍度可以为半数节点。
55.步骤150、根据数据源元数据和逻辑库元数据对sql语句进行响应,反馈查询结果。
56.可以通过应用客户端接收用输入的sql语句,sql语句用于基于目标表格中的目标字段进行某种操作。sql语句可以为数据库模式定义语言(data definition language,ddl),也可以为数据操纵语言(data manipulation language,dml)。
57.查询引擎通过对sql语句进行解析,可获取sql语句包括查询的表格名称和字段名称。通过逻辑库元数据可以获知该表格名称以及字段名称所在的物理库,通过数据源元数据中的连接信息与物理库进行连接,并通过连接的物理库将字段内容下载至查询引擎本地。在查询引擎本地进行查询,得到查询结果。
58.本发明实施例提供的多源异构数据的处理方法,与多个异构的数据源建立连接,获取数据源的数据源元数据;根据连接的数据源中的物理库进行映射,得到逻辑库;根据逻辑库确定逻辑库元数据,逻辑库元数据包括逻辑库;通过内存缓存存储数据源元数据和逻辑库元数据;根据数据源元数据和逻辑库元数据对sql语句进行响应,反馈查询结果。相对于目前缺少能够快速响应涉及多个数据库的sql语句的问题,本发明实施例能够在内存缓存中,根据多个异构的数据源的物理库进行映射,得到逻辑库,并在内存缓存中存储数据源元数据和逻辑库元数据。由于逻辑库是物理库的映射,而非对物理库进行拷贝,因此逻辑库中无需存储物理库中的字段内容,只需记载不同物理库包含的字段。在接收到sql语句时,sql语句包括查询的表格名称和字段名称,通过逻辑库元数据可以获知该表格名称以及字段名称所在的物理库,通过数据源元数据可与物理库进行连接,并通过连接的物理库获取字段内容,并进行查询响应。上述过程中,由于逻辑库、数据源元数据以及逻辑库元数据存储于内存缓存,使内存缓存无需存储数据源中的物理表,提高内存缓存的利用率,同时由于内存缓存具有较高的数据读写效率,因此能够快速的对sql语句进行响应,提高多源异构数据的查询效率。
59.实施例二
60.图3为本发明实施例二提供的多源异构数据的处理方法的流程图,作为对上述实施例的进一步说明,包括:
61.步骤210、与多个异构的数据源建立连接,获取数据源的数据源元数据。
62.步骤220、根据连接的数据源中的物理库进行映射,得到逻辑库。
63.步骤230、根据逻辑库确定逻辑库元数据,逻辑库元数据包括逻辑库。
64.步骤240、通过内存缓存存储数据源元数据和逻辑库元数据。
65.步骤250、通过内存缓存储用户权限信息,用户权限信息包括用户对逻辑库中逻辑表的字段的访问权限。
66.内存缓存还存储有用户权限信息。用户权限信息用于表示用户对逻辑库、逻辑表以及逻辑表的字段的操作权限。
67.步骤260、根据用户权限信息、数据源元数据和逻辑库元数据对sql语句进行响应,反馈查询结果。
68.应用客户端在接收到用户触发的sql语句时,可以根据内存缓存中的用户权限信息,对用户进行第一权限认证。若权限认证通过,则将sql语句发送至查询引擎进行响应。
69.在一种实现方式中,步骤260、根据用户权限信息、数据源元数据和逻辑库元数据对sql语句进行响应,反馈查询结果,可通过下述方式实施:
70.响应用户接入操作,对用户进行身份认证;接收用户输入的sql语句;根据用户权
限信息对sql语句进行第一权限认证;若第一权限认证成功,根据数据源元数据和逻辑库元数据对sql语句进行响应;当逻辑数据库访问数据源时,数据源进行第二权限认证;若第二权限认证成功,数据源将sql语句的相关数据进行反馈,根据反馈的数据确定查询结果。
71.应用客户端可通过java数据库连接(java database connectivity,jdbc)、开放数据库连接(open database connectivity,odbc)、restful等方式接收用户的接入操作。当用户进行接入时,对用户进行身份认证。若身份认证通过,应用客户端将内存缓冲中获取用户认证信息,并将用户认证信息存储到应用客户端本地。应用客户端根据用户认证信息对用户输入的sql语句进行第一权限认证。第一权限认证用于判断用户是否具有对sql语句请求的表格以及表格中字段的操作权限。进一步的,用户认证信息可以包括用户的操作类型的权限信息,进而能够基于操作类型结合表格或字段进行权限认证。
72.可选的,用户发送sql语句时,应用客户端会进行拦截sql语句并进行解析。根据缓存的元数据对ddl语句和dml语句进行权限校验,即第一权限认证。其中ddl语句包含创建逻辑库(以及表、视图)、修改逻辑库(以及表、视图)、删除逻辑库(以及表、视图),dml语句包含查询数据、新增数据、修改数据、删除数据。
73.若第一权限认证通过,则将sql语句发送至查询引擎进行查询。如果第一权限认证未通过,则取消将sql语句发送至查询引擎进行查询,并将认证结果反馈给用户。
74.当查询引擎根据连接信息连接数据源时,数据源触发访问控制,访问控制用于进行第二权限认证。第二权限认证包括安全套接字协议(secure sockets layer,ssl)、kerberos(k8s)或用户名密码等至少一种认证方式。当第二权限认证通过时,数据源与查询引擎建立合法连接,允许查询引擎读取字段内容。查询引擎从数据源读取字段内容后,根据sql语句进行查询,得到查询结果。
75.进一步的,应用客户端使用本地存储的用户权限信息进行第一权限认证。为了保证用户权限信息的时效性,应用客户端实时监听元数据中的当前用户的用户权限信息,以及当前用户有权限访问的逻辑库元数据,并接收分布式内存缓存发布的元数据,进行本地缓存。
76.本发明实施例提供的多源异构数据的处理方法,能够在内存缓冲中存储用户权限信息,应用客户端实施监听用户信息的变更,保证应用客户端本地存储的用户权限信息等其他元数据的时效性。通过第一权限认证和第二权限认证实现权限认证,提高数据安全性。通过配置用户权限信息,能够实现用户在逻辑库中的字段级别的操作权限控制,提高用户权限的配置精度。
77.在上述实施方式的基础上,在步骤240、存储逻辑库、数据源元数据和逻辑库元数据之后,还包括:
78.通过管理客户端接收用户输入的元数据处理指令,元数据处理指令的操作类型包括添加操作、修改操作、删除操作或查询操作;根据元数据处理指令的操作类型对元数据进行处理,元数据包括:数据源元数据、逻辑库元数据或用户权限信息。
79.用户可以通过管理客户端登录web界面等可视化界面。通过可视化界面输入元数据处理指令。用户可以通过元数据处理指令对元数据进行添加、修改、删除和查询等操作。
80.通过管理客户端能够为用户提供元数据的访问和修改,提高易用性。
81.进一步,在步骤220、根据连接的数据源中的物理库进行映射,得到逻辑库之后,还
包括:
82.将元数据持久化到持久化存储;当初始化时,将持久化存储中的元数据加载至内存缓存。
83.分布式缓存中的元数据可以定时持久化到持久化存储。持久化存储可以为数据库和日志文件,其中数据库可以为关系型数据库。系统初始化时,将数据库或日志中元数据信息加载到分布式内存缓存中。持久化存储可以为分布式持久化存储。
84.通过持久化存储能够避免临时断电等突发情况导致内存缓存数据丢失的问题,提高数据安全性。
85.进一步的,内存缓存中已添加的数据源元数据可能被数据源的其他客户端修改,因此逻辑数据库可以定时抽取最新的数据源元数据进行比对。如果存在不一致的数据,则相应的数据源元数据状态和映射的逻辑库元数据状态被标识为异常暂时不可用。直到用户通过管理客户端执行同步命令或逻辑数据库自动执行同步任务,使相关元数据变更为抽取到的最新数据源元数据。进而提高内存缓存中元数据的时效性。
86.实施例三
87.图4为本发明实施例三提供的多源异构数据的处理方法的数据流示意图,作为对上述实施例的进一步说明,该方法包括:
88.步骤301、与多个异构的数据源建立连接,获取数据源的数据源元数据。
89.步骤302、根据连接的数据源中的物理库进行映射,得到逻辑库。
90.步骤303、根据逻辑库确定逻辑库元数据,逻辑库元数据包括逻辑库。
91.步骤304、通过内存缓存存储数据源元数据和逻辑库元数据。
92.步骤305、从多个查询引擎中确定一个协调者引擎和多个执行者引擎。
93.可以配置多个查询引擎,从多个查询引擎中确定一个协调者引擎,为该协调者引擎配置多个执行者引擎。
94.步骤306、协调者引擎用于解析sql语句,生成查询计划,查询计划包括多个执行者引擎的查询任务。
95.协调者引擎对sql语句进行解析,得到sql语句涉及的表单名称和字段名称。根据逻辑库元数据确定表单名称对应的物理表,以及字段名称在物理表中的位置。可以根据与数据源适配的执行者引擎确定查询计划。也可以根据查询引擎的承载能力确定查询计划。查询计划包括执行者引擎需要查询的逻辑表、字段以及sql语句的查询内容。
96.步骤307、将查询任务分别发送至执行者引擎。
97.协调者引擎通过调度,将查询任务分配至执行者引擎。
98.步骤308、执行者引擎根据数据源类型使用与数据源类型匹配的驱动访问数据源,进行数据扫描;将扫描到的数据抽取至执行者引擎的内存。
99.执行者引擎根据数据源的类型,确定数据源适配的驱动。例如使用jdbc或odbc与oracle等关系型数据库的数据源连接,进行数据扫描。使用api驱动与nosql数据库的数据源进行连接,进行数据扫描。数据扫描用户将与sql语句相关的物理表中的字段内容拷贝到执行者引擎本地。
100.步骤309、若数据源类型不同,则涉及跨库查询的多个执行者引擎进行数据交互,将反馈结果发送至协调者引擎聚合,得到聚合的反馈结果。
101.处理同一批查询任务的多个执行者引擎之间,在进行数据扫描后,可以将本地的数据作为交换数据进行交换。每个执行者引擎根据数据扫描得到的数据和数据交换得到的数据,进行数据聚合。根据聚合后的进行查询,得到反馈结果。各执行者引擎将各自的查询结果发送至协调者引擎,由协调者引擎对反馈结果进行聚合,得到聚合的反馈结果。
102.步骤310、协调者引擎将聚合的反馈结果进行反馈。
103.本发明实施例提供的多源异构数据的处理方法,能够通过多个查询引擎进行跨库查询,提高跨库查询效率。
104.实施例四
105.图5为本发明实施例四提供的多源异构数据的处理方法的流程图,作为对上述实施例的进一步说明,包括:
106.步骤410、与多个异构的数据源建立连接,获取数据源的数据源元数据。
107.步骤420、根据连接的数据源中的物理库进行映射,得到逻辑库。
108.步骤430、根据逻辑库确定逻辑库元数据,逻辑库元数据包括逻辑库。
109.步骤440、通过内存缓存存储数据源元数据和逻辑库元数据。
110.步骤450、根据业务场景从映射的多个逻辑表确定多个字段。
111.步骤460、根据多个字段建立逻辑视图,逻辑视图包含多个字段的逻辑关系。
112.可选的,基于业务场景,从分布在不同物理库中的多张表中各提取若干字段作为结果字段,或者基于原有字段进行聚合分析形成结果字段,并将上述结果字段组合形成的逻辑视图。
113.可选的,基于逻辑表建立关联模型,以其中一张表为主表,使其与其他表进行关系分析或聚合分析,得到该模型的sql查询语句。基于关联模型的sql查询语句,在该逻辑库下创建逻辑视图,可以通过sql语句直接查询该逻辑视图获取结果集。
114.示例性的,如图6所示,以构建员工信息全景视图为例。员工信息存储在员工信息物理库的员工表中,工资信息存储在薪资福利物理库的工资表中,请假信息和考勤信息分别存储在考勤物理库的请假表和考勤统计表中。此时可以通过建立员工信息全景视图,使人资部门能够在一个视图下查看一个员工的所有信息。
115.步骤470、响应于sql语句,将数据源中的物理表中的字段数据抽取至查询引擎的内存缓存。
116.步骤480、根据逻辑视图包含的逻辑关系和sql语句进行查询,确定查询结果。
117.本发明实施例提供的多源异构数据的处理方法,能够基于业务场景创建逻辑视图,基于逻辑视图提取多个物理表中的多个字段,形成新的逻辑关系,提高基于逻辑视图进行查询的易用性。
118.实施例五
119.图7为本发明实施例五提供了一种多源异构数据的处理装置的结构示意图,适用于多源异构数据库进行数据查询管理的情况,该装置可以由用于进行数据库管理的计算机设备来执行,该装置包括:内存缓存控制模块510、内存缓存模块520、应用客户端模块530和查询引擎模块540。
120.内存缓存控制模块510,用于与多个异构的数据源建立连接;获取数据源的数据源元数据;根据连接的数据源中的物理库进行映射,得到逻辑库;根据逻辑库确定逻辑库元数
据,逻辑库元数据包括逻辑库;
121.内存缓存模块520,用于存储逻辑库、数据源元数据和逻辑库元数据;
122.应用客户端模块530,用于接收sql语句;
123.查询引擎模块540,用于根据数据源元数据和逻辑库元数据对sql语句进行响应,反馈查询结果。
124.在上述实施方式的基础上,内存缓存控制模块510用于:
125.如果数据源为关系型数据库,根据物理库的物理表进行映射,得到逻辑表,逻辑表与物理表的字段一一对应;
126.如果数据源为非关系型数据库,根据非关系型数据库的数据层级映射逻辑表以及逻辑表中的字段。
127.在上述实施方式的基础上,内存缓存模块520用于,通过内存缓存储用户权限信息,用户权限信息包括用户对逻辑库中逻辑表的字段的访问权限;
128.相应的,根据数据源元数据和逻辑库元数据对sql语句进行响应,反馈查询结果,包括:
129.应用客户端模块530用于根据用户权限信息进行第一权限认证;
130.若权限认证成功,查询引擎模块540根据数据源元数据和逻辑库元数据对sql语句进行响应,反馈查询结果。
131.在上述实施方式的基础上,应用客户端模块530用于:
132.响应用户接入操作,对用户进行身份认证;
133.接收用户输入的sql语句;
134.根据用户权限信息对sql语句进行第一权限认证;
135.查询引擎模块540用于,若第一权限认证成功,根据数据源元数据和逻辑库元数据对sql语句进行响应;
136.当逻辑数据库访问数据源时,数据源进行第二权限认证;
137.若第二权限认证成功,数据源将sql语句的相关数据进行反馈,根据反馈的数据确定查询结果。
138.在上述实施方式的基础上,查询引擎模块540用于:
139.从多个查询引擎中确定一个协调者引擎和多个执行者引擎;
140.协调者引擎用于解析sql语句,生成查询计划,查询计划包括多个执行者引擎的查询任务;
141.将查询任务分别发送至执行者引擎;
142.执行者引擎根据数据源类型使用与数据源类型匹配的驱动访问数据源,进行数据扫描;将扫描到的数据抽取至执行者引擎的内存;
143.若数据源类型不同,则涉及跨库查询的多个执行者引擎进行数据交互,将反馈结果发送至协同者引擎聚合,得到聚合的反馈结果;
144.协同者引擎将聚合的反馈结果进行反馈。
145.在上述实施方式的基础上,查询引擎模块540用于:
146.根据业务场景从映射的多个逻辑表确定多个字段;
147.根据多个字段建立逻辑视图,逻辑视图包含多个字段的逻辑关系;
148.响应于sql语句,将数据源中的物理表中的字段数据抽取至查询引擎的内存缓存;
149.根据逻辑视图包含的逻辑关系和sql语句进行查询,确定查询结果。
150.在上述实施方式的基础上,如图8所示,还包括管理客户端模块550。管理客户端模块550用于:
151.通过管理客户端接收用户输入的元数据处理指令,元数据处理指令的操作类型包括添加操作、修改操作、删除操作或查询操作;
152.根据元数据处理指令的操作类型对元数据进行处理,元数据包括:数据源元数据、逻辑库元数据或用户权限信息。
153.在上述实施方式的基础上,还包括持久化存储模块560。持久化存储模块560用于:
154.将元数据持久化到分布式持久化存储系统;
155.当初始化时,将持久化存储系统中的元数据加载至内存缓存。
156.本发明实施例提供的多源异构数据的处理装置,内存缓存控制模块510与多个异构的数据源建立连接;获取数据源的数据源元数据;根据连接的数据源中的物理库进行映射,得到逻辑库;根据逻辑库确定逻辑库元数据,逻辑库元数据包括逻辑库;内存缓存模块520存储逻辑库、数据源元数据和逻辑库元数据;应用客户端模块530接收sql语句;查询引擎模块540根据数据源元数据和逻辑库元数据对sql语句进行响应,反馈查询结果。相对于目前缺少能够快速响应涉及多个数据库的sql语句的问题,本发明实施例能够在内存缓存中,根据多个异构的数据源的物理库进行映射,得到逻辑库,并在内存缓存中存储数据源元数据和逻辑库元数据。由于逻辑库是物理库的映射,而非对物理库进行拷贝,因此逻辑库中无需存储物理库中的字段内容,只需记载不同物理库包含的字段。在接收到sql语句时,sql语句包括查询的表格名称和字段名称,通过逻辑库元数据可以获知该表格名称以及字段名称所在的物理库,通过数据源元数据可与物理库进行连接,并通过连接的物理库获取字段内容,并进行查询响应。由于逻辑库、数据源元数据以及逻辑库元数据存储于内存缓存,使内存缓存无需存储数据源中的物理表,提高内存缓存的利用率,同时由于内存缓存具有较高的数据读写效率,因此能够快速的对sql语句进行响应,提高多源异构数据的查询效率。
157.本发明实施例所提供的多源异构数据的处理置可执行本发明任意实施例所提供的多源异构数据的处理方法,具备执行方法相应的功能模块和有益效果。
158.实施例六
159.图9为本发明实施例六提供的一种计算机设备的结构示意图,如图9所示,该计算机设备包括处理器60、存储器61、输入装置62和输出装置63;计算机设备中处理器60的数量可以是一个或多个,图9中以一个处理器60为例;计算机设备中的处理器60、存储器61、输入装置62和输出装置63可以通过总线或其他方式连接,图9中以通过总线连接为例。
160.存储器61作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的多源异构数据的处理方法对应的程序指令/模块(例如,多源异构数据的处理装置中的操作解析模块610、语法解析模块620和字段解析模块630)。处理器60通过运行存储在存储器61中的软件程序、指令以及模块,从而执行计算机设备的各种功能应用以及数据处理,即实现上述的多源异构数据的处理方法。
161.存储器61可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此
外,存储器61可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器61可进一步包括相对于处理器60远程设置的存储器,这些远程存储器可以通过网络连接至计算机设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
162.输入装置62可用于接收输入的数字或字符信息,以及产生与计算机设备的用户设置以及功能控制有关的键信号输入。输出装置63可包括显示屏等显示设备。
163.实施例七
164.本发明实施例七还提供一种包含计算机可执行指令的存储介质,计算机可执行指令在由计算机处理器执行时用于执行一种多源异构数据的处理方法,该方法包括:
165.与多个异构的数据源建立连接,获取数据源的数据源元数据;
166.根据连接的数据源中的物理库进行映射,得到逻辑库;
167.根据逻辑库确定逻辑库元数据,逻辑库元数据包括逻辑库;
168.通过内存缓存存储数据源元数据和逻辑库元数据;
169.根据数据源元数据和逻辑库元数据对sql语句进行响应,反馈查询结果。
170.在上述实施方式的基础上,根据连接的数据源中的物理库进行映射,得到逻辑库,包括:
171.如果数据源为关系型数据库,根据物理库的物理表进行映射,得到逻辑表,逻辑表与物理表的字段一一对应;
172.如果数据源为非关系型数据库,根据非关系型数据库的数据层级映射逻辑表以及逻辑表中的字段。
173.在上述实施方式的基础上,在根据数据源元数据和逻辑库元数据对sql语句进行响应,反馈查询结果之前,还包括:
174.通过内存缓存储用户权限信息,用户权限信息包括用户对逻辑库中逻辑表的字段的访问权限;
175.相应的,根据数据源元数据和逻辑库元数据对sql语句进行响应,反馈查询结果,包括:
176.根据用户权限信息、数据源元数据和逻辑库元数据对sql语句进行响应,反馈查询结果。
177.在上述实施方式的基础上,根据数据源元数据和逻辑库元数据对sql语句进行响应,反馈查询结果,包括:
178.响应用户接入操作,对用户进行身份认证;
179.接收用户输入的sql语句;
180.根据用户权限信息对sql语句进行第一权限认证;
181.若第一权限认证成功,根据数据源元数据和逻辑库元数据对sql语句进行响应;
182.当逻辑数据库访问数据源时,数据源进行第二权限认证;
183.若第二权限认证成功,数据源将sql语句的相关数据进行反馈,根据反馈的数据确定查询结果。
184.在上述实施方式的基础上,根据数据源元数据和逻辑库元数据对sql语句进行响应,反馈查询结果,包括:
185.从多个查询引擎中确定一个协调者引擎和多个执行者引擎;
186.协调者引擎用于解析sql语句,生成查询计划,查询计划包括多个执行者引擎的查询任务;
187.将查询任务分别发送至执行者引擎;
188.执行者引擎根据数据源类型使用与数据源类型匹配的驱动访问数据源,进行数据扫描;将扫描到的数据抽取至执行者引擎的内存;
189.若数据源类型不同,则涉及跨库查询的多个执行者引擎进行数据交互,将反馈结果发送至协同者引擎聚合,得到聚合的反馈结果;
190.协同者引擎将聚合的反馈结果进行反馈。
191.在上述实施方式的基础上,在根据数据源元数据和逻辑库元数据对sql语句进行响应,反馈查询结果之前,还包括:
192.根据业务场景从映射的多个逻辑表确定多个字段;
193.根据多个字段建立逻辑视图,逻辑视图包含多个字段的逻辑关系;
194.根据数据源元数据和逻辑库元数据对sql语句进行响应,反馈查询结果,包括:
195.响应于sql语句,将数据源中的物理表中的字段数据抽取至查询引擎的内存缓存;
196.根据逻辑视图包含的逻辑关系和sql语句进行查询,确定查询结果。
197.在上述实施方式的基础上,在存储逻辑库、数据源元数据和逻辑库元数据之后,还包括:
198.通过管理客户端接收用户输入的元数据处理指令,元数据处理指令的操作类型包括添加操作、修改操作、删除操作或查询操作;
199.根据元数据处理指令的操作类型对元数据进行处理,元数据包括:数据源元数据、逻辑库元数据或用户权限信息。
200.在上述实施方式的基础上,在根据连接的数据源中的物理库进行映射,得到逻辑库之后,还包括:
201.将元数据持久化到分布式持久化存储;
202.当初始化时,将持久化存储中的元数据加载至内存缓存。
203.当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上的方法操作,还可以执行本发明任意实施例所提供的多源异构数据的处理方法中的相关操作。
204.通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、闪存(flash)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
205.值得注意的是,上述多源异构数据的处理装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护
范围。
206.注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献