CN117951153A - 元数据库访问系统、方法、计算机设备及存储介质 - Google Patents

元数据库访问系统、方法、计算机设备及存储介质 Download PDF

Info

Publication number
CN117951153A
CN117951153A CN202211275708.9A CN202211275708A CN117951153A CN 117951153 A CN117951153 A CN 117951153A CN 202211275708 A CN202211275708 A CN 202211275708A CN 117951153 A CN117951153 A CN 117951153A
Authority
CN
China
Prior art keywords
metadata
base
management unit
accessed
metadata base
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202211275708.9A
Other languages
English (en)
Inventor
贺升辉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SF Technology Co Ltd
Original Assignee
SF Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by SF Technology Co Ltd filed Critical SF Technology Co Ltd
Priority to CN202211275708.9A priority Critical patent/CN117951153A/zh
Publication of CN117951153A publication Critical patent/CN117951153A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请提供一种元数据库访问系统、方法、计算机设备及存储介质,元数据库访问系统包括:至少一个元数据库管理模块,包括元数据库管理单元和元数据库,每一元数据库管理模块包含一个元数据库;代理服务端,用于获取元数据请求语句;根据元数据请求语句确定待访问的元数据库,并确定与待访问的元数据库通讯连接的目标元数据库管理单元;根据元数据请求语句生成元数据操作指令发送至目标元数据库管理单元;目标元数据库管理单元,接收元数据操作指令,根据元数据操作指令访问待访问的元数据库得到执行结果,并将执行结果返回至代理服务端。采用本方法,代理服务端提供多个元数据库的访问服务,支持元数据服务水平扩展,解决单库瓶颈。

Description

元数据库访问系统、方法、计算机设备及存储介质
技术领域
本申请涉及人工智能技术领域,具体涉及一种元数据库访问系统、方法、计算机设备及存储介质。
背景技术
hive-metastore提供hive元数据的存储、管理服务,后端通常选择mysql用作元数据存储,通过thrift对外提供一系列元数据操作接口。
hive原生只支持单个关系型数据库做元数据存储,不支持水平扩展,所以存在两大缺陷:1、随着hive库、表、分区逐渐增多,元数据随之增多,元数据库、metastore的压力都随之增大,都会成为性能瓶颈。2、所有业务表的元数据都集中在一个库,很难做隔离,一旦元数据库故障,所有业务受影响。
通常的解决办法是拆分元数据库,但是拆分之后元数据、元数据管理服务就完全割裂了,按照hive的架构不能做到跨元数据库操作,所以拆分很难、拆分后使用很不方便。
发明内容
基于此,有必要针对上述技术问题,提供一种元数据库访问系统、方法、计算机设备及存储介质,代理服务端提供多个元数据库的访问服务,支持元数据服务水平扩展,解决单库瓶颈。
第一方面,本申请提供一种元数据库访问系统,包括:
至少一个元数据库管理模块,各所述元数据库管理模块包括元数据库管理单元和元数据库,所述元数据库管理单元与所述元数据库通讯连接,每一所述元数据库管理模块包含一个元数据库;
代理服务端,与所述至少一个元数据库管理模块通讯连接,用于获取元数据请求语句;根据所述元数据请求语句确定待访问的元数据库,并确定与所述待访问的元数据库通讯连接的目标元数据库管理单元;根据所述元数据请求语句生成元数据操作指令发送至所述目标元数据库管理单元;
所述目标元数据库管理单元,接收所述元数据操作指令,根据所述元数据操作指令访问所述待访问的元数据库得到执行结果,并将所述执行结果返回至所述代理服务端。
在本申请一些实施例中,所述代理服务端还用于若所述元数据请求语句中不包括元数据库标识信息,则确定预设元数据库为所述待访问的元数据库,并确定所述待访问的元数据库通讯连接的所述目标元数据库管理单元,所述预设元数据库为上一访问元数据库或任一元数据库管理模块中的元数据库;若所述元数据请求语句中包括元数据库标识信息,则根据所述元数据库标识信息确定所述待访问的元数据库,并确定所述待访问的元数据库通讯连接的所述目标元数据库管理单元。
在本申请一些实施例中,所述元数据请求语句中包含至少一个待访问的元数据库的元数据库标识信息;
所述代理服务端还用于根据所述至少一个元数据库标识信息确定所述至少一个待访问的元数据库通讯连接的至少一个元数据库管理单元;根据所述元数据请求语句生成元数据操作指令发送至所述至少一个元数据库管理单元;通过所述至少一个元数据库管理单元访问所述至少一个待访问的元数据库。
在本申请一些实施例中,所述至少一个元数据库管理单元包括第一元数据库管理单元和第二元数据库管理单元,所述第一元数据库管理单元通讯连接第一元数据库,所述第二元数据库管理单元通讯连接第二元数据库;
所述代理服务端还用于通过所述第一元数据库管理单元访问所述第一元数据库读取元数据信息,通过所述第二元数据库管理单元将所述元数据信息写入所述第二元数据库。
在本申请一些实施例中,所述元数据库管理单元包含至少一个元数据库管理端,所述至少一个元数据库管理端均与所述代理服务端、所述元数据库通讯连接。
在本申请一些实施例中,所述待访问的元数据库通讯连接的元数据库管理单元包含多个元数据库管理端;
所述代理服务端还用于通过所述多个元数据库管理端中任一元数据库管理端访问所述待访问的元数据库;若访问不成功则通过所述多个元数据库管理端中另一元数据库管理端访问所述待访问的元数据库。
第二方面,本申请提供一种元数据库访问方法,应用于上述任意一项所述的元数据库访问系统,包括:
获取客户端的元数据请求语句;
根据所述元数据请求语句确定待访问的元数据库;
从多个元数据库管理模块中确定与所述待访问的元数据库通讯连接的目标元数据库管理单元;所述元数据库管理模块包括元数据库管理单元和元数据库,所述元数据库管理单元与所述元数据库通讯连接,每一所述元数据库管理模块包含一个元数据库;
根据所述元数据请求语句生成元数据操作指令发送至所述目标元数据库管理单元;
接收所述目标元数据库管理单元返回的执行结果。
在本申请一些实施例中,所述元数据请求语句中包含至少一个待访问的元数据库的元数据库标识信息,所述从多个元数据库管理模块中确定与所述待访问的元数据库通讯连接的目标元数据库管理单元,包括:
根据所述至少一个元数据库标识信息确定通讯连接的至少一个元数据库管理单元;
根据所述元数据请求语句生成元数据操作指令发送至所述至少一个元数据库管理单元;
通过所述至少一个元数据库管理单元访问所述至少一个待访问的元数据库。
在本申请一些实施例中,所述元数据库管理单元包含至少一个目标元数据库管理端,从多个元数据库管理模块中确定与所述待访问的元数据库通讯连接的目标元数据库管理单元之后,包括:
通过所述多个目标元数据库管理端中任一元数据库管理端访问所述待访问的元数据库;
若访问不成功则通过所述多个目标元数据库管理端中另一元数据库管理端访问所述待访问的元数据库。
第三方面,本申请还提供一种元数据库访问装置,包括:
请求语句获取模块,用于获取客户端的元数据请求语句;
请求目标分析模块,与所述请求语句获取模块通讯连接,用于根据所述元数据请求语句确定待访问的元数据库;从多个元数据库管理模块中确定与所述待访问的元数据库通讯连接的目标元数据库管理单元;所述元数据库管理模块包括元数据库管理单元和元数据库,所述元数据库管理单元与所述元数据库通讯连接,每一所述元数据库管理模块包含一个元数据库;
指令生成模块,与所述请求语句获取模块、所述请求目标分析模块通讯连接,用于根据所述元数据请求语句生成元数据操作指令发送至所述目标元数据库管理单元;
执行结果接收模块,用于接收所述目标元数据库管理单元返回的执行结果。
第四方面,本申请还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器进行加载,以执行的元数据库访问方法中的步骤。
上述元数据库访问系统、方法、计算机设备及存储介质,代理服务端连接多个元数据库管理模块,每个元数据库管理模块均包含一个元数据库,即代理服务端提供多个元数据库的访问服务,支持元数据服务水平扩展,解决单库瓶颈。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例中元数据库访问系统的结构示意图;
图2是本申请实施例中元数据库访问系统的结构示意图;
图3是本申请实施例中元数据库访问方法的流程示意图;
图4是本申请实施例中元数据库访问装置的结构示意图。
附图标号:
100、代理服务端器;200、元数据库管理模块;210、元数据库管理单元;211、元数据库管理端;220、元数据库;300、元数据库访问装置;310、请求语句获取模块;320、请求目标分析模块;330、指令生成模块;340、执行结果接收模块。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在本申请的描述中,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个所述特征。在本申请的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
在本申请的描述中,“例如”一词用来表示“用作例子、例证或说明”。本申请中被描述为“例如”的任何实施例不一定被解释为比其它实施例更优选或更具优势。为了使本领域任何技术人员能够实现和使用本发明,给出了以下描述。在以下描述中,为了解释的目的而列出了细节。应当明白的是,本领域普通技术人员可以认识到,在不使用这些特定细节的情况下也可以实现本发明。在其它实例中,不会对公知的结构和过程进行详细阐述,以避免不必要的细节使本发明的描述变得晦涩。因此,本发明并非旨在限于所示的实施例,而是与符合本申请所公开的原理和特征的最广范围相一致。
参阅图1,本申请实施例提供了一种元数据库访问系统,元数据库访问系统包括代理服务端100和元数据库管理模块200,元数据库管理模块200可以是一个,也可以是多个,不同的元数据库管理模块200之间相互独立,互不干涉,代理服务端100与所有的元数据库管理模块200均通讯连接。
每个元数据库管理模块200均包括元数据库管理单元210和元数据库220,元数据库管理单元210与元数据库220通讯连接。元数据库220一般为mysql,用作元数据存储,元数据库管理单元210是用来管理元数据库220的一个服务,例如元数据库管理单元210可以包含为hive-metastore,hive-metastore提供hive元数据的存储、管理服务。每个元数据库管理模块200支持对唯一一个元数据库220的读写操作,因此每一元数据库管理模块200均只包含一个元数据库220。
代理服务端100与客户端通讯连接,客户端可以是hive-cli、hiveserver2、spark-sql等,用户通过客户端发送元数据请求语句至代理服务端100。元数据请求语句为sql语句,包含待访问的元数据库220的标识信息以及需要执行的操作类型(读取、写入等),例如元数据请求语句select*from ms1.db.tbl1,其中ms1.db.tbl1为待访问的元数据库220的标识信息,select*为需要执行的操作类型。
代理服务端100根据元数据请求语句确定待访问的元数据库220,并确定与待访问的元数据库220通讯连接的元数据库管理单元210为目标元数据库管理单元210,然后根据元数据请求语句生成元数据操作指令发送至目标元数据库管理单元210。其中,生成的元数据操作指令的格式基于代理服务端100与元数据库管理单元210之间采用的通信协议确定,在通信协议允许的情况下,也可以直接将元数据请求语句作为元数据操作指令。
目标元数据库管理单元210接收元数据操作指令,根据元数据操作指令访问待访问的元数据库220得到执行结果,并将执行结果返回至代理服务端100。执行结果基于元数据请求语句中需要执行的操作类型确定,可以是从元数据库220中读取的Hive元数据,也可以是将数据写入到元数据库220之后的反馈信息。之后代理服务端100将执行结果返回至发送元数据请求语句的客户端。
本实施例中代理服务端100直接面向用户,与各客户端通讯连接,对用户屏蔽掉后端的多个元数据库管理模块200,用户只需在客户端配置中将以前配置为元数据库管理模块200地址的配置项配置为代理服务端100地址即可完成对所有元数据库管理模块200的元数据操作。
在一个实施例中,元数据请求语句设置ms.db.tbl格式,ms.db.tbl分别对应【元数据库.数据库.表】,ms用于路由/定位元数据库220通讯连接的元数据库管理单元210以此规避了不同元数据库管理单元210中存在重名库、表的问题。
因此,通过元数据请求语句识别括元数据库标识信息,然后根据元数据库标识信息确定待访问的元数据库220,并确定待访问的元数据库220通讯连接的目标元数据库管理单元210。代理服务端100通过目标元数据库管理单元210访问该待访问的元数据库220。
此外,如果元数据请求语句中不包括元数据库标识信息,则确定预设元数据库为待访问的元数据库220,然后确定待访问的元数据库220通讯连接的目标元数据库管理单元210。其中,预设元数据库可以是历史任务中上一访问的元数据库220,也可以是用户根据需要设置的任一元数据库管理模块200中的元数据库220。其中,历史任务为代理服务端100在接收到本实施例所述的元数据请求语句之前处理的元数据请求任务,预设元数据库与历史任务中上一访问的元数据库220完全相同,其涉及的元数据库220可能只有一个,也可能包含多个,即当元数据请求语句中不包括元数据库标识信息时,本次任务默认直接执行与历史任务相同的一个或多个元数据库220。由于历史任务中访问的元数据库220是确定的,其访问的元数据库220的目标元数据库管理单元210也随之确定。但由于访问的元数据库220的目标元数据库管理单元210可能包含多个元数据库管理端211,在历史任务中使用的目标元数据库管理单元210的某个元数据库管理端211在本实施例中可能由于故障或权限等因素无法使用,因此本实施例中在元数据请求语句中不包括元数据库标识信息时确定历史任务中的元数据库220作为目标,然后基于历史任务中的元数据库220确定对应的目标元数据库管理单元210中的元数据库管理端211某个元数据库管理端211,而不是直接确定历史任务中使用的目标元数据库管理单元210的元数据库管理端211作为本实施例的元数据库管理端211。通过设置预设元数据库可以兼容历史任务,已存在的历史任务无需调整即可正常执行。
在一个实施例中,一个元数据请求语句可以关联多个元数据库管理模块200中的多个元数据库220进行元数据的读/写操作,即同一个元数据请求语句可以包含多个待访问的元数据库220的元数据库标识信息,基于该元数据请求语句可以同时访问多个待访问的元数据库220。
其中,代理服务端100根据多个元数据库标识信息确定通讯连接的多个待访问的元数据库220,进而确定多个待访问的元数据库220通讯连接的多个元数据库管理单元210,然后根据元数据请求语句生成元数据操作指令发送至确定的多个元数据库管理单元210,通过确定的多个元数据库管理单元210访问通讯连接的待访问的元数据库220。
在一个实施例中,代理服务端100可以通过多个元数据库管理单元210访问通讯连接的多个待访问的元数据库220,且不同待访问的元数据库220执行的元数据库220操作可以相同也可以不相同。
本实施例中对元数据库220的操作类型包括读取数据和写入数据,多个待访问的元数据库220包括第一元数据库220和第二元数据库220,当元数据请求语句中对多个待访问的元数据库220的操作相互之间没有关联时,即对第一元数据库220进行读取数据或写入数据的操作,同时对第二元数据库220进行读取数据或写入数据的操作,但两者同时独立完成。因此,代理服务端100可以通过多个元数据库管理单元210分别访问通讯连接的多个待访问的元数据库220。例如:元数据请求语句为select*from ms1.db.tbl1 t1 joinms2.db.tbl2 t2 on t1.c1=t2.c1;可以关联元数据库管理单元210ms1中的tbl1表和元数据库管理单元210ms2中的tbl2表进行查询操作。
此外,当元数据请求语句中对多个待访问的元数据库220的相互之间关联时,即将第一元数据库220的数据读取之后直接写入第二元数据库220,元数据库管理单元210包括第一元数据库管理单元210和第二元数据库管理单元210,第一元数据库管理单元210通讯连接第一元数据库220,第二元数据库管理单元210通讯连接第二元数据库220,代理服务端100通过第一元数据库管理单元210访问第一元数据库220读取元数据信息,然后通过第二元数据库管理单元210将读取的元数据信息写入第二元数据库220。
其中,第一元数据库管理单元210和第二元数据库管理单元210之间的切换可以通过在元数据请求语句进行说明实现,可以直接基于元数据请求语句中设置的ms.db.tbl格式进行说明,也可以通过env ms语法进行说明。(1)直接通过ms.db.tbl进行说明。例如:写入:insert into ms1.db.tbl select*from ms2.db.tbl;读取:select*from ms1.db.tbl。(2)先通过该env切换到下一元数据库管理单元210,之后下一元数据库管理单元210的所有操作与上述方法(1)中下一元数据库管理单元210执行的操作保持一致,env不影响下一元数据库管理单元210的操作。例如:写入:env ms1;读取:env ms1;select*from db.tbl。
在一个实施例中,元数据库管理单元210包含至少一个元数据库管理端211,即元数据库管理单元210可以包含一个元数据库管理端211,也可以包含多个元数据库管理端211,元数据库管理端211可以设为hive-metastore。对于属于同一个元数据库管理单元210的多个元数据库管理端211均与代理服务端100、元数据库220通讯连接。多个元数据库管理端211具有相同的权限,都可以访问通讯连接的元数据库220。
在一个实施例中,当待访问的元数据库220通讯连接的元数据库管理单元210包含多个元数据库管理端211,但代理服务端100每次访问元数据库220时仅需通过一个元数据库管理端211实现。因此,当待访问的元数据库220通讯连接多个元数据库管理端211时,代理服务端100将元数据操作指令发送至通讯连接的多个元数据库管理端211中任意一个元数据库管理端211,通过其访问待访问的元数据库220。如果访问成功则返回执行结果,如果访问不成功,则通过多个元数据库管理端211中另一元数据库管理端211访问待访问的元数据库220。依次尝试待访问的元数据库220通讯连接的多个元数据库管理端211,直至访问成功,或者所有的元数据库管理端211都尝试完毕之后仍然不成功返回执行结果为访问不成功。
需要说明的是,在从多个元数据库管理端211中选取某一个元数据库管理端211发送元数据操作指令时,可以是随机选取,也可以是预先配置多个元数据库管理端211的应用顺序,按照该应用顺序逐一选取通讯连接的元数据库管理端211访问待访问的元数据库220,避免单一的元数据库管理端211故障导致无法访问。
本实施例中,代理服务端100连接多个元数据库管理模块200,每个元数据库管理模块200均包含一个元数据库220,即代理服务端100提供多个元数据库220的访问服务,支持元数据服务水平扩展,解决单库瓶颈。多个元数据库管理模块200之间相互独立,实现按租户隔离元数据,避免业务相互影响,提升了整体元数据服务的效率。代理服务端100可以同时通过访问多个元数据库管理模块200中的元数据库220,租户间元数据可以打通实现互访,很好了实现了数据共享。
参阅图1和图2,本申请实施例提供了一种元数据库访问系统,在客户端(hive-cli、hiveserver2、spark-sql)和元数据库管理端211(metastore)之间配置代理服务端100(hive-metastore-proxy)统一对外提供元数据服务。
元数据库管理模块200包括元数据库管理端211(hive-metastore)和元数据库220(mysql),hive-metastore-proxy连接分成多组元数据库管理模块200,每组元数据库管理模块200分配一个全局唯一的名称(元数据库标识信息),每组支持对唯一一个元数据库220的读写操作。通过部署hive和spark-sql在sql语法上增减了对ms.db.tbl【元数据库.数据库.表】三级访问的支持,ms用于路由/定位hive-metastore以此规避了不同hive-metastore中存在重名库、表的问题。每次客户端发送元数据请求语句时都会带上元数据库标识信息请求hive-metastore-proxy,hive-metastore-proxy再根据数据库标识信息将请求路由到相应的hive-metastore,hive-metastore处理完请求后将执行结果返回hive-metastore-proxy,由hive-metastore-proxy最终返回给客户端。其中,同一元数据库管理模块200可以包含一个或多个hive-metastore。hive-metastore-proxy直接面向用户,对用户屏蔽掉后端的多个metastore,用户只需在客户端配置中将以前配置为metastore地址的配置项配置为hive-metastore-proxy地址即可完成对所有metastore的元数据操作。
参阅图1和图3,本申请实施例提供了一种数据处理方法,该方法包括步骤S101~S105,具体如下:
S101,获取客户端的元数据请求语句;
S102,根据所述元数据请求语句确定待访问的元数据库220;
S103,从多个元数据库管理模块200中确定与所述待访问的元数据库220通讯连接的目标元数据库管理单元210;所述元数据库管理模块200包括元数据库管理单元210和元数据库220,所述元数据库管理单元210与所述元数据库220通讯连接,每一所述元数据库管理模块200包含一个元数据库220;
S104,根据所述元数据请求语句生成元数据操作指令发送至所述目标元数据库管理单元210;
S105,接收所述目标元数据库管理单元210返回的执行结果。
具体地,元数据库访问系统包括代理服务端100和元数据库管理模块200,元数据库管理模块200可以是一个,也可以是多个,不同的元数据库管理模块200之间相互独立,互不干涉,代理服务端100与所有的元数据库管理模块200均通讯连接。
每个元数据库管理模块200均包括元数据库管理单元210和元数据库220,元数据库管理单元210与元数据库220通讯连接。元数据库220一般为mysql,用作元数据存储,元数据库管理单元210是用来管理元数据库220的一个服务,例如元数据库管理单元210可以包含为hive-metastore,hive-metastore提供hive元数据的存储、管理服务。每个元数据库管理模块200支持对唯一一个元数据库220的读写操作,因此每一元数据库管理模块200均只包含一个元数据库220。
代理服务端100与客户端通讯连接,客户端可以是hive-cli、hiveserver2、spark-sql等,用户通过客户端发送元数据请求语句至代理服务端100。元数据请求语句为sql语句,包含待访问的元数据库220的标识信息以及需要执行的操作类型(读取、写入等),例如元数据请求语句select*from ms1.db.tbl1,其中ms1.db.tbl1为待访问的元数据库220的标识信息,select*为需要执行的操作类型。
代理服务端100根据元数据请求语句确定待访问的元数据库220,并确定与待访问的元数据库220通讯连接的元数据库管理单元210为目标元数据库管理单元210,然后根据元数据请求语句生成元数据操作指令发送至目标元数据库管理单元210。其中,生成的元数据操作指令的格式基于代理服务端100与元数据库管理单元210之间采用的通信协议确定,在通信协议允许的情况下,也可以直接将元数据请求语句作为元数据操作指令。
目标元数据库管理单元210接收元数据操作指令,根据元数据操作指令访问待访问的元数据库220得到执行结果,并将执行结果返回至代理服务端100。执行结果基于元数据请求语句中需要执行的操作类型确定,可以是从元数据库220中读取的Hive元数据,也可以是将数据写入到元数据库220之后的反馈信息。之后代理服务端100将执行结果返回至发送元数据请求语句的客户端。
本实施例中代理服务端100直接面向用户,与各客户端通讯连接,对用户屏蔽掉后端的多个元数据库管理模块200,用户只需在客户端配置中将以前配置为元数据库管理模块200地址的配置项配置为代理服务端100地址即可完成对所有元数据库管理模块200的元数据操作。
在一个实施例中,所述元数据请求语句中包含至少一个待访问的元数据库220的元数据库标识信息,步骤S103,从多个元数据库管理模块200中确定与所述待访问的元数据库220通讯连接的目标元数据库管理单元210,包括:S201,根据所述至少一个元数据库标识信息确定通讯连接的至少一个元数据库管理单元210;S202,根据所述元数据请求语句生成元数据操作指令发送至所述至少一个元数据库管理单元210;S203,通过所述至少一个元数据库管理单元210访问所述至少一个待访问的元数据库220。
具体地,元数据请求语句设置ms.db.tbl格式,ms.db.tbl分别对应【元数据库.数据库.表】,ms用于路由/定位元数据库220通讯连接的元数据库管理单元210以此规避了不同元数据库管理单元210中存在重名库、表的问题。
因此,通过元数据请求语句识别括元数据库标识信息,然后根据元数据库标识信息确定待访问的元数据库220,并确定待访问的元数据库220通讯连接的目标元数据库管理单元210。代理服务端100通过目标元数据库管理单元210访问该待访问的元数据库220。
此外,如果元数据请求语句中不包括元数据库标识信息,则确定预设元数据库为待访问的元数据库220,然后确定待访问的元数据库220通讯连接的目标元数据库管理单元210。其中,预设元数据库可以是历史任务中上一访问的元数据库220,也可以是用户根据需要设置的任一元数据库管理模块200中的元数据库220。其中,历史任务为代理服务端100在接收到本实施例所述的元数据请求语句之前处理的元数据请求任务,预设元数据库与历史任务中上一访问的元数据库220完全相同,其涉及的元数据库220可能只有一个,也可能包含多个,即当元数据请求语句中不包括元数据库标识信息时,本次任务默认直接执行与历史任务相同的一个或多个元数据库220。由于历史任务中访问的元数据库220是确定的,其访问的元数据库220的目标元数据库管理单元210也随之确定。但由于访问的元数据库220的目标元数据库管理单元210可能包含多个元数据库管理端211,在历史任务中使用的目标元数据库管理单元210的某个元数据库管理端211在本实施例中可能由于故障或权限等因素无法使用,因此本实施例中在元数据请求语句中不包括元数据库标识信息时确定历史任务中的元数据库220作为目标,然后基于历史任务中的元数据库220确定对应的目标元数据库管理单元210中的元数据库管理端211某个元数据库管理端211,而不是直接确定历史任务中使用的目标元数据库管理单元210的元数据库管理端211作为本实施例的元数据库管理端211。通过设置预设元数据库可以兼容历史任务,已存在的历史任务无需调整即可正常执行。
一个元数据请求语句可以关联多个元数据库管理模块200中的多个元数据库220进行元数据的读/写操作,即同一个元数据请求语句可以包含多个待访问的元数据库220的元数据库标识信息,基于该元数据请求语句可以同时访问多个待访问的元数据库220。
其中,代理服务端100根据多个元数据库标识信息确定通讯连接的多个待访问的元数据库220,进而确定多个待访问的元数据库220通讯连接的多个元数据库管理单元210,然后根据元数据请求语句生成元数据操作指令发送至确定的多个元数据库管理单元210,通过确定的多个元数据库管理单元210访问通讯连接的待访问的元数据库220。
代理服务端100可以通过多个元数据库管理单元210访问通讯连接的多个待访问的元数据库220,且不同待访问的元数据库220执行的元数据库220操作可以相同也可以不相同。
本实施例中对元数据库220的操作类型包括读取数据和写入数据,多个待访问的元数据库220包括第一元数据库220和第二元数据库220,当元数据请求语句中对多个待访问的元数据库220的操作相互之间没有关联时,即对第一元数据库220进行读取数据或写入数据的操作,同时对第二元数据库220进行读取数据或写入数据的操作,但两者同时独立完成。因此,例如:元数据请求语句为select*from ms1.db.tbl1 t1 join ms2.db.tbl2 t2on t1.c1=t2.c1;可以关联元数据库管理单元210ms1中的tbl1表和元数据库管理单元210ms2中的tbl2表进行查询操作。
此外,当元数据请求语句中对多个待访问的元数据库220的相互之间关联时,即将第一元数据库220的数据读取之后直接写入第二元数据库220,元数据库管理单元210包括第一元数据库管理单元210和第二元数据库管理单元210,第一元数据库管理单元210通讯连接第一元数据库220,第二元数据库管理单元210通讯连接第二元数据库220,代理服务端100通过第一元数据库管理单元210访问第一元数据库220读取元数据信息,然后通过第二元数据库管理单元210将读取的元数据信息写入第二元数据库220。
其中,第一元数据库管理单元210和第二元数据库管理单元210之间的切换可以通过在元数据请求语句进行说明实现,可以直接基于元数据请求语句中设置的ms.db.tbl格式进行说明,也可以通过env ms语法进行说明。(1)直接通过ms.db.tbl进行说明。例如:写入:insert into ms1.db.tbl select*from ms2.db.tbl;读取:select*from ms1.db.tbl。(2)先通过该env切换到下一元数据库管理单元210,之后下一元数据库管理单元210的所有操作与上述方法(1)中下一元数据库管理单元210执行的操作保持一致,env不影响下一元数据库管理单元210的操作。例如:写入:env ms1;读取:env ms1;select*from db.tbl。
在一个实施例中,所述元数据库管理单元210包含至少一个目标元数据库管理端211,步骤S103,从多个元数据库管理模块200中确定与所述待访问的元数据库220通讯连接的目标元数据库管理单元210之后,包括:S301,通过所述多个目标元数据库管理端211中任一元数据库管理端211访问所述待访问的元数据库220;S302,若访问不成功则通过所述多个目标元数据库管理端211中另一元数据库管理端211访问所述待访问的元数据库220。
具体地,元数据库管理单元210包含至少一个元数据库管理端211,即元数据库管理单元210可以包含一个元数据库管理端211,也可以包含多个元数据库管理端211,元数据库管理端211可以设为hive-metastore。对于属于同一个元数据库管理单元210的多个元数据库管理端211均与代理服务端100、元数据库220通讯连接。多个元数据库管理端211具有相同的权限,都可以访问通讯连接的元数据库220。
当待访问的元数据库220通讯连接的元数据库管理单元210包含多个元数据库管理端211,但代理服务端100每次访问元数据库220时仅需通过一个元数据库管理端211实现。因此,当待访问的元数据库220通讯连接多个元数据库管理端211时,代理服务端100将元数据操作指令发送至通讯连接的多个元数据库管理端211中任意一个元数据库管理端211,通过其访问待访问的元数据库220。如果访问成功则返回执行结果,如果访问不成功,则通过多个元数据库管理端211中另一元数据库管理端211访问待访问的元数据库220。依次尝试待访问的元数据库220通讯连接的多个元数据库管理端211,直至访问成功,或者所有的元数据库管理端211都尝试完毕之后仍然不成功返回执行结果为访问不成功。
需要说明的是,在从多个元数据库管理端211中选取某一个元数据库管理端211发送元数据操作指令时,可以是随机选取,也可以是预先配置多个元数据库管理端211的应用顺序,按照该应用顺序逐一选取通讯连接的元数据库管理端211访问待访问的元数据库220,避免单一的元数据库管理端211故障导致无法访问。
本实施例中,代理服务端100连接多个元数据库管理模块200,每个元数据库管理模块200均包含一个元数据库220,即代理服务端100提供多个元数据库220的访问服务,支持元数据服务水平扩展,解决单库瓶颈。多个元数据库管理模块200之间相互独立,实现按租户隔离元数据,避免业务相互影响,提升了整体元数据服务的效率。代理服务端100可以同时通过访问多个元数据库管理模块200中的元数据库220,租户间元数据可以打通实现互访,很好了实现了数据共享。
为了更好实施本申请实施例中的元数据库访问方法,在元数据库访问基础之上,本申请实施例中还提供一种元数据库访问装置,如图4所示,元数据库访问装置300包括:
请求语句获取模块310,用于获取客户端的元数据请求语句;
请求目标分析模块320,与所述请求语句获取模块310通讯连接,用于根据所述元数据请求语句确定待访问的元数据库;从多个元数据库管理模块中确定与所述待访问的元数据库通讯连接的目标元数据库管理单元;所述元数据库管理模块包括元数据库管理单元和元数据库,所述元数据库管理单元与所述元数据库通讯连接,每一所述元数据库管理模块包含一个元数据库;
指令生成模块330,与所述请求语句获取模块310、所述请求目标分析模块320通讯连接,用于根据所述元数据请求语句生成元数据操作指令发送至所述目标元数据库管理单元;
执行结果接收模块340,用于接收所述目标元数据库管理单元返回的执行结果。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请一些实施例中,提供了一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器进行加载,使得处理器执行上述数据处理方法的步骤。此处数据处理方法的步骤可以是上述各个实施例的数据处理方法中的步骤。
本邻域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上对本申请实施例所提供的一种元数据库访问系统、方法、计算机设备及存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (10)

1.一种元数据库访问系统,其特征在于,包括:
至少一个元数据库管理模块,各所述元数据库管理模块包括元数据库管理单元和元数据库,所述元数据库管理单元与所述元数据库通讯连接,每一所述元数据库管理模块包含一个元数据库;
代理服务端,与所述至少一个元数据库管理模块通讯连接,用于获取元数据请求语句;根据所述元数据请求语句确定待访问的元数据库,并确定与所述待访问的元数据库通讯连接的目标元数据库管理单元;根据所述元数据请求语句生成元数据操作指令发送至所述目标元数据库管理单元;
所述目标元数据库管理单元,接收所述元数据操作指令,根据所述元数据操作指令访问所述待访问的元数据库得到执行结果,并将所述执行结果返回至所述代理服务端。
2.如权利要求1所述的元数据库访问系统,其特征在于,所述代理服务端还用于若所述元数据请求语句中不包括元数据库标识信息,则确定预设元数据库为所述待访问的元数据库,并确定所述待访问的元数据库通讯连接的所述目标元数据库管理单元,所述预设元数据库为上一访问元数据库或任一元数据库管理模块中的元数据库;若所述元数据请求语句中包括元数据库标识信息,则根据所述元数据库标识信息确定所述待访问的元数据库,并确定所述待访问的元数据库通讯连接的所述目标元数据库管理单元。
3.如权利要求2所述的元数据库访问系统,其特征在于,所述元数据请求语句中包含至少一个待访问的元数据库的元数据库标识信息;
所述代理服务端还用于根据所述至少一个元数据库标识信息确定所述至少一个待访问的元数据库通讯连接的至少一个元数据库管理单元;根据所述元数据请求语句生成元数据操作指令发送至所述至少一个元数据库管理单元;通过所述至少一个元数据库管理单元访问所述至少一个待访问的元数据库。
4.如权利要求3所述的元数据库访问系统,其特征在于,所述至少一个元数据库管理单元包括第一元数据库管理单元和第二元数据库管理单元,所述第一元数据库管理单元通讯连接第一元数据库,所述第二元数据库管理单元通讯连接第二元数据库;
所述代理服务端还用于通过所述第一元数据库管理单元访问所述第一元数据库读取元数据信息,通过所述第二元数据库管理单元将所述元数据信息写入所述第二元数据库。
5.如权利要求1所述的元数据库访问系统,其特征在于,所述元数据库管理单元包含至少一个元数据库管理端,所述至少一个元数据库管理端均与所述代理服务端、所述元数据库通讯连接。
6.如权利要求5所述的元数据库访问系统,其特征在于,所述待访问的元数据库通讯连接的元数据库管理单元包含多个元数据库管理端;
所述代理服务端还用于通过所述多个元数据库管理端中任一元数据库管理端访问所述待访问的元数据库;若访问不成功则通过所述多个元数据库管理端中另一元数据库管理端访问所述待访问的元数据库。
7.一种元数据库访问方法,应用于上述权利要求1至6任意一项所述的元数据库访问系统,其特征在于,包括:
获取客户端的元数据请求语句;
根据所述元数据请求语句确定待访问的元数据库;
从多个元数据库管理模块中确定与所述待访问的元数据库通讯连接的目标元数据库管理单元;所述元数据库管理模块包括元数据库管理单元和元数据库,所述元数据库管理单元与所述元数据库通讯连接,每一所述元数据库管理模块包含一个元数据库;
根据所述元数据请求语句生成元数据操作指令发送至所述目标元数据库管理单元;
接收所述目标元数据库管理单元返回的执行结果。
8.如权利要求7所述的元数据库访问方法,其特征在于,所述元数据请求语句中包含至少一个待访问的元数据库的元数据库标识信息,所述从多个元数据库管理模块中确定与所述待访问的元数据库通讯连接的目标元数据库管理单元,包括:
根据所述至少一个元数据库标识信息确定通讯连接的至少一个元数据库管理单元;
根据所述元数据请求语句生成元数据操作指令发送至所述至少一个元数据库管理单元;
通过所述至少一个元数据库管理单元访问所述至少一个待访问的元数据库。
9.一种元数据库访问装置,其特征在于,包括:
请求语句获取模块,用于获取客户端的元数据请求语句;
请求目标分析模块,与所述请求语句获取模块通讯连接,用于根据所述元数据请求语句确定待访问的元数据库;从多个元数据库管理模块中确定与所述待访问的元数据库通讯连接的目标元数据库管理单元;所述元数据库管理模块包括元数据库管理单元和元数据库,所述元数据库管理单元与所述元数据库通讯连接,每一所述元数据库管理模块包含一个元数据库;
指令生成模块,与所述请求语句获取模块、所述请求目标分析模块通讯连接,用于根据所述元数据请求语句生成元数据操作指令发送至所述目标元数据库管理单元;
执行结果接收模块,用于接收所述目标元数据库管理单元返回的执行结果。
10.一种计算机存储介质,其特征在于,其上存储有计算机程序,所述计算机程序被处理器进行加载,以执行权利要求7至8任一项所述的元数据库访问方法中的步骤。
CN202211275708.9A 2022-10-18 2022-10-18 元数据库访问系统、方法、计算机设备及存储介质 Pending CN117951153A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211275708.9A CN117951153A (zh) 2022-10-18 2022-10-18 元数据库访问系统、方法、计算机设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211275708.9A CN117951153A (zh) 2022-10-18 2022-10-18 元数据库访问系统、方法、计算机设备及存储介质

Publications (1)

Publication Number Publication Date
CN117951153A true CN117951153A (zh) 2024-04-30

Family

ID=90796686

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211275708.9A Pending CN117951153A (zh) 2022-10-18 2022-10-18 元数据库访问系统、方法、计算机设备及存储介质

Country Status (1)

Country Link
CN (1) CN117951153A (zh)

Similar Documents

Publication Publication Date Title
CN106815218B (zh) 数据库访问方法、装置和数据库系统
CN106682215B (zh) 一种数据处理方法和管理节点
CN110532123B (zh) HBase系统的故障转移方法及装置
CN111708738B (zh) 实现hadoop文件系统hdfs与对象存储s3数据互访方法及系统
CN107193827B (zh) 分库分表的幂等控制方法和装置
US11354050B2 (en) Data processing method, apparatus, and computing device
US20140258221A1 (en) Increasing distributed database capacity
CN109145055B (zh) 一种基于Flink的数据同步方法和系统
CN106155775B (zh) 消息处理方法、设备及系统
CN111399764B (zh) 数据存储方法、读取方法、装置、设备及存储介质
WO2017050064A1 (zh) 共享内存数据库的内存管理方法及装置
CN105550306A (zh) 多副本数据的读写方法及系统
CN107943412B (zh) 一种分区分裂、删除分区中数据文件的方法、装置及系统
CN111638853A (zh) 数据存储方法、装置、存储集群、网关设备及主设备
CN111291062A (zh) 数据同步写入方法、装置、计算机设备及存储介质
CN105786525A (zh) 一种进程模型向线程模型移植代码的方法及装置
CN111274004B (zh) 进程实例管理方法、装置及计算机存储介质
CN107357691B (zh) 镜像文件的处理方法及装置
CN117951153A (zh) 元数据库访问系统、方法、计算机设备及存储介质
CN115587141A (zh) 一种数据库同步方法和装置
CN116088758A (zh) 优化方法、装置、计算机设备、存储介质和程序产品
CN107102898B (zh) 一种基于numa架构的内存管理、构建数据结构的方法及装置
CN111209304B (zh) 数据处理方法、装置及系统
CN111399753B (zh) 写入图片的方法和装置
CN115712581A (zh) 数据访问方法、存储系统及存储节点

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination