一种多租户模式下Hive数据隔离的方法和装置的制造方法

文档序号:8361579阅读:2687来源:国知局
一种多租户模式下Hive数据隔离的方法和装置的制造方法
【技术领域】
[0001]本发明涉及网络通信技术领域,特别涉及一种多租户模式下Hive数据隔离的方法和装置。
【背景技术】
[0002]随着数据收集手段的不断丰富及完善,越来越多的行业数据被积累下来。数据规模已经增长到了传统软件行业无法承载的海量数据(百GB、TB、乃至PB)级别。在分析海量数据场景下,由于单台服务器的处理能力限制,数据分析者通常采用分布式计算模式。
[0003]Apache Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的SQL查询功能,可以将SQL语句转换为MapReduce任务进行运行。其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。
[0004]当多个租户使用Hive数据时,如何保证多租户间隔离访问各自的Hive数据是个需要解决的问题。

【发明内容】

[0005]本发明提供一种多租户模式下Hive数据隔离的方法和装置,能够实现不同租户的Hive数据访问的相互隔离。
[0006]一种多租户模式下Hive数据隔离的方法,针对每一个租户建立与该租户对应的一个以上的项目空间,并在每一个项目空间中虚拟存储该项目空间所对应租户的Hive数据表;以及根据每一个租户,建立项目空间与一个以上的Hive数据库的对应关系;包括:
[0007]通过第一项目空间显示该第一项目空间对应的第一租户的所有数据库中的所有Hive数据表;
[0008]接收第一租户对第一项目空间中虚拟存储的第一数据表的访问请求;
[0009]查找与所述第一项目空间对应的第一 Hive数据库;
[0010]根据所述访问请求,得到所述第一租户与所述第一 Hive数据库之间的连接,利用该连接在所述第一 Hive数据库中操作所述第一数据表。
[0011]该方法进一步包括:
[0012]根据所述第二租户的指令,在第二租户对应的第二项目空间中进行数据表的虚拟化的增加、删除和修改操作,并在第二项目空间对应的第二 Hive数据库中执行数据表的实际的增加、删除和修改操作;
[0013]和/ 或,
[0014]在所述第三项目空间中虚拟存储有数据表时,拒绝第三租户对该第三项目空间的删除请求。
[0015]所述得到所述第一租户与所述第一 Hive数据库之间的连接包括:单独为所述第一租户建立第一租户与所述第一 Hive数据库之间的专用连接。
[0016]该方法进一步包括:为每一个租户建立与该租户对应的Hive数据连接池;
[0017]在所述单独为所述第一租户建立第一租户与所述第一 Hive数据库之间的专用连接之前,包括:判断所述Hive数据连接池中是否缓存有所述第一租户与所述第一 Hive数据库之间的连接,如果有,则从所述Hive数据连接池得到所述第一租户与所述第一 Hive数据库之间的连接,如果没有则执行所述单独为所述第一租户建立第一租户与所述第一 Hive数据库之间的专用连接,并将建立的该连接缓存到所述Hive数据连接池中。
[0018]所述操作所述第一数据表包括:对所述第一数据表进行读操作或者写操作。
[0019]所述第一 Hive数据库包括多个Hive数据库;所述第一数据表包括:位于所述多个Hive数据库中的多个数据表;
[0020]所述根据所述访问请求在所述第一 Hive数据库中操作所述第一数据表包括:将所述多个Hive数据库的名称和所述多个数据表的名称前缀进行拼接,将拼接后的名称携带在访问请求中发送至第一 Hive数据库,根据所述拼接后的名称,在所述多个Hive数据库中操作所述多个数据表。
[0021]一种多租户模式下Hive数据隔离的装置,包括:
[0022]配置单元,用于针对每一个租户建立与该租户对应的一个以上的项目空间,并在每一个项目空间中虚拟存储该项目空间所对应租户的Hive数据表;以及根据每一个租户,建立项目空间与一个以上的Hive数据库的对应关系;
[0023]项目空间处理单元,用于通过第一项目空间显示该第一项目空间对应的第一租户的所有数据库中的所有Hive数据表;
[0024]接收单元,用于接收第一租户对第一项目空间中虚拟存储的第一数据表的访问请求;
[0025]查找单元,用于查找与所述第一项目空间对应的第一 Hive数据库;
[0026]操作执行单元,用于根据所述访问请求,得到所述第一租户与所述第一 Hive数据库之间的连接,利用该连接在所述第一 Hive数据库中操作所述第一数据表。
[0027]所述项目空间处理单元,进一步根据所述第二租户的指令,在第二租户对应的第二项目空间中进行数据表的虚拟化的增加、删除和修改操作,并在第二项目空间对应的第二Hive数据库中执行数据表的实际的增加、删除和修改操作;和/或,进一步在所述第三项目空间中虚拟存储有数据表时,拒绝第三租户对该第三项目空间的删除请求。
[0028]操作执行单元,进一步单独为所述第一租户建立第一租户与所述第一 Hive数据库之间的专用连接,作为得到的所述第一租户与所述第一 Hive数据库之间的连接。
[0029]进一步包括:动态缓存单元,用于为每一个租户建立与该租户对应的Hive数据连接池;以及在Hive数据连接池中缓存租户与Hive数据库之间的连接。
[0030]所述操作执行单元,在单独为所述第一租户建立第一租户与所述第一 Hive数据库之间的专用连接之前,判断所述Hive数据连接池中是否缓存有所述第一租户与所述第一 Hive数据库之间的连接,如果有,则从所述Hive数据连接池得到所述第一租户与所述第-Hive数据库之间的连接,如果没有则继续执行所述单独为所述第一租户建立第一租户与所述第一 Hive数据库之间的专用连接,并将建立的该连接通过动态缓存单元缓存到所述Hive数据连接池中。
[0031]可见,本发明实施例提供的一种多租户模式下Hive数据隔离的方法和装置,能够针对每一个租户建立其对应的项目空间,不同的用户对应不同的项目空间,每一个用户的项目空间内虚拟存储有该用户对应的Hive数据库中的数据表,租户只能从对应自己的项目空间中查看虚拟存储的数据表,并且租户只能通过对应自己的项目空间触发对数据表进行操作,而无法直接操作Hive数据库,更无法查看或操作对应其他租户的Hive数据库,因此,实现了 Hive数据的功能级别的隔离。
【附图说明】
[0032]图1是本发明一个实施例中多租户模式下Hive数据隔离的方法的流程图。
[0033]图2是本发明另一个实施例中多租户模式下Hive数据隔离的方法的流程图。
[0034]图3是本发明另一个实施例中多租户模式下Hive元数据动态缓存访问连接隔离的示意图。
[0035]图4是本发明另一个实施例中多租户模式下Hive元数据访问隔离处理示意图。
[0036]图5是本发明一个实施例中多租户模式下Hive数据隔离的装置的结构示意图。
【具体实施方式】
[0037]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0038]本发明一个实施例提出了一种多租户模式下Hive数据隔离的方法,参见图1,该方法包括:
[0039]步骤101:针对每一个租户建立与该租户对应的一个以上的项目空间。
[0040]步骤102:在每一个项目空间中虚拟存储该项目空间所对应租户的Hive数据表。
[0041]步骤103:根据每一个租户,建立项目空间与一个以上的Hive数据库的对应关系。
[0042]步骤104:通过第一项目空间显示该第一项目空间对应的第一租户的所有数据库中的所有Hive数据表。
[0043]步骤105:接收第一租户对第一项目空间中虚拟存储的第一数据表的访问请求。
[0044]步骤106:查找与所述第一项
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1