数据平台权限控制方法、装置和设备与流程

文档序号:16210475发布日期:2018-12-08 07:40阅读:172来源:国知局
本发明属于计算机
技术领域
:,尤其涉及一种数据平台权限控制方法、装置和设备。
背景技术
:大数据平台,例如,hadoop大数据平台,由于能够充分利用集群的能力进行高速运算和存储,已经为大多数企业所用。目前基于hadoop大数据平台的对外服务平台(platformasaservice,paas)的服务权限控制主要有两种实现方式:一种是透明数据访问层方式:在大数据平台上,使用统一的透明数据访问层对外部提供操作和查询服务,透明数据访问层提供服务接口给paas系统。用户在paas发起操作,paas调用透明数据访问层对用户发起的访问请求做校验(校验包含语法合法性和权限是否满足操作类型等),如校验通过,透明数据访问层调用某种操作引擎(如hive\spark-sql)向大数据平台发起用户请求的操作(主要是数据查询、数据管理等),并把操作结果通过服务接口返回给paas,由paas展示给用户。另一种是开放操作引擎方式:在大数据平台上,集成了各类数据操作引擎(如hive\spark-sql等),并把各类的操作引擎直接(hive\spark-sql等)开放给paas,用户在paas发起操作,paas把操作透传给操作引擎,由操作引擎校验访问请求(校验包含语法合法性、权限是否满足操作类型等)。如校验通过,操作引擎直接向大数据平台发起操作请求,最后把结果反馈给paas,由paas将结果展示给用户。用户在paas上可以根据使用习惯,选择一种或者多种操作引擎来发起操作。但是,开发透明数据访问层的paas权限控制存在以下问题:一方面,存在语义和语法解析不够准确的问题,其后期升级和维护的成本也较高。因为透明数据访问层需要在用户发起访问时校验合法性,校验包含多种内容,涉及业务规范、管理流程和接口标准等。如用户身份是否合法、访问请求是否正确、是否对访问的资源具有相符合的权限、以及操作语法是否正确等。对这些内容做校验,需要对用户发起的请求内容做专门语法、内容、和语义解析,而且一旦出现解析或者转换错误,可能造成数据泄露和数据误操作等隐患,其维护成本和升级开发代价都比较高的。另一方面,自定义的透明数据访问层有自定义的一套访问方法和操作语法,用户需要先学习才能使用,存在一定的使用门槛和学习代价。开放操作引擎的paas权限控制虽然能解决上述问题,但是依然存在不同操作引擎间权限管理差异的问题。比如在hive\spark-sql混搭的hadoop大数据平台中,hive引擎是通过元数据来控制用户操作权限(如用户需要访问某个表只需要获取表访问权限),而spark-sql是用hdfs的文件权限控制用户操作(如用户需要访问某个表需要获取表的全部数据存储文件的访问权限),两种引擎权限管理方式不一致,同时开放给paas会使用户在paas做数据提取分析时,需要先知晓要访问的表是具有hive权限还是spark-sql的权限,降低了用户使用效率。并且,系统管理员为用户授权,需要对hive和spark-sql分别做操作,增加了操作难度,降低工作效率,同时增加管理上的复杂度。在生产场景中,某些业务表文件数量非常多,并以非常快的速度生成新的数据文件,spark-sql需要挨个将每个文件的权限授予给多个用户,会非常耗时,用户获得权限的及时性也得不到保障。技术实现要素:本发明实施例提供了一种数据平台权限控制方法、装置和设备,能够高效地进行数据平台的权限控制,并且便于维护、升级和使用。第一方面,提供了一种数据平台权限控制方法,该方法可以包括:接收用户发来的数据操作请求,其中,数据操作请求的类型可以包括hive操作引擎数据操作请求类型和spark-sql操作引擎数据操作请求类型。当数据操作请求的类型为spark-sql操作引擎数据操作请求类型时,根据数据操作转换关系配置表将数据操作请求的类型转换为hive操作引擎数据操作请求类型。获取用户的数据操作权限,匹配数据操作请求中请求的数据操作权限与用户的数据操作权限。当用户的数据操作权限包括数据操作请求中请求的数据操作权限时,将数据操作请求发送至分布式文件系统。第二方面,提供了一种数据平台权限控制装置,该装置可以包括:接收单元、操作转换单元、权限校验单元和转发单元。该接收单元可以用于接收用户发来的数据操作请求,其中,数据操作请求的类型包括hive操作引擎数据操作请求类型和spark-sql操作引擎数据操作请求类型;该操作转换单元可以用于当数据操作请求的类型为spark-sql操作引擎数据操作请求类型时,根据数据操作转换关系配置表将数据操作请求的类型转换为hive操作引擎数据操作请求类型。权限校验单元可以用于获取用户的数据操作权限,匹配用户发来的数据操作请求中请求的数据操作权限与用户的数据操作权限。转发单元可以用于当用户的数据操作权限包括数据操作请求中请求的数据操作权限时,将数据操作请求发送至分布式文件系统。第三方面,提供了一种数据平台权限控制设备,该设备可以包括存储器和处理器。该存储器可以用于储存有可执行程序代码。该处理器可以用于读取存储器中存储的可执行程序代码以执行上述数据平台权限控制方法。根据本发明实施例提供的数据平台权限控制方法、装置和设备。通过用户发来的数据操作请求中包括的数据操作请求的类型确定用户发来的数据操作请求的类型,当接收的用户发来的数据操作请求为spark-sql操作引擎数据操作请求类型时,根据数据操作转换关系配置表将数据操作请求的类型转换为hive操作引擎数据操作请求类型,并由通过hive操作引擎与hive元数据通信获取用户权限。当用户的数据操作权限包括数据操作请求中请求的数据操作权限时,将数据操作请求发送至分布式文件系统。避免了透明数据访问层方式不便于维护与升级且不便于用户使用的缺陷。同时,将spark-sql操作引擎数据操作请求转换为hive操作引擎数据操作请求解决了spark-sql赋权操作慢、效率低的问题,使权限管理操作更加高效。并且解决了hive\spark-sql权限不一致,管理难度大的问题,使得整个权限管理体系更加清晰简明。附图说明为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本发明一种实施例的数据平台权限控制方法的示意性流程图;图2是本发明另一种实施例的数据平台权限控制方法的示意性流程图;图3是本发明又一种实施例的数据平台权限控制方法的示意性流程图;图4是本发明一种实施例的数据平台权限控制装置的示意性结构框图;图5是本发明另一种实施例的数据平台权限控制装置的示意性结构框图;图6是本发明又一种实施例的数据平台权限控制装置的示意性结构框图;图7是本发明一种实施例的数据平台权限控制设备的示意性结构框图。具体实施方式下面将详细描述本发明的各个方面的特征和示例性实施例。在下面的详细描述中,提出了许多具体细节,以便提供对本发明的全面理解。但是,对于本领域技术人员来说很明显的是,本发明可以在不需要这些具体细节中的一些细节的情况下实施。下面对实施例的描述仅仅是为了通过示出本发明的示例来提供对本发明的更好的理解。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图对实施例进行详细描述。图1是本发明一种实施例的数据平台权限控制方法的示意性流程图。如图1所示,数据平台权限控制方法可以包括:s110~s140。s110,接收用户发来的数据操作请求,其中,数据操作请求的类型可以包括hive操作引擎数据操作请求类型和spark-sql操作引擎数据操作请求类型。在一些示例中,s110中的数据平台可以是基于hadoop的paas数据平台。paas把服务器平台作为一种服务提供的商业模式,这里是指将数据操作的平台作为一种服务,通过网页提供给用户。hadoop是一个由apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的能力进行高速运算和存储。目前已经成为大多数企业大数据平台的基础架构。hadoop的核心框架的设计包含hadoop分布式文件系统(hadoopdistributedfilesystem,hdfs)和映射归约mapreduce,其中,hdfs为海量的数据提供了存储,则mapreduce为海量的数据提供了计算。在一些示例中,s110中的hive是基于hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供结构化查询语言(structuredquerylanguage,sql)查询功能,可以将sql语句转换为mapreduce任务进行运行,提供数据查询分析功能。在一些示例中,s110中的spark-sql是spark计算框架的一个组件,给用户提供以sql方式处理数据的能力,功能类似于hive。spark是类似mapreduce的通用并行计算框架。在一些示例中,s110中接收的用户发来的数据操作请求均采用相同程序语言进行编写,例如,都采用sql进行进行编写。例如,用户将采用sql进行进行编写数据操作请求发送至paas平台。在一些示例中,s110中还可以包括对接收的用户发来的数据操作请求进行解析,例如,对接收的用户发来的数据操作请求进行语法和语义提取,解析出请求中的操作类型和对应的资源,形成资源列表,该资源列表的示例在表1中给出。图2是本发明另一种实施例的数据平台权限控制方法的示意性流程图。如图2所示,接收用户发来的数据操作请求之后,还可以包括:s210,生成数据操作请求的识别标识。例如,操作流水号。表1操作流水号操作类型操作对象操作用户ornum0001selectods_user_tableuserrole1ornum0001dropods_user_tableuserrole1ornum0002insretods_user_tableuserrole2ornum0003grantods_user_tableuserrole3由表1数据操作请求资源列表中可以得到,数据操作请求资源列表可以包括以下内容:操作流水号、操作类型、操作对象和操作用户。s120,当数据操作请求的类型为spark-sql操作引擎数据操作请求类型时,根据数据操作转换关系配置表将数据操作请求的类型转换为hive操作引擎数据操作请求类型。由于使用统一程序语言的权限管理数据,使用户权限管理更加清晰,降低管理难度。在一些示例中,s120中的数据操作转换关系配置表操作类型在spark-sql和hive中的对应关系。s130,获取用户的数据操作权限,匹配数据操作请求中请求的数据操作权限与用户的数据操作权限。在一些示例中,s130,可以根据操作内容对数据操作请求的权限进行校验,并根据生成的操作流水号对校验结果进行记录。权限内容的示例性列表在表2中给出。在一些示例中,用户的数据操作权限和数据操作请求中请求的数据操作权限均包括操作类型和操作对象。图3是本发明又一种实施例的数据平台权限控制方法的示意性流程图。如图3所示,获取所述用户的数据操作权限,匹配用户发来的数据操作请求中请求的数据操作权限与用户的数据操作权限之后,还可以包括:s310,生成包括识别标识的匹配结果。在一些示例中,用户的数据操作权限可以是基于hive的元数据获得的。在一些示例中,该hive的元数据在表2中给出:表2表2hive元数据权限内容中,包括操作类型权限、操作对象权限和用户角色。s140,当用户的数据操作权限包括数据操作请求中请求的数据操作权限时,将数据操作请求发送至分布式文件系统。在一些示例中,s140可以包括将用户操作请求的操作流水号和验证结果反馈给paas平台。在一些示例中,用户操作请求的验证结果在表3中给出。表3操作类型操作对象用户角色校验结果操作流水号selectods_user_tableuserrole1通过ornum0001dropods_user_tableuserrole1不通过ornum0001insretods_user_tableuserrole2通过ornum0002grantods_user_tableuserrole3不通过ornum0003表3用户操作请求验证结果中,包括:操作类型、操作对象、用户角色、校验结果和操作流水号。在一些示例中,s140还可以接收分布式文件系统反馈的针对用户发来的数据操作请求的结果,将结果发送给用户,以实现数据平台权限的控制。因此,根据本发明实施例提供的数据平台权限控制方法。通过用户发来的数据操作请求中包括的数据操作请求的类型确定用户发来的数据操作请求的类型,当接收的用户发来的数据操作请求为spark-sql操作引擎数据操作请求类型时,根据数据操作转换关系配置表将数据操作请求的类型转换为hive操作引擎数据操作请求类型,并由通过hive操作引擎与hive元数据通信获取用户权限。当用户的数据操作权限包括数据操作请求中请求的数据操作权限时,将数据操作请求发送至分布式文件系统。避免了透明数据访问层方式不便于维护与升级且不便于用户使用的缺陷。同时,将spark-sql操作引擎数据操作请求转换为hive操作引擎数据操作请求解决了spark-sql赋权操作慢、效率低的问题,使权限管理操作更加高效。并且解决了hive\spark-sql权限不一致,管理难度大的问题,使得整个权限管理体系更加清晰简明。在一些示例中,当数据操作请求的类型为spark-sql操作引擎数据操作请求类型时,s140可以包括将用户发来的数据操作请求发送至分布式文件系统使用分布式文件系统超级访问权限向分布式文件系统发送用户发来的数据操作请求。例如,当数据操作请求的类型为spark-sql操作引擎数据操作请求类型时,生成并通过统一数据服务将请求将用户发来的数据操作请求发到分布式文件系统执行,这里可以理解为,统一数据服务将请求可以使用分布式文件系统超级访问权限向分布式文件系统发送用户发来的数据操作请求。在一些示例中,当数据操作请求的类型为spark-sql操作引擎数据操作请求类型时,s140可以包括使用spark-sql统一操作服务将用户发来的数据操作请求发送至分布式文件系统使用分布式文件系统超级访问权限向分布式文件系统发送用户发来的数据操作请求。spark-sql统一操作服务可以理解为是对hdfs数据有超级访问权限的spark-sql操作引擎,当接受到paas发起操作请求时,解析出语法、语义,转换为执行任务,不再做操作权限校验,直接对hdfs发起操作,并将操作结果返回给paas。根据一些实施例,上述数据平台权限控制方法可以包括:s410,通过paas为用户设置操作权限。s420,paas通过接口操作hive元数据,将用户的操作权限、可访问资源数据保存在元数据中。s430,用户在paas选择操作引擎(hive或spark-sql),并编写标准的sql语言的操作请求提交给paas。当用户在paas选择操作引擎为hive时,进入s450,当用户在paas选择操作引擎为spark-sql时,进入s460s440,paas调用操作引擎接口,向(hive或spark-sql)操作引擎发起操作请求。s450,hive操作引擎解析用户发起的sql语义、语法,识别出用户操作类型和操作对象列表;hive操作引擎向hive权限校验器发起用户操作权限校验请求;hive权限校验器向hive元数据发起数据获取请求,请求获取用户可以操作的权限和可以访问的操作对象;hive元数据向hive权限校验器反馈用户的可以操作权限和可以访问的操作对象;hive权限校验器将hive引擎传入的操作类型、操作对象列表与hive元数据反馈的可以操作权限和可以访问操作对象做比对,并将比对结果反馈给hive查询引擎。hive操作引擎接受hive权限校验器返回的结果,如果比对结果不一致,将不一致的信息反馈给paas,paas告知用户;如果比对结果完全匹配,hive操作向hdfs发起访问请求,获取用户操作的结果,并将结果反馈给paas。s460,spark-sql操作引擎解析用户发起的sql语义、语法,识别出操作类型和操作对象列表;spark-sql向操作转换器发起用户访问权限校验请求;操作转换器将spark-sql操作引擎的请求转换为hive查询请求,并向hive权限校验器发起权限校验请求;hive权限校验器向hive元数据发起数据获取请求,请求获取用户的可以操作权限和可以访问的操作对象;hive元数据向hive权限校验器反馈用户的可以操作权限和可以访问的操作对象;hive权限校验器将hive引擎传入的操作类型、操作对象列表与hive元数据反馈的可以操作权限和可以访问操作对象做比对,并将比对结果反馈给spark-sql操作引擎。spark-sql操作引擎接受hive权限校验器返回的结果,如果比对结果不一致,将不一致的信息反馈给paas,paas告知用户;如果比对结果完全匹配,反馈给paas校验通过。paas获取到spark-sql操作引擎反馈校验通过的信息,将用户发起的操作请求向spark-sql统一操作服务发起操作请求。spark-sql统一操作服务使用hdfs超级访问权限向hdfs发起操作请求。spark-sql统一操作服务将操作结果返回给paas。s470,paas将操作结果展示给用户。上文中结合图1至图3,详细描述了根据本发明实施例的数据平台权限控制方法,下面将结合图4至图7,详细描述根据本发明实施例的数据平台权限控制装置和设备。图4是本发明一种实施例的数据平台权限控制装置的示意性结构框图。如图4所示,一种数据平台权限控制装置400,该装置可以包括:接收单元410、操作转换单元420、权限校验单元430和转发单元440。接收单元410可以用于接收用户发来的数据操作请求,其中,数据操作请求的类型包括hive操作引擎数据操作请求类型和spark-sql操作引擎数据操作请求类型;操作转换单元420可以用于当数据操作请求的类型为spark-sql操作引擎数据操作请求类型时,根据数据操作转换关系配置表将数据操作请求的类型转换为hive操作引擎数据操作请求类型。权限校验单元430可以用于获取用户的数据操作权限,匹配用户发来的数据操作请求中请求的数据操作权限与用户的数据操作权限。转发单元440可以用于当用户的数据操作权限包括数据操作请求中请求的数据操作权限时,将数据操作请求发送至分布式文件系统。根据本发明实施例的数据平台权限控制装置400可对应于根据本发明实施例的数据平台权限控制方法中的执行主体,并且数据平台权限控制装置400中的各个单元的功能分别为了实现图1中的各个方法的相应流程,为了简洁,在此不再赘述。因此,根据本发明实施例提供的数据平台权限控制装置。通过用户发来的数据操作请求中包括的数据操作请求的类型确定用户发来的数据操作请求的类型,当接收的用户发来的数据操作请求为spark-sql操作引擎数据操作请求类型时,根据数据操作转换关系配置表将数据操作请求的类型转换为hive操作引擎数据操作请求类型,并由通过hive操作引擎与hive元数据通信获取用户权限。当用户的数据操作权限包括数据操作请求中请求的数据操作权限时,将数据操作请求发送至分布式文件系统。避免了透明数据访问层方式不便于维护与升级且不便于用户使用的缺陷。同时,将spark-sql操作引擎数据操作请求转换为hive操作引擎数据操作请求解决了spark-sql赋权操作慢、效率低的问题,使权限管理操作更加高效。并且解决了hive\spark-sql权限不一致,管理难度大的问题,使得整个权限管理体系更加清晰简明图5是本发明另一种实施例的数据平台权限控制装置的示意性结构框图。如图5所示,数据平台权限控制装置500可以包括:接收单元510、操作转换单元520、权限校验单元530、转发单元540和统一操作服务单元550。在一些示例中,其中,接收单元510和接收单元410功能类似;操作转换单元520和操作转换单元420功能类似;权限校验单元530和权限校验单元430功能类似;转发单元540和转发单元440功能类似。在一些示例中,统一操作服务单元550可以用于:使用分布式文件系统超级访问权限向分布式文件系统发送用户发来的数据操作请求。在一些示例中,上述用户的数据操作权限和数据操作请求中请求的数据操作权限均包括操作类型和操作对象。图6是本发明又一种实施例的数据平台权限控制装置的示意性结构框图。如图6所示,数据平台权限控制装置600可以包括:接收单元610、操作转换单元620、权限校验单元630、转发单元640、统一操作服务单元650和解析单元660。在一些示例中,其中,接收单元610和接收单元510功能类似;操作转换单元620和操作转换单元520功能类似;权限校验单元630和权限校验单元530功能类似;转发单元640和转发单元540功能类似;统一操作服务单元650和统一操作服务单元550功能类似。在一些示例中,解析单元660还可以用于:生成数据操作请求的识别标识。在一些示例中,权限校验单元630还可以用于:生成包括识别标识的匹配结果。在一些示例中,用户的数据操作权限可以是基于hive的元数据获得的。图7是本发明一种实施例的数据平台权限控制设备的示意性结构框图。如图7所示结合上述的数据平台权限控制方法和数据平台权限控制装置的至少一部分可以由计算机设备700实现。该设备700可以包括处理器703和存储器704。存储器704可以用于储存有可执行程序代码。处理器703可以用于读取存储器704中存储的可执行程序代码以执行上述的数据平台权限控制方法。因此,根据本发明实施例提供的数据平台权限控制设备。通过用户发来的数据操作请求中包括的数据操作请求的类型确定用户发来的数据操作请求的类型,当接收的用户发来的数据操作请求为spark-sql操作引擎数据操作请求类型时,根据数据操作转换关系配置表将数据操作请求的类型转换为hive操作引擎数据操作请求类型。当用户的数据操作权限包括数据操作请求中请求的数据操作权限时,将数据操作请求发送至分布式文件系统。避免了透明数据访问层方式不便于维护与升级且不便于用户使用的缺陷。同时,将spark-sql操作引擎数据操作请求转换为hive操作引擎数据操作请求解决了spark-sql赋权操作慢、效率低的问题,使权限管理操作更加高效。并且解决了hive\spark-sql权限不一致,管理难度大的问题,使得整个权限管理体系更加清晰简明。在一些说明性示例中,数据平台权限控制设备700还可以包括输入设备701、输入端口702、输出端口705、以及输出设备706。其中,输入端口702、处理器703、存储器704、以及输出端口705通过总线710相互连接,输入设备701和输出设备706分别通过输入端口702和输出端口705与总线710连接,进而与设备700的其他组件连接。在一些示例中,这里的输出接口和输入接口也可以用i/o接口表示。具体地,输入设备701接收来自外部的输入信息,并通过输入端口702将输入信息传送到处理器703。例如,输入信息为用户发来的数据操作请求。其中,数据操作请求的类型包括hive操作引擎数据操作请求类型和spark-sql操作引擎数据操作请求类型。在一些示例中,处理器703基于存储器704中存储的计算机可执行程序代码或指令对输入信息进行处理以生成输出信息,例如,处理器704执行以下步骤:当数据操作请求的类型为spark-sql操作引擎数据操作请求类型时,根据数据操作转换关系配置表将数据操作请求的类型转换为hive操作引擎数据操作请求类型。获取用户的数据操作权限,匹配数据操作请求中请求的数据操作权限与用户的数据操作权限。将输出信息临时或者永久地存储在存储器704中,随后在需要时经由输出端口705将输出信息传送到输出设备706。输出设备706将输出信息输出到设备700的外部。例如,当用户的数据操作权限包括数据操作请求中请求的数据操作权限时,将数据操作请求发送至分布式文件系统。所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1