本发明涉及一种数据可视化查询的方法,具体为基于dsl与sql抽象语法树构建数据可视化查询的方法,属于数据处理。
背景技术:
::1、数据可视化查询是指使用图形、图像和其他视觉元素将数据呈现出来的过程,以便用户能够更直观、更有效地理解和分析数据。数据可视化查询可以帮助用户发现数据中的模式、趋势和关联,从而做出更准确的决策;2、数据可视化查询的工具和平台有很多,例如tableau、power bi、google charts等。这些工具和平台提供了各种可视化图表和仪表板,如柱状图、折线图、饼图、地图、热力图等,以满足不同数据分析和展示需求。3、dsl是“数字用户线路”(digital subscriber line)的缩写,它是一种用于电话接入因特网的技术。dsl通过电话线提供高速的上网服务,它将语音信号和数据信号进行分离,使得用户可以在上网的同时使用电话。4、sql是“结构化查询语言”(structured query language)的缩写,它是一种用于管理和操作关系数据库管理系统的标准编程语言。sql用于执行各种操作,如查询、更新、插入和删除数据库中的数据。5、cte是“公共表达式”(common table expression)的缩写,是一个数据库查询的子句,用于在sql查询中创建一个临时的、只在此查询中可见的命名空间,以便在此命名空间中执行一系列的查询操作,而不会影响到外部的命名空间。6、传统基于sql模板的方法生成数据可视化查询的sql,其基于特定的数据库/olap引擎,既无法灵活应对可视化编辑数据和可视化分析的需求,也无法兼容非标的数据库/olap引擎,且可视化查询sql冗长低效,sql调试困难,可解释性不足,当数据不符合预期时,无法快速定位/调试导致不准确的片段,为此,提出一种基于dsl与sql抽象语法树构建数据可视化查询的方法。技术实现思路1、有鉴于此,本发明提供一种基于dsl与sql抽象语法树构建数据可视化查询的方法,以解决或缓解现有技术中存在的技术问题,至少提供有益的选择。2、本发明实施例的技术方案是这样实现的:一种基于dsl与sql抽象语法树构建数据可视化查询的方法,包括以下步骤:3、s1、构建人机交互界面-供用户选定图表类型及图表对应的数据,并生成图表对应的dsl;4、s2、定义语义层-将dsl解析为相应的dsl语法片段;5、s3、抽象语法树节点转换;6、s4、将抽象语法树节点构建为抽象语法树;7、s5、查询优化-利用查询优化器对抽象语法树进行查询优化;8、s6、抽象语法树转化-语义层通过方言翻译机制及逻辑编译器将抽象语法树转化为数据库/olap引擎可解释、可执行的sql;9、s7、sql提交并执行-将sql提交至对应的数据库/olap引擎执行,获取构建可视化分析图表的数据。10、进一步优选的,所述s1中,图表对应的数据包括对应维度、度量、比对的字段及计算方式;11、其中,维度为x轴,表示分类;度量为y轴,表示聚合。12、进一步优选的,所述s2中,用户提交图表的dsl后,由语义层将dsl解析为相应的dsl片段。13、进一步优选的,所述s3中,利用映射规则将dsl片段转换为抽象语法树节点;14、其中,映射规则为:维度按照dsl声明的转换方法作为group by子句,并作为select item;度量按照dsl声明的聚合方法,作为aggregation子句。15、进一步优选的,所述s4中,按照代数关系将抽象语法树节点构建为抽象语法树。16、进一步优选的,所述s5中,查询优化包括但不限于投影裁剪、谓词裁剪、恒条件剔除和常数转换;17、其中,投影裁剪中,查询优化器会在语义的境况下,将冗余的列投影进行裁剪;18、其中,谓词裁剪中,限制性谓词存在user_id>=1and user_id>=2,因而,可将限制性谓词裁剪为user_id>=2;19、其中,恒条件剔除中,限制性谓词存在user_id=user_id,限制性谓词恒成立,因此,这种限制性恒条件可被完整裁剪;20、其中,常数转换中,限制性谓词存在user_id=10and order_pay_total>=user_id,因为存在user_id=10的限制,order_pay_total>=user_id将被替换为order_pay_total>=10。21、进一步优选的,所述s6中,sql通过方言翻译以后,通用的sql抽象语法树会被转换为特定的抽象语法树。22、进一步优选的,所述s6中,逻辑编译器采用cte的特性进行sql构建,逻辑编译器在抽象语法树上运行,按照不同的数据库/olap引擎的sql语法,将抽象语法书转换为可解释、可执行的sql。23、进一步优选的,所述s7中,通过利用数据可视化系统将获得的sql提交至对应的数据库/olap引擎,并进行执行,获得构建可视化分析图表的数据。24、本发明实施例由于采用以上技术方案,其具有以下优点:25、一、本发明基于dsl及抽象语法树构建数据可视化查询sql,通过定制dsl、dsl与sql抽象语法树节点的模式转换规则,从而实现数据可视化的查询构建,通过基于dsl及抽象语法树实现,相较传统方法更加灵活高效,生成的sql拥有更强的可解释性,对数据库/olap引擎的支持更宽泛。26、二、本发明的逻辑翻编译器采用cte特性进行sql构建,构建产生的sql符合数据建模、数据分析的逻辑流程,具备良好的可解释性及可检查性。27、上述概述仅仅是为了说明书的目的,并不意图以任何方式进行限制。除上述描述的示意性的方面、实施方式和特征之外,通过参考附图和以下的详细描述,本发明进一步的方面、实施方式和特征将会是容易明白的。技术特征:1.一种基于dsl与sql抽象语法树构建数据可视化查询的方法,其特征在于,包括以下步骤:2.根据权利要求1所述的基于dsl与sql抽象语法树构建数据可视化查询的方法,其特征在于:所述s1中,图表对应的数据包括对应维度、度量、比对的字段及计算方式;3.根据权利要求1所述的基于dsl与sql抽象语法树构建数据可视化查询的方法,其特征在于:所述s2中,用户提交图表的dsl后,由语义层将dsl解析为相应的dsl片段。4.根据权利要求3所述的基于dsl与sql抽象语法树构建数据可视化查询的方法,其特征在于:所述s3中,利用映射规则将dsl片段转换为抽象语法树节点;5.根据权利要求4所述的基于dsl与sql抽象语法树构建数据可视化查询的方法,其特征在于:所述s4中,按照代数关系将抽象语法树节点构建为抽象语法树。6.根据权利要求1所述的基于dsl与sql抽象语法树构建数据可视化查询的方法,其特征在于:所述s5中,查询优化包括但不限于投影裁剪、谓词裁剪、恒条件剔除和常数转换。7.根据权利要求1所述的基于dsl与sql抽象语法树构建数据可视化查询的方法,其特征在于:所述s6中,sql通过方言翻译以后,通用的sql抽象语法树会被转换为特定的抽象语法树。8.根据权利要求7所述的基于dsl与sql抽象语法树构建数据可视化查询的方法,其特征在于:所述s6中,逻辑编译器采用cte的特性进行sql构建,逻辑编译器在抽象语法树上运行,按照不同的数据库/olap引擎的sql语法,将抽象语法书转换为可解释、可执行的sql。9.根据权利要求1所述的基于dsl与sql抽象语法树构建数据可视化查询的方法,其特征在于:所述s7中,通过利用数据可视化系统将获得的sql提交至对应的数据库/olap引擎,并进行执行,获得构建可视化分析图表的数据。技术总结本发明提供了一种基于DSL与SQL抽象语法树构建数据可视化查询的方法,包括以下步骤:S1、构建人机交互界面‑供用户选定图表类型及图表对应的数据,并生成图表对应的DSL;S2、定义语义层‑将DSL解析为相应的DSL语法片段;S3、抽象语法树节点转换;S4、将抽象语法树节点构建为抽象语法树;S5、查询优化‑利用查询优化器对抽象语法树进行查询优化;本发明基于DSL及抽象语法树构建数据可视化查询SQL,通过定制DSL、DSL与SQL抽象语法树节点的模式转换规则,从而实现数据可视化的查询构建,通过基于DSL及抽象语法树实现,相较传统方法更加灵活高效,生成的SQL拥有更强的可解释性,对数据库/OLAP引擎的支持更宽泛。技术研发人员:于志杰受保护的技术使用者:北京白龙马云行科技有限公司技术研发日:技术公布日:2024/12/19