基于多解析器的异构数据源操作资源解析定位方法和设备与流程

专利检索2022-05-11  8

1.本技术涉及计算机
技术领域
:,更具体地,涉及一种基于多解析器的异构数据源操作资源的解析定位方法和设备。
背景技术
::2.随着互联网和工业互联网的飞速发展,无处不在,种类繁多的数据使用各种个样的数据系统存储。统一的异构数据源管理系统能够帮助企业更好的管理企业各个系统的数据系统。3.目前市场上异构数据源管理系统通常使用自定义结构化查询语法来完成自身资源到底层资源映射的方式或者直接让用户指定要做的操作以及需要访问的数据资源的方式来定位用户的操作和需要访问的资源(操作:查询还是插入等,操作的资源:表)。第一种需要自定义自己的结构化查询语法,通过解析自己的结构化查询语法获取用户需要查询的数据资源,使用该结果来映射到异构数据源的对应资源上,然后可以基于要操作的资源进行权限校验等工作。通常来说能够完成灵活度较高的结构化查询,但是实现复杂,需要定义一套完整的结构化查询语法且在使用异构的底层数据源特性上有很大的缺失,通常会降低之后的数据查询性能。第二种方式是用户放弃使用结构化查询语法,直接在一定的规则内指定要访问的资源,这种方式能够直接定位到需要访问的异构数据源资源,可以基于要操作的资源进行权限校验等工作,但是会降低异构数据源的使用灵活度。4.因此,如何保证异构数据源查询的灵活性和性能,并降低查询的复杂度是目前有待解决的技术问题。技术实现要素:5.本发明提供一种基于多解析器的异构数据源操作资源的解析定位方法,应用于包括异构数据源解析器的异构数据源管理平台中,所述异构数据源解析器包括多种类型的数据源解析器,用以解决现有技术中无法兼顾异构数据源查询的灵活性和性能,且查询过程过于复杂的技术问题。6.该方法包括:当所述异构数据源管理平台接收到用户发送的结构化查询语句后,基于所述结构化查询语句的数据源类型确定与所述数据源类型对应的目标数据源解析器;基于所述目标数据源解析器构建所述结构化查询语句对应的抽象语法树,根据所述抽象语法树对所述结构化查询语句进行解析,并将解析结果返回到所述异构数据源管理平台;对所述解析结果进行权限校验及资源检查,在通过权限校验及资源检查后,将所述结构化查询语句推送到底层异构数据源进行执行,并将执行结果返还给用户。7.在本技术一些实施例中,根据所述抽象语法树对所述结构化查询语句进行解析,具体为:对所述抽象语法树进行深度优先遍历,根据遍历结果生成所述解析结果,所述解析结果包括所述结构化查询语句对应的操作及操作资源。8.在本技术一些实施例中,对所述解析结果进行权限校验及资源检查,具体为:判断用户是否具有操作权限且所述操作资源是否存在;若用户具有操作权限且所述操作资源存在,将所述结构化查询语句推送到底层异构数据源进行执行,并将执行结果返还给用户;若用户不具有操作权限或所述操作资源不存在,向用户返回查询失败信息。9.在本技术一些实施例中,各所述数据源解析器包括各数据源对应的解析器抽象接口,所述解析器抽象接口是通过antlr4的语法文件为各数据源编写对应的语法文件,并根据所述语法文件生成的。10.在本技术一些实施例中,所述抽象语法树为多叉树。11.相应的,本发明还提出了一种基于多解析器的异构数据源操作资源的解析定位的设备,应用于包括异构数据源解析器的异构数据源管理平台中,所述异构数据源解析器包括多种类型的数据源解析器,所述设备包括:确定模块,用于当所述异构数据源管理平台接收到用户发送的结构化查询语句后,基于所述结构化查询语句的数据源类型确定与所述数据源类型对应的目标数据源解析器;解析模块,用于基于所述目标数据源解析器构建所述结构化查询语句对应的抽象语法树,根据所述抽象语法树对所述结构化查询语句进行解析,并将解析结果返回到所述异构数据源管理平台;执行模块,用于对所述解析结果进行权限校验及资源检查,在通过权限校验及资源检查后,将所述结构化查询语句推送到底层异构数据源进行执行,并将执行结果返还给用户。12.在本技术一些实施例中,所述解析模块,具体用于:对所述抽象语法树进行深度优先遍历,根据遍历结果生成所述解析结果,所述解析结果包括所述结构化查询语句对应的操作及操作资源。13.在本技术一些实施例中,所述执行模块,具体用于:判断用户是否具有操作权限且所述操作资源是否存在;若用户具有操作权限且所述操作资源存在,将所述结构化查询语句推送到底层异构数据源进行执行,并将执行结果返还给用户;若用户不具有操作权限或所述操作资源不存在,向用户返回查询失败信息。14.在本技术一些实施例中,各所述数据源解析器包括各数据源对应的解析器抽象接口,所述解析器抽象接口是通过antlr4的语法文件为各数据源编写对应的语法文件,并根据所述语法文件生成的。15.在本技术一些实施例中,所述抽象语法树为多叉树。16.通过应用以上技术方案,当所述异构数据源管理平台接收到用户发送的结构化查询语句后,基于所述结构化查询语句的数据源类型确定与所述数据源类型对应的目标数据源解析器;基于所述目标数据源解析器构建所述结构化查询语句对应的抽象语法树,根据所述抽象语法树对所述结构化查询语句进行解析,并将解析结果返回到所述异构数据源管理平台;对所述解析结果进行权限校验及资源检查,在通过权限校验及资源检查后,将所述结构化查询语句推送到底层异构数据源进行执行,并将执行结果返还给用户,从而在保证异构数据源查询的灵活度与性能的前提下,降低异构数据源查询的复杂度,提高了异构数据源的查询效率。附图说明17.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。18.图1示出了本发明实施例提出的一种基于多解析器的异构数据源操作资源的解析定位方法的流程示意图;图2示出了本发明实施例中异构数据源管理平台的结构示意图;图3示出了本发明实施例中抽象语法树的示意图;图4示出了本发明实施例提出的一种基于多解析器的异构数据源操作资源的解析定位的设备的结构示意图。具体实施方式19.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。20.本技术实施例提供一种基于多解析器的异构数据源操作资源的解析定位方法,应用于包括异构数据源解析器的异构数据源管理平台中,所述异构数据源解析器包括多种类型的数据源解析器,如图1所示,包括以下步骤:步骤s101,当所述异构数据源管理平台接收到用户发送的结构化查询语句后,基于所述结构化查询语句的数据源类型确定与所述数据源类型对应的目标数据源解析器。21.本实施例中,如图2所示,异构数据源管理平台包括异构数据源解析器,异构数据源解析器中设置有多种类型的数据源解析器,例如rpd语法解析器、pg语法解析器等,本实施例中所提及的数据源解析器仅用于举例说明本方案的原理,并不表示本方案中的数据源解析器仅为本方案提及的相关类型,本领域技术人员可根据实际需要灵活设置不同类型的数据源解析器,数据源解析器的类型或数量不同并不影响本技术的保护范围。22.用户向异构数据源管理平台发送结构化查询语句时,其中包含有数据源的类型,异构数据源解析器根据数据源类型将结构化查询语句分配到与之相同类型的目标数据源解析器中,其中,本实施例中使用mysql数据库作为数据源,在本技术的具体应用场景中,技术人员可以选用其他类型的数据库作为数据源。23.步骤s102,基于所述目标数据源解析器构建所述结构化查询语句对应的抽象语法树,根据所述抽象语法树对所述结构化查询语句进行解析,并将解析结果返回到所述异构数据源管理平台。24.本实施例中,在将结构化查询语句发送到对应的目标数据源解析器后,目标数据源解析器根据所述结构化查询语句构建与之对应的抽象语法树,抽象语法树(abstractsyntaxtree)是一种用来描述程序代码语法结构的树形表示方式,语法树的每一个节点都代表着程序代码中的一个语法结构,如包、类型、修饰符、运算符、接口、返回值都可以是一个语法结构,通过抽象语法树对用户发送的结构化查询语句进行解析,得到解析结果后返回到异构数据源管理平台。25.为了实现对结构化查询语句的解析,在本技术一些实施例中,根据所述抽象语法树对所述结构化查询语句进行解析,具体为:对所述抽象语法树进行深度优先遍历,根据遍历结果生成所述解析结果,所述解析结果包括所述结构化查询语句对应的操作及操作资源。26.本实施例中,对抽象语法树进行深度优先遍历,在遍历结束后根据遍历结果生成上述解析结果,解析结果中包括结构化查询语句对应的操作,即用户需要进行什么样的操作处理,以及所述操作的资源,例如用户想要删除“你好”这个字符,那么删除就是结构化查询语句对应的操作,“你好”就是操作资源,即需要被操作的目标。27.步骤s103,对所述解析结果进行权限校验及资源检查,在通过权限校验及资源检查后,将所述结构化查询语句推送到底层异构数据源进行执行,并将执行结果返还给用户。28.异构数据源管理平台对返回的解析结果进行权限校验及资源检查,权限校验及资源检查方式在此不做限定,在通过权限校验及资源检查后,将所述结构化查询语句推送到底层异构数据源进行执行,并将执行结果返还给用户,完成用户的查询请求。29.为了对解析结果进行权限校验及资源检查,在本技术一些实施例中,对所述解析结果进行权限校验及资源检查,具体为:判断用户是否具有操作权限且所述操作资源是否存在;若用户具有操作权限且所述操作资源存在,将所述结构化查询语句推送到底层异构数据源进行执行,并将执行结果返还给用户;若用户不具有操作权限或所述操作资源不存在,向用户返回查询失败信息。30.在通过抽象语法树对结构化查询语句进行解析后,需要确定用户是否有权限进行查询操作,以及有用户需要的目标资源存在,所以需要判断用户是否具有操作权限且所述操作资源是否存在,若用户具有操作权限且所述操作资源存在,将所述结构化查询语句推送到底层异构数据源进行执行,并将执行结果返还给用户,如果若用户具有操作权限及所述操作资源存在两者中有一个不满足,则用户本次的查询失败,向用户返回查询失败信息。31.在本技术一些实施例中,各所述数据源解析器包括各数据源对应的解析器抽象接口,所述解析器抽象接口是通过antlr4的语法文件为各数据源编写对应的语法文件,并根据所述语法文件生成的。32.本实施例中,所述异构数据源解析器的构建方式为:在异构数据源解析器内置多种类型数据源解析器;其中,每一种数据源的解析器都是根据数据源本身的结构化查询语法进行实现,来完成对各自不同类型的数据源语法进行解析。对各自不同类型的数据源语法进行解析的步骤如下:首先,通过antlr4的语法文件为每一种数据源编写其语法文件;其次,根据语法文件生成对应的解析器抽象接口;最后,通过对抽象接口的编程实现完成对该语法的解析。33.其中,每一条结构化查询语句通过该解析器都会生成对应的抽象语法树,通过深度优先遍历的方式完成对每一个结构化查询语句语法树的遍历,然后根据编程实现逻辑获取到查询语句要做的操作以及需要操作的资源信息。34.在本技术一些实施例中,所述抽象语法树为多叉树。35.通过应用以上技术方案,当所述异构数据源管理平台接收到用户发送的结构化查询语句后,基于所述结构化查询语句的数据源类型确定与所述数据源类型对应的目标数据源解析器;基于所述目标数据源解析器构建所述结构化查询语句对应的抽象语法树,根据所述抽象语法树对所述结构化查询语句进行解析,并将解析结果返回到所述异构数据源管理平台;对所述解析结果进行权限校验及资源检查,在通过权限校验及资源检查后,将所述结构化查询语句推送到底层异构数据源进行执行,并将执行结果返还给用户,从而在保证异构数据源查询的灵活度与性能的前提下,降低异构数据源查询的复杂度,提高了异构数据源的查询效率。36.为了进一步阐述本发明的技术思想,现结合具体的应用场景,对本发明的技术方案进行说明。37.本技术实施例提供一种基于多解析器的异构数据源操作资源的解析定位方法,包括以下步骤:步骤一,用户向异构数据源管理系统中输入结构化查询语句,例如:select*fromtable1。38.异构数据源管理平台包括异构数据源解析器,异构数据源解析器中设置有多种类型的数据源解析器。39.步骤二,异构数据源管理平台将结构化查询语句select*fromtable1以及数据源类型mysql发送到异构数据源解析器。40.用户向异构数据源管理平台发送结构化查询语句时,其中包含有数据源的类型,异构数据源解析器根据数据源类型将结构化查询语句分配到与之相同类型的目标数据源解析器中。41.步骤三,异构数据源解析器找到mysql语法解析器对结构化查询语句select*fromtable1进行解析,构建相应的语法树,所述语法树如图3所示,对该语法树进行深度优先遍历,遍历顺序见表一,得到解析结果{{op:select,resources:table1}},其中操作为select,资源为table1。42.表一步骤四,权限模块可以根据信息检测该用户是否有table1的select权限,资源检测模块也可以检测是否有table1这个资源。43.在通过抽象语法树对结构化查询语句进行解析后,需要确定用户是否有权限进行查询操作,以及有用户需要的目标资源存在,所以需要判断用户是否具有操作权限且所述操作资源是否存在步骤五,在权限检测及资源检测都通过,异构数据源管理平台可以将该结构化查询语句select*fromtable1推送到底层异构数据源进行执行,完成结果返还给客户。44.若用户具有操作权限且所述操作资源存在,将所述结构化查询语句推送到底层异构数据源进行执行,并将执行结果返还给用户,如果若用户具有操作权限及所述操作资源存在两者中有一个不满足,则用户本次的查询失败,向用户返回查询失败信息。45.通过应用以上技术方案,当所述异构数据源管理平台接收到用户发送的结构化查询语句后,基于所述结构化查询语句的数据源类型确定与所述数据源类型对应的目标数据源解析器;基于所述目标数据源解析器构建所述结构化查询语句对应的抽象语法树,根据所述抽象语法树对所述结构化查询语句进行解析,并将解析结果返回到所述异构数据源管理平台;对所述解析结果进行权限校验及资源检查,在通过权限校验及资源检查后,将所述结构化查询语句推送到底层异构数据源进行执行,并将执行结果返还给用户,从而在保证异构数据源查询的灵活度与性能的前提下,降低异构数据源查询的复杂度,提高了异构数据源的查询效率。46.本技术实施例还提出了一种基于多解析器的异构数据源操作资源的解析定位的设备,应用于包括异构数据源解析器的异构数据源管理平台中,所述异构数据源解析器包括多种类型的数据源解析器,如图4所示,所述设备包括:确定模块401,用于当所述异构数据源管理平台接收到用户发送的结构化查询语句后,基于所述结构化查询语句的数据源类型确定与所述数据源类型对应的目标数据源解析器;解析模块402,用于基于所述目标数据源解析器构建所述结构化查询语句对应的抽象语法树,根据所述抽象语法树对所述结构化查询语句进行解析,并将解析结果返回到所述异构数据源管理平台;执行模块403,用于对所述解析结果进行权限校验及资源检查,在通过权限校验及资源检查后,将所述结构化查询语句推送到底层异构数据源进行执行,并将执行结果返还给用户。47.在本技术具体的应用场景中,所述解析模块402,具体用于:对所述抽象语法树进行深度优先遍历,根据遍历结果生成所述解析结果,所述解析结果包括所述结构化查询语句对应的操作及操作资源。48.在本技术具体的应用场景中,所述执行模块403,具体用于:判断用户是否具有操作权限且所述操作资源是否存在;若用户具有操作权限且所述操作资源存在,将所述结构化查询语句推送到底层异构数据源进行执行,并将执行结果返还给用户;若用户不具有操作权限或所述操作资源不存在,向用户返回查询失败信息。49.在本技术具体的应用场景中,各所述数据源解析器包括各数据源对应的解析器抽象接口,所述解析器抽象接口是通过antlr4的语法文件为各数据源编写对应的语法文件,并根据所述语法文件生成的。50.在本技术具体的应用场景中,所述抽象语法树为多叉树。51.最后应说明的是:以上实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不驱使相应技术方案的本质脱离本技术各实施例技术方案的精神和范围。当前第1页12当前第1页12
转载请注明原文地址:https://win.8miu.com/read-950060.html

最新回复(0)