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

文档序号:12719898阅读:185来源:国知局
一种数据处理方法及装置与流程

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



背景技术:

随着互联网技术的发展和云计算软件技术的日趋成熟,数据存储领域催生出了一种新型的服务模式——DBaaS(Database as a Service,数据库即服务)。DBaaS是一种通过互联网租用方式提供数据库服务的模式,在DBaaS模式下,用户不需要购买数据库系统软件,省去了数据库系统软件的购置费用,数据库系统平台以托管的方式由DSaaS服务提供商进行维护和运营,降低了用户采购、运行维护成本,同时提升数据库云元数据模型的统一维护和升级,为数据实时在线分析提供有效的元数据标准。

多租户技术是云计算基础设施管理模式下的一种新型的软件架构技术,是云计算中最关键技术之一,它充分利用了经济的规模效应,为多租户,即为“客户”提供共享的内存和后台进程。多租户技术的主要优点是更大程度提高了硬件资源的利用率和数据存储密度,数据库秒级的快速移植,满足海量数据、高并发在线并行计算,对在线实时数据分析的数据处理能力有较大提升。这些优点会大大降低传统数据库系统的建设、维护成本,该技术也因此吸引了越来越多的服务提供商。

实践发现,现有技术中并不存在针对多租户的DBaaS方案。



技术实现要素:

本发明提供一种数据处理方法及装置,以实现针对多租户的数据库即服务方案。

根据本发明的第一方面,提供一种数据处理方法,应用于云数据库服务平台,所述云数据库服务平台包括数据库云服务门户单元、数据库管理单元、消息服务总线以及数据库资源单元;所述方法包括:

数据库管理单元接收消息服务总线转发的结构化查询语言SQL对象;其中,所述SQL对象由所述消息服务总线对数据库云服务门户单元接收到的数据库请求解析得到,所述数据库请求由通过身份认证的用户终端发送;

所述数据库管理单元根据所述SQL对象确定对应的操作指令以及数据库标识,并根据所述数据库标识以及所述用户终端对应的租户信息确定所述操作指令的目标数据库节点;

所述数据库管理单元通过所述消息服务总线将所述操作指令路由给所述数据库资源单元中的目标数据库节点,由所述目标数据库节点响应所述操作指令,并通过所述消息服务总线将操作结果返回给所述用户终端。

根据本发明的第二方面,提供一种数据处理装置,应用于包括数据库云服务门户单元、数据库管理单元、消息服务总线以及数据库资源单元的云数据库服务平台中的数据库管理单元,所述装置包括:

接收模块,用于接收消息服务总线转发的结构化查询语言SQL对象;其中,所述SQL对象由所述消息服务总线对数据库云服务门户单元接收到的数据库请求解析得到,所述数据库请求由通过身份认证的用户终端发送;

确定模块,用于确定对应的操作指令以及数据库标识,并根据所述数据库标识以及所述用户终端对应的租户信息确定所述操作指令的目标数据库节点;

发送模块,用于通过所述消息服务总线将所述操作指令路由给所述数据库资源单元中的目标数据库节点,由所述目标数据库节点响应所述操作指令,并通过所述消息服务总线将操作结果返回给所述用户终端。

应用本发明公开的技术方案,当数据库管理单元接收消息服务总线转发的SQL对象时,数据库管理单元根据该SQL对象确定对应的操作指令以及数据库标识,并根据该数据库标识以及用户终端对应的租户信息确定该操作指令的目标数据库节点,进而,数据库管理单元可以通过消息服务总线将操作指令路由给数据库资源单元中的目标数据库节点,由目标数据库节点响应该操作指令,并通过消息服务总线将操作结果返回给用户终端,从而可以实现针对多租户的数据库及服务方案。

附图说明

图1是本发明实施例提供的一种云数据库服务平台的架构示意图;

图2是本发明实施例提供的一种数据处理方法的流程示意图;

图3是本发明实施例提供的一种数据处理装置的结构示意图;

图4是本发明实施例提供的另一种数据处理装置的结构示意图;

图5是本发明实施例提供的另一种数据处理装置的结构示意图。

具体实施方式

为了使本技术领域的人员更好地理解本发明实施例中的技术方案,并使本发明实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明实施例中技术方案作进一步详细的说明。

为了使本领域技术人员更好地理解本发明实施例提供的技术方案,下面先对本发明实施例适用的云数据库服务平台的架构进行简单说明。

请参见图1,为本发明实施例提供的一种云数据库服务平台的结构示意图,如图1所示,该云数据库服务平台可以包括:数据库云服务门户单元110、数据库管理单元120、消息服务总线130以及数据库资源单元140;其中:

所述数据库资源单元140,用于为租户提供数据库资源,以存储租户信息以及租户数据;

所述数据库云服务门户单元110,用于为租户提供统一的访问门户;

所述消息服务总线130,用于数据库云服务门户单元110、数据库管理单元120以及数据库资源单元140之间的信息交互;

所述数据库管理单元120,用于管理租户信息、租户数据以及数据库创建的配置信息,为租户创建数据库。

请参见图2,为本发明实施例提供的一种数据处理方法的流程示意图,其中,该数据处理方法可以应用于图1所示的云数据库服务平台,如图2所示,该数据处理方法可以包括以下步骤:

步骤201、数据库管理单元接收消息服务总线转发的SQL对象;其中,该SQL对象由消息服务总线对数据库云服务门户单元接收到的数据库请求解析得到,该数据库请求由通过身份认证的用户终端发送。

本发明实施例中,当用户需要访问云数据库服务平台时,需要通过用户终端上安装的特定应用系统登录到云数据库服务平台进行身份认证。

其中,云数据库服务平台通过数据库云服务门户单元接收到用户终端发送的身份认证请求时,可以通过消息服务总线将该身份认证请求转发给数据库管理单元,由数据库管理单元对用户终端进行身份认证,例如,根据身份认证请求中携带的租户信息对用户终端进行身份认证。

本发明实施例中,用户终端通过身份认证后,可以向云数据库服务平台发送数据库请求;当云数据库服务平台通过数据库云服务门户单元接收到用户终端发送的数据库请求时,云数据库服务平台可以通过消息服务总线对该数据库请求进行包协议处理、SQL解析以及SQL过滤等处理,过滤掉该数据库请求中的非法字符串,以生成对应的SQL对象,并将该SQL对象转发给数据库管理单元。

步骤202、数据库管理单元根据该SQL对象确定对应的操作指令以及数据库标识,并根据该数据库标识以及用户终端对应的租户信息确定该操作指令的目标数据库节点。

本发明实施例中,数据库管理单元接收到消息服务总线转发的SQL对象时,可以对该SQL对象进行解析,以确定对应的操作指令以及数据库标识。

其中,该数据库标识可以包括但不限于数据库名称、数据库类型等。

本发明实施例中,数据库管理单元确定了SQL对象对应的操作指令以及数据库标识之后,可以根据该数据库标识以及用户终端对应的租户信息(可以在用户终端进行身份认证时获取,如租户ID)确定该操作指令对应的数据库节点(本文中称为目标数据库节点)。

可见,在本发明实施例中,由于数据库管理单元可以根据租户信息以及数据库标识确定数据库请求的目标数据库节点,因此,对于不同租户而言,云数据库服务平台可以为其创建数据库标识相同的数据库(如数据库名称相同),也即本发明实施例提供的方案可以支持多租户的数据库即服务的实现。

进一步地,在本发明实施例中,为了提高系统安全性,云数据库服务平台通过消息服务总线对数据库请求进行包协议处理、SQL解析以及SQL过滤等处理之前,可以先将该数据库请求转发至数据库管理单元,由数据库管理单元对该数据库请求进行安全审计,若安全审计通过,数据库户管理单元可以将该数据库请求再转发给消息服务总线,由消息服务总线对该数据库请求进行包协议处理、SQL解析以及SQL过滤等处理。

其中,若数据库管理单元对数据库请求进行安全审计未通过,则数据库管理单元可以不对该数据库请求进行响应,例如,数据库管理单元可以直接丢弃该数据库请求。

步骤203、数据库管理单元通过消息服务总线将操作指令路由给数据库资源单元中的目标数据库节点,由目标数据库节点响应操作指令,并通过消息服务总线将操作结果返回给用户终端。

本发明实施例中,数据库管理单元得到数据库请求对应的操作指令,并确定了该操作指令对应的目标数据库节点时,数据库管理单元可以通过消息服务总线将操作指令路由给数据库资源单元中的目标数据库节点,由目标数据库节点对该操作指令进行响应,并通过消息服务总线将操作结果返回给用户终端。

其中,操作结果可以包括但不限于操作成功、操作失败等,例如,数据库请求为数据存储请求时,操作结果可以包括数据存储成功或失败等。当数据库请求为数据查询请求时,该操作结果还可以包括查询到的数据等。

在本发明其中一个实施例中,数据库管理单元通过消息服务总线将操作指令路由给数据库资源单元中的目标数据库节点,可以包括:

当目标数据库节点包括多个时,根据多个目标数据库节点的可用状态以及负荷状态,通过消息服务总线将操作指令路由给可用且负荷最低的目标数据库节点。

在该实施例中,当数据库管理单元发现操作指令对应的目标数据库节点存在多个时,数据库管理节点可以根据该多个目标数据库节点的可用状态以及负荷状态,通过消息服务总线将操作指令路由给可用且负荷最低的目标数据库节点,以提高系统资源利用率。

值得说明的是,在该实施例中,当操作指令对应的目标数据库节点存在多个时,数据库管理节点并不限于根据各目标数据库节点的负荷选择实际响应操作指令的数据库节点,即在该实施例中,数据库管理节点也可以通过其它策略选择时机响应操作指令的数据库节点,例如,数据库管理节点可以随机从该多个目标数据库节点中选择一个目标数据库节点来响应该操作指令,或者,数据库管理节点可以依次选择该多个目标数据库节点中各目标数据库节点来响应操作指令,其具体实现在此不做赘述。

其中,数据库管理单元可以监控数据库节点池中的数据库节点的心跳信息,以对数据库节点的可用性进行监控。

此外,数据库管理单元还可以管理数据库节点中的数据切分规则。数据切分规则使用一致性哈希算法进行数据切分,当添加新的数据库节点到数据节点池中时,能够以最小的代价把数据迁移至新节点中,保证在不影响用户使用的情况下能够完成节点的加入以及数据的迁移。

进一步地,在本发明实施例中,数据库管理单元将操作指令发送给消息服务总线时,消息服务总线可以将接收到的操作指令加入到消息队列中,并按照预设规则将消息队列中的操作指令路由给对应的数据库节点。

进一步地,在本发明其中一个实施例中,当数据库请求为数据查询请求时,上述数据库管理单元通过消息服务总线将操作指令路由给数据库资源单元中的目标数据库节点之前,可以包括:

数据库管理单元判断缓存系统中是否存在该数据查询请求对应的数据信息;

若不存在,则确定执行上述通过消息服务总线将操作指令路由给数据库资源单元中的目标数据库节点的步骤;

若缓存系统中存在数据查询请求对应的数据信息,则数据库管理单元从缓存系统中获取对应的数据信息,并通过消息服务总线将获取到的数据信息返回给应用系统。

具体地,在该实施例中,为了提高业务响应效率,可以在云数据库服务平台中增加缓存系统,当数据库管理单元接收到数据查询请求时,数据库管理单元可以先判断缓存系统中是否存在与该数据查询请求对应的数据信息,若存在,则从缓存系统中获取对应的数据信息,并通过消息服务总线将获取到的数据信息返回给用户终端。

若缓存系统中不存在对应的数据信息,则数据库管理单元可以通过消息服务总线从数据库资源单元中获取对应的数据信息,获取到对应的数据信息之后,一方面,通过消息服务总线将获取到的数据信息返回应用系统;另一方面,将获取到的数据信息保存至缓存系统,以提高后续数据查询的效率。

通过以上描述可以看出,在本发明实施例提供的技术方案中,当数据库管理单元接收消息服务总线转发的SQL对象时,数据库管理单元根据该SQL对象确定对应的操作指令以及数据库标识,并根据该数据库标识以及用户终端对应的租户信息确定该操作指令的目标数据库节点,进而,数据库管理单元可以通过消息服务总线将操作指令路由给数据库资源单元中的目标数据库节点,由目标数据库节点响应该操作指令,并通过消息服务总线将操作结果返回给用户终端,从而可以实现针对多租户的数据库及服务方案。

请参见图3,为本申请实施例提供的一种数据处理装置的结构示意图,其中,该数据处理装置可以应用于上述方法实施例中的数据库管理单元,如图3所示,该数据处理装置可以包括:

接收模块310,用于接收消息服务总线转发的结构化查询语言SQL对象;其中,所述SQL对象由所述消息服务总线对数据库云服务门户单元接收到的数据库请求解析得到,所述数据库请求由通过身份认证的用户终端发送;

确定模块320,用于确定对应的操作指令以及数据库标识,并根据所述数据库标识以及所述用户终端对应的租户信息确定所述操作指令的目标数据库节点;

发送模块330,用于通过所述消息服务总线将所述操作指令路由给所述数据库资源单元中的目标数据库节点,由所述目标数据库节点响应所述操作指令,并通过所述消息服务总线将操作结果返回给所述用户终端。

请一并参见图4,为本发明实施例提供的另一种数据处理装置的结构示意图,如图4所示,在图3所示的数据处理装置的基础上,图4所示的数据处理装置还可以包括:

判断模块340,用于当所述数据库请求为数据查询请求时,判断缓存系统中是否存在对应的数据信息;

所述发送单元330,具体用于若不存在,则通过所述消息服务总线将所述操作指令路由给所述数据库资源单元中的目标数据库节点。

请一并参见图5,为本发明实施例提供的另一种数据处理装置的结构示意图,如图5所示,在图4所示的数据处理装置的基础上,图5所示的数据处理装置还可以包括:

获取模块350,用于若缓存系统中存在对应的数据信息,则从缓存系统中获取对应的数据信息;

所述发送单元330,具体用于通过所述消息服务总线将获取到的数据信息返回给应用系统。

在可选实施例中,所述发送单元330,具体用于当所述目标数据库节点包括多个时,根据所述多个目标数据库节点的可用状态以及负荷状态,通过所述消息服务总线将所述操作指令路由给可用且负荷最低的目标数据库节点。

在可选实施例中,所述发送单元330,具体用于将所述操作指令发送给所述消息服务总线,由所述消息服务总线将所述操作指令加入消息队列中,并按照预设规则将消息队列中的操作指令路由给对应的数据库节点。

上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。

对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

由上述实施例可见,当数据库管理单元接收消息服务总线转发的SQL对象时,数据库管理单元根据该SQL对象确定对应的操作指令以及数据库标识,并根据该数据库标识以及用户终端对应的租户信息确定该操作指令的目标数据库节点,进而,数据库管理单元可以通过消息服务总线将操作指令路由给数据库资源单元中的目标数据库节点,由目标数据库节点响应该操作指令,并通过消息服务总线将操作结果返回给用户终端,从而可以实现针对多租户的数据库及服务方案。

本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。

应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1