本发明涉及数据处理,更具体地说,特别涉及一种面向定制化评估场景的数据查询语言方法及系统。
背景技术:
1、在评估应用场景中,往往需要利用各类评估技术获取、收集待评估目标相关的数据信息,再进一步进行评估论证,确认是否采纳。此过程中,数据收集是评估体系的核心环节,而数据收集时对数据进行查询是必不可少的步骤。
2、目前主流的数据查询方法,主要基于数据查询语言。其中,结构化查询语言(structured query language,sql)可对关系型数据库进行查询,图查询语言(graphquerylanguage,gql)对图数据库进行查询,从而获得用户查询的数据。无论是关系型数据库或非关系型数据库,语言设计时都极为注重通用性,然而通用性普适性较好的查询语言,在面向定制化的评估场景系统中,易用性较差,因为该类系统中数据往往呈现爆炸式增长,用户需要输入若干条查询语言,涉及多张表结构或图结构的查询和关联,才能获得最后的查询结果,查询操作繁琐且需要用户对底层的存储结构有一定了解。
3、因此,在面向定制化评估场景中,如何能设计和扩展一套支持用户关注应用场景逻辑但无需了解底层数据存储组织方式的、友好的、简洁易用的、可读性强的查询语言及系统,便捷地获取评估系统的查询结果,已成为该领域亟待解决的问题。
技术实现思路
1、本发明的目的在于提供一种面向定制化评估场景的数据查询语言方法及系统,以克服现有技术所存在的缺陷。
2、为了达到上述目的,本发明采用的技术方案如下:
3、一种面向定制化评估场景的数据查询语言方法,包括以下步骤:
4、s1、为定制化评估场景设计一套自定义的数据查询语言和与之适配的数据组织;
5、s2、搭建基于vue的查询交互前端,该查询交互前端用于输入步骤s1中自定义的数据查询语言,发出数据查询请求并完成数据查询结果的可视化展示;
6、s3、搭建数据管理后端,基于servlet响应来自查询交互前端的请求,沿用标准的结构化查询语言解析、优化、验证功能,扩展步骤s1自定义的数据查询语言的解析、优化、验证功能,通过调用数据服务与底层存储引擎交互,完成数据查询的执行操作,访问或修改数据库中存储数据,以及依据定制评估场景的具体需求配置具体的数据库。
7、进一步地,所述步骤s1具体包括:
8、s10、基于定制化评估场景的应用范围和其中的关键数据,罗列总结用户关心或需要查询的常规评估问题以形成初始查询池;
9、s11、将初始查询池中待查询数据结构名称的英文全拼或缩写作为自定义查询语言的标识符、高频运算动词以对应的数学运算符号或自定义符号作为自定义查询语言的运算符、高频的数据操作对应的英文全拼或缩写作为自定义查询语言的关键字;
10、s12、基于sql语法规则,将初始查询池中的查询问题逐一转化为包含自定义关键字、自定义标识符、自定义运算符的自定义的数据查询语言;
11、s13、将待查询的抽象数据类型从数据库中抽取和封装,形成与该自定义查询语言待查询对象适配的数据组织,存储至数据库中。
12、进一步地,所述步骤s2包括:
13、s21、在输入数据查询语言后,触发事件查询功能,向数据管理后端发出http请求;
14、s22、接收到数据管理后端对应的http响应后,对响应数据进行数据格式转换和封装后,调用数据更新接口,定时更新或按事件驱动更新待可视化数据;
15、s23、调用基于echarts组件、element-ui组件封装的图表控件,对处理后的数据进行可视化展示。
16、进一步地,所述步骤s3中自定义的数据查询语言的解析源码生成流程为:使用javacc作为语法解析器,使用freemaker作为模版,把parserimpls.ftl、config.fmpp、parser.jj模版合成最终的语法词法文件,再通过javacc编译成自定义的解析器源码。
17、本发明还提供一种根据上述的面向定制化评估场景的数据查询语言方法的系统,包括:
18、自定义模块,用于为定制化评估场景设计一套自定义的数据查询语言,并事先将待查询的抽象数据类型从数据库中抽取和封装,形成与该查询语言待查询对象适配的数据组织,存储至数据库中;
19、查询交互前端,用于输入自定义模块中自定义的数据查询语言,发出数据查询请求并完成数据查询结果的可视化展示;
20、数据管理后端,用于基于servlet响应来自查询交互前端的请求,沿用标准的结构化查询语言解析、优化、验证功能,扩展步骤s1自定义的数据查询语言的解析、优化、验证功能,通过调用数据服务与底层存储引擎交互,完成数据查询的执行操作,访问或修改数据库中存储数据,以及依据定制评估场景的具体需求配置具体的数据库。
21、进一步地,所述查询交互前端包括:
22、查询模块,用于为用户提供查询语言输入窗口,查询事件触发功能,查询事件触发后向数据管理后端发出http请求;
23、数据处理模块,用于接收到数据管理后端对应的http响应后,对响应数据进行数据格式转换和封装后,调用数据更新接口,定时更新或按事件驱动更新待可视化数据;
24、查询结果可视化模块,用于调用基于echarts组件、element-ui组件封装的图表控件,对处理后的数据进行可视化展示。
25、进一步地,所述数据管理后端包括:
26、响应模块,用于基于servlet响应来自查询交互前端的请求
27、动态数据管理框架,沿用标准的结构化查询语言解析、优化、验证功能,并扩展自定义模块自定义的数据查询语言的解析、优化、验证功能;
28、执行器,用于调用数据服务与底层存储引擎交互,完成数据查询的执行操作,访问或修改数据库中存储数据;
29、数据库管理系统,用于依据定制评估场景的具体需求建立、使用和维护具体的数据库。
30、与现有技术相比,本发明的优点在于:本发明提出的自定义的数据查询语言,可适配定制评估场景的应用,对于高频查询的数据,支持用户使用简洁的查询语句直接查询,无需输入多条查询语句多次跨表查找,提升操作易用性;对于更多关注场景逻辑而非数据存储组织方式的用户来说,该自定义查询语言有更好的可读性,降低用户对语言的学习成本,本发明配合基于apache calcite的语法解析器使用,既能有效兼容标准的结构化查询语言语言,也便于自定义查询语句的灵活扩展。
1.一种面向定制化评估场景的数据查询语言方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的面向定制化评估场景的数据查询语言方法,其特征在于,所述步骤s1具体包括:
3.根据权利要求1所述的面向定制化评估场景的数据查询语言方法,其特征在于,所述步骤s2包括:
4.根据权利要求1所述的面向定制化评估场景的数据查询语言方法,其特征在于,所述步骤s3中自定义的数据查询语言的解析源码生成流程为:使用javacc作为语法解析器,使用freemaker作为模版,把parserimpls.ftl、config.fmpp、parser.jj模版合成最终的语法词法文件,再通过javacc编译成自定义的解析器源码。
5.一种根据权利要求1-4任意一项所述的面向定制化评估场景的数据查询语言方法的系统,其特征在于,包括:
6.根据权利要求5所述的系统,其特征在于,所述查询交互前端包括:
7.根据权利要求5所述的系统,其特征在于,所述数据管理后端包括: