一种数据处理方法、系统、计算设备及可读存储介质与流程

文档序号:25518276发布日期:2021-06-18 20:03阅读:53来源:国知局
本发明涉及数据存储领域,尤其涉及一种数据处理方法、系统、计算设备及可读存储介质。
背景技术
::随着信息化和it技术的飞速发展,企业数据呈指数式爆炸增长,传统的集中式存储和计算方式已无法满足企业日益增长的业务需求,hadoop应运而生,其分布式的架构设计有效解决了数据的分布式存储与计算问题,通过hadoop平台,开发人员可以编写mapreduce程序便捷地实现海量数据处理,并且hadoop集群可以在廉价的商用计算机硬件上运行,极大地节约了企业的成本投入。hive作为hadoop生态中的重要一员,其数据存储依托于hadoop,同时它提供了一种类sql语言来处理数据,使用户不必再去编写复杂的mapreduce程序来完成数据计算,降低了用户的使用门槛。在运行一个hive查询时,首先会通过metastore服务来获取该查询所涉及的元数据信息,metastore服务所需的元数据信息实际存储于数据库中(可以是mysql,也可是derby等其他数据库),查询到元数据后便可依据获取到的数据映射规则在hadoop集群执行分布式数据计算,最终返回查询结果。当hadoop集群规模非常庞大,并发执行大量的hive作业查询时,如果仅部署单一metastore实例,该metastore的访问并发会变得非常高,元数据查询服务将会成为整个系统的性能瓶颈,对查询作业的运行效率产生非常大的影响,严重时甚至出现metastore崩溃导致整个服务不可用。不过原生hive组件支持metastore实例的横向扩展,可以通过配置多套metastore实例以实现负载均衡。但是,所有hive表的元数据信息只能存于同一套mysql数据库,所有metastore实例均须从同一套mysql数据库读取元数据,不支持mysql服务的横向扩展,更不具备元数据信息的分布式存储能力。当元数据信息数据量变得非常庞大时,metastore对mysql数据库的访问同样存在性能瓶颈。mysql中元数据记录过多导致单个查询耗时过长、业务高峰期mysql查询负载过高成为当前hive架构的又一大性能杀手。技术实现要素:为此,本发明提供了一种数据处理方法、系统、计算设备及可读存储介质,以力图解决或者至少缓解上面存在的问题。根据本发明的一个方面,提供一种数据处理方法,适于在数据处理系统中执行,数据处理系统包括客户端、代理路由器、数据库管理器、数据库,方法包括:客户端发送数据请求到代理路由器,数据请求包括目标数据和目标数据对应的目标数据库;代理路由器获取数据请求中的目标数据库,并根据目标数据库获取目标数据库对应的数据库管理器;代理路由器将数据请求发送至目标数据库对应的数据库管理器;数据库管理器根据数据请求在相应的数据库中完成数据操作,并返回响应消息。可选的,在根据本发明的数据处理方法中,客户端存储有代理路由器列表,代理路由器列表中存储有代理路由器及代理路由器的地址信息,客户端发送数据请求到代理路由器包括:客户端根据第一预设规则从代理路由器列表中选择一个目标代理路由器,并根据目标代理路由器的地址信息将数据请求发送至目标代理路由器。可选的,在根据本发明的数据处理方法中,数据处理系统还包括路由信息数据库,路由信息数据库中存储有数据库与数据库管理器的映射关系,所有代理路由器与路由信息数据库通信连接,根据目标数据库获取目标数据库对应的数据库管理器包括:代理路由器根据目标数据库查询路由信息数据库,获取目标数据库对应的数据库管理器。可选的,在根据本发明的数据处理方法中,数据库管理器包括多个metastore,代理路由器将数据请求发送至目标数据库对应的数据库管理器包括:根据第二预设规则从多个metastore中选择一个目标metastore;将数据请求发送至目标metastore。可选的,在根据本发明的数据处理方法中,路由表还包括新建数据库标识字段,当数据请求为创建新的数据库时,根据目标数据库获取目标数据库对应的数据库管理器包括:获取新创建数据库标识为真的数据库管理器。可选的,在根据本发明的数据处理方法中,代理路由器支持kerberos,方法还包括:客户端基于kerberos完成与代理路由器之间的认证;代理路由器基于kerberos完成与数据库管理器之间的认证。可选的,在根据本发明的数据处理方法中,数据库为主从配置,包括主数据库和从数据库,主数据库和从数据库数据一致。根据本发明的另一个方面,提供一种数据处理系统,包括客户端、代理路由器、数据库管理器、数据库,其中,客户端,适于发送数据请求到代理路由器,数据请求包括目标数据和目标数据对应的目标数据库;代理路由器,适于获取数据请求中的目标数据库,并根据目标数据库获取目标数据库对应的数据库管理器;还适于将数据请求发送至目标数据库对应的数据库管理器;数据库管理器,适于根据数据请求在相应的数据库中完成数据操作,并返回响应消息;数据库,适于存储目标数据。根据本发明的又一个方面,提供一种计算设备,包括:至少一个处理器;以及存储器,存储有程序指令,其中,程序指令被配置为适于由至少一个处理器执行,程序指令包括用于执行如上的数据处理方法的指令。根据本发明的又一方面,提供一种存储有程序指令的可读存储介质,当程序指令被计算设备读取并执行时,使得计算设备执行如上的数据处理方法。根据本发明的数据处理方法,通过在数据处理系统中增加代理路由器,客户端首先将数据请求发送给代理路由器,由代理路由器根据数据请求信息将数据请求发送至相应的数据库管理器,通过数据库管理器根据数据请求,完成相应的数据查询、数据库创建等操作,并返回响应信息,不同的数据管理器连接不同的数据库,通过多个数据库管理器连接多个数据库,从而实现了数据库层的横向扩展,消除了因业务数据急剧增长导致的系统性能瓶颈,能够缩短数据查询的时间,提高业务作业的执行效率,消除了因源数据增长导致的系统性能瓶颈,提升了系统稳定性,排除了系统运行过程中存在的安全隐患。进一步的,代理路由器共享同一路由信息数据库,实现了所有代理路由服务配置的统一化管理,便于路由信息的维护,同时,代理路由器支持kerberos,能够对访问用户进行鉴权,防止恶意用户的对存储数据的篡改。附图说明为了实现上述以及相关目的,本文结合下面的描述和附图来描述某些说明性方面,这些方面指示了可以实践本文所公开的原理的各种方式,并且所有方面及其等效方面旨在落入所要求保护的主题的范围内。通过结合附图阅读下面的详细描述,本公开的上述以及其它目的、特征和优势将变得更加明显。遍及本公开,相同的附图标记通常指代相同的部件或元素。图1示出了根据本发明一个实施例的数据处理系统100的示意图;图2示出了根据本发明一个实施例的计算设备200的框图;图3示出了根据本发明一个实施例的数据处理方法300的流程图。具体实施方式下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。图1示出了根据本发明一个实施例的数据处理系统100的示意图。如图1所示,数据处理系统100中包括客户端110(包括客户端110-1、客户端110-2……客户端110-n)、代理路由器120(包括代理路由器120-1、代理路由器120-2……代理路由器120-n)、路由信息数据库130、数据库管理器140(包括数据库管理器140-1、数据库管理器140-2……数据库管理器140-n)和数据库150(包括数据库150-1、数据库150-2……数据库150-n)。应当指出,图1中的内容推荐系统100仅是示例性的,在具体的实践情况中,代理路由器120、数据库管理器140、数据库150的数量可以根据具体需要进行设置,本发明对此不做限制。客户端110通常为运行应用程序的应用服务器,该应用服务器可以是开发测试人员在开发阶段所使用的调试机,也可以是应用程序上线后的执行服务器,客户端110可以通过发送数据请求完成相应的数据查询、搜索、数据库创建等操作,所使用的查询服务可以是hiveserver2,或者presto,本发明对此不做限制。代理路由器120用于完成对数据请求的转发,一个数据处理系统中包含多个代理路由器,可以有效平衡客户端的数据请求信息,所有代理路由器都与路由信息数据库130通信连接,以根据所述路由信息数据库130中的路由信息将数据请求转发至相应的数据库管理器140。路由信息数据库130,用于存储路由信息,该路由信息包括数据库与数据库管理器之间的映射关系,所有代理路由器通过同一路由信息数据库获取路由信息,可以实现对路由信息的统一化管理,避免在每个代理路由器上分别维护一份路由信息。路由信息数据库130可以通过mysql、access、oracle等任意类型的数据库实现,本发明对此不做限制。数据库管理器140连接相应的数据库,根据本发明的一个实施例,在hive数据库中,一个数据库管理器包括多个metastore实例,可以实现负载均衡,提高数据查询过程,在数据查询过程中,根据预设规则选择其中一个metastore完成查询操作。数据库150用于存储业务数据,该数据库可以实现为mysql数据库,也可以实现为derby数据库,每一个数据库对应固定的数据库管理器,数据库150通常做主从配置,并保持主数据库和从数据库的数据同步,做主从配置可以有效避免主数据库宕机时数据查询失败的问题。图1所示的数据处理系统中的所有设备均可以通过计算设备实现,图2示出了根据本发明一个实施例的计算设备200的框图。需要说明的是,图2所示的计算设备200仅为一个示例,在实践中,用于实施本发明的数据处理方法的计算设备可以是任意型号的设备,其硬件配置情况可以与图2所示的计算设备200相同,也可以与图2所示的计算设备200不同。实践中用于实施本发明的数据处理方法的计算设备可以对图2所示的计算设备200的硬件组件进行增加或删减,本发明对计算设备的具体硬件配置情况不做限制。如图2所示,在基本配置202中,计算设备200典型地包括系统存储器206和一个或者多个处理器204。存储器总线208可以用于在处理器204和系统存储器206之间的通信。取决于期望的配置,处理器204可以是任何类型的处理,包括但不限于:微处理器(μp)、微控制器(μc)、数字信息处理器(dsp)或者它们的任何组合。处理器204可以包括诸如一级高速缓存210和二级高速缓存212之类的一个或者多个级别的高速缓存、处理器核心214和寄存器216。示例的处理器核心214可以包括运算逻辑单元(alu)、浮点数单元(fpu)、数字信号处理核心(dsp核心)或者它们的任何组合。示例的存储器控制器218可以与处理器204一起使用,或者在一些实现中,存储器控制器218可以是处理器204的一个内部部分。取决于期望的配置,系统存储器206可以是任意类型的存储器,包括但不限于:易失性存储器(诸如ram)、非易失性存储器(诸如rom、闪存等)或者它们的任何组合。计算设备中的物理内存通常指的是易失性存储器ram,磁盘中的数据需要加载至物理内存中才能够被处理器204读取。系统存储器206可以包括操作系统220、一个或者多个应用222以及程序数据224。在一些实施方式中,应用222可以布置为在操作系统上由一个或多个处理器204利用程序数据224执行指令。操作系统220例如可以是linux、windows等,其包括用于处理基本系统服务以及执行依赖于硬件的任务的程序指令。应用222包括用于实现各种用户期望的功能的程序指令,应用222例如可以是浏览器、即时通讯软件、软件开发工具(例如集成开发环境ide、编译器等)等,但不限于此。当应用222被安装到计算设备200中时,可以向操作系统220添加驱动模块。在计算设备200启动运行时,处理器204会从存储器206中读取操作系统220的程序指令并执行。应用222运行在操作系统220之上,利用操作系统220以及底层硬件提供的接口来实现各种用户期望的功能。当用户启动应用222时,应用222会加载至存储器206中,处理器204从存储器206中读取并执行应用222的程序指令。计算设备200还包括储存设备232,储存设备232包括可移除储存器236和不可移除储存器238,可移除储存器236和不可移除储存器238均与储存接口总线234连接。计算设备200还可以包括有助于从各种接口设备(例如,输出设备242、外设接口244和通信设备246)到基本配置202经由总线/接口控制器230的通信的接口总线240。示例的输出设备242包括图形处理单元248和音频处理单元250。它们可以被配置为有助于经由一个或者多个a/v端口252与诸如显示器或者扬声器之类的各种外部设备进行通信。示例外设接口244可以包括串行接口控制器254和并行接口控制器256,它们可以被配置为有助于经由一个或者多个i/o端口258和诸如输入设备(例如,键盘、鼠标、笔、语音输入设备、触摸输入设备)或者其他外设(例如打印机、扫描仪等)之类的外部设备进行通信。示例的通信设备246可以包括网络控制器260,其可以被布置为便于经由一个或者多个通信端口264与一个或者多个其他计算设备262通过网络通信链路的通信。网络通信链路可以是通信介质的一个示例。通信介质通常可以体现为在诸如载波或者其他传输机制之类的调制数据信号中的计算机可读指令、数据结构、程序模块,并且可以包括任何信息递送介质。“调制数据信号”可以这样的信号,它的数据集中的一个或者多个或者它的改变可以在信号中编码信息的方式进行。作为非限制性的示例,通信介质可以包括诸如有线网络或者专线网络之类的有线介质,以及诸如声音、射频(rf)、微波、红外(ir)或者其它无线介质在内的各种无线介质。这里使用的术语计算机可读介质可以包括存储介质和通信介质二者。在根据本发明的计算设备200中,应用222包括用于执行本发明的数据处理方法300的指令,该指令可以指示处理器204执行本发明的系数据处理方法300。图3示出了根据本发明一个实施例的数据处理方法300的流程图,方法300适于在数据处理系统(例如图1所示的数据处理系统)中执行。如图3所示,方法300始于步骤s310,客户端根据业务需求发起数据请求,数据请求包括数据查询、创建数据库、数据更新等操作,但不限于此。数据请求中包括要查询的目标数据以及目标数据所在的目标数据库。根据本发明的一个实施例,根据hive数据仓库架构,客户端a要访问testdb1数据库中的test_table1表,则将数据库名testdb1(目标数据库)和表名test_table1(目标数据)写入相应的数据查询请求中。在客户端将数据请求发送至代理路由器之前,要通过步骤s320完成与代理路由器之间的身份认证。在步骤s320中,客户端基于kerberos完成与代理路由器之间的认证。根据本发明的一个实施例,在数据处理系统中包括多个代理路由器,客户端a中的代理路由器列表如表1所示,其中包含当前数据处理系统中可用的代理路由器及其地址信息。为了能够实现代理路由器之间的负载均衡,客户端在选择代理路由器时可以通过预设规则(即第一预设规则)进行选择,例如轮询、随机选择等规则,本实施例中客户端a通过随机选择,选择目标代理路由器为代理路由器2。表1代理路由器ip地址代理路由器1ip_address1代理路由器2ip_address2代理路由器3ip_address3根据本发明的一个实施例,客户端需要完成与代理路由器之间的认证,本实施例中,首次连接时客户端a要基于kerberos完成与代理路由器2的认证,认证通过之后,客户端a会向代理路由器2申请一个代理token,以后客户端a和代理路由器2之间的通信认证使用代理token。代理路由器2将已经为客户端a分配的token信息存储在本地,同时代理路由器2将该token信息存储于zookeeper,所有代理路由器和数据库连接器均连接至同一个zookeeper来实现已有token信息的共享,以便实现客户端a向代理路由器2申请的token既可以用于完成客户端a和代理路由器之间的认证,也可以用于完成携带客户端a用户身份信息的代理路由器2和目标数据库管理器通信时的认证,。关于kerberos机制的具体细节,属于本领域技术人员所熟知的技术,此处不再详细赘述。随后进入步骤s330,通过步骤s320中获取的共享秘钥将数据请求发送至目标代理路由器。本实施例中,客户端a将数据查询请求发送至代理路由器2。随后进入步骤s340,代理路由器将数据请求发送至数据库管理器。根据本发明的数据处理方法,所有代理路由器连接同一路由信息数据库,通过路由信息数据库统一管理路由信息,便于进行路由信息维护。根据本发明的一个实施例,路由信息数据库包括的字段有:数据库管理器名称(metaname)、数据库管理器(uris)、数据库(mappingdbs)、新建数据库标识(isnewdbto)、描述信息(desc)等,表2示出了一个实施例的路由信息数据库的表现形式。表2在本步骤中,代理路由器需要首先从数据请求中解析出目标数据库,根据数据库名称从路由信息表中查询出目标数据库所对应的数据库管理器。继续以数据请求“访问testdb1数据库中的test_table1表”为例进行说明,代理路由器从数据请求中解析出数据库名称“testdb1”,在路由信息数据库(表2)中查询数据库testdb1所对应的数据库管理器。一个数据库管理器通常由多个metastore实例实现,以实现负载均衡,加速数据查询。在本实施例中,testdb1所对应的数据管理包括两个metastore,分别为metastore1和metastore2,ip地址分别为metastore1_address和metastore2_address,代理路由器根据预设规则(即第二预设规则)的选择结果为metastore2,则将数据请求发送至该metastore,在发送之前,代理路由器也需要基于kerberos完成与metastore之间的身份认证。本发明对metastore的选择规则不做限制。根据本发明的又一个实施例,如果代理路由器从数据请求中解析出数据库的名称,而获取不到该数据库与数据库管理器的映射关系,则表示数据查询失败,直接返回查询失败的消息。根据本发明的又一个实施例,路由信息数据库(例如:表2)中字段isnewdbto通常用来标识新增加的数据库管理器,新增加的数据库管理器负载相对较低,当数据请求为新创建数据库,则选择isnewdbto字段为真的数据库管理器,在该数据库管理器连接的数据存储装置中创建新的数据库,同时将新创建的数据库与该数据库管理器关联的存储到路由信息数据库中。随后进入步骤s350,由数据库管理器根据数据请求从相应的数据库中获取目标数据,并通过代理路由器返回给客户端。在上述实施例中,是由选择的metastore从数据库中获取相应的目标数据,例如,metastore2从数据库testdb1中获取表test_table1的内容返回给代理路由器,由代理路由器返回给客户端a。根据本发明的数据处理方法,通过在数据处理系统中增加代理路由器,客户端首先将数据请求发送给代理路由器,由代理路由器根据数据请求信息将数据请求发送至相应的数据库管理器,通过数据库管理器根据数据请求,完成相应的数据查询、数据库创建等操作,并返回响应信息,不同的数据管理器连接不同的数据库,通过多个数据库管理器连接多个数据库,从而实现了数据库层的横向扩展,消除了因业务数据急剧增长导致的系统性能瓶颈,能够缩短数据查询的时间,提高业务作业的执行效率,消除了因源数据增长导致的系统性能瓶颈,提升了系统稳定性,排除了系统运行过程中存在的安全隐患。进一步的,代理路由器共享同一路由信息数据库,实现了所有代理路由kerberos,能够对访问用户进行鉴权,防止恶意用户的对存储数据的篡改。这里描述的各种技术可结合硬件或软件,或者它们的组合一起实现。从而,本发明的方法和设备,或者本发明的方法和设备的某些方面或部分可采取嵌入有形媒介,例如可移动硬盘、u盘、软盘、cd-rom或者其它任意机器可读的存储介质中的程序代码(即指令)的形式,其中当程序被载入诸如计算机之类的机器,并被所述机器执行时,所述机器变成实践本发明的设备。在程序代码在可编程计算机上执行的情况下,计算设备一般包括处理器、处理器可读的存储介质(包括易失性和非易失性存储器和/或存储元件),至少一个输入装置,和至少一个输出装置。其中,存储器被配置用于存储程序代码;处理器被配置用于根据该存储器中存储的所述程序代码中的指令,执行本发明的数据处理方法。以示例而非限制的方式,可读介质包括可读存储介质和通信介质。可读存储介质存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息。通信介质一般以诸如载波或其它传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其它数据,并且包括任何信息传递介质。以上的任一种的组合也包括在可读介质的范围之内。在此处所提供的说明书中,算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与本发明的示例一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下被实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。本领域那些技术人员应当理解在本文所公开的示例中的设备的模块或单元或组件可以布置在如该实施例中所描述的设备中,或者可替换地可以定位在与该示例中的设备不同的一个或多个设备中。前述示例中的模块可以组合为一个模块或者此外可以分成多个子模块。本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。此外,所述实施例中的一些在此被描述成可以由计算机系统的处理器或者由执行所述功能的其它装置实施的方法或方法元素的组合。因此,具有用于实施所述方法或方法元素的必要指令的处理器形成用于实施该方法或方法元素的装置。此外,装置实施例的在此所述的元素是如下装置的例子:该装置用于实施由为了实施该发明的目的的元素所执行的功能。如在此所使用的那样,除非另行规定,使用序数词“第一”、“第二”、“第三”等等来描述普通对象仅仅表示涉及类似对象的不同实例,并且并不意图暗示这样被描述的对象必须具有时间上、空间上、排序方面或者以任意其它方式的给定顺序。尽管根据有限数量的实施例描述了本发明,但是受益于上面的描述,本
技术领域
:内的技术人员明白,在由此描述的本发明的范围内,可以设想其它实施例。此外,应当注意,本说明书中使用的语言主要是为了可读性和教导的目的而选择的,而不是为了解释或者限定本发明的主题而选择的。因此,在不偏离所附权利要求书的范围和精神的情况下,对于本
技术领域
:的普通技术人员来说许多修改和变更都是显而易见的。对于本发明的范围,对本发明所做的公开是说明性的,而非限制性的,本发明的范围由所附权利要求书限定。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1