System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及软件,具体涉及一种基于fidelius的sql数据分析方法、系统、终端及介质。
技术介绍
1、在基于隐私计算中间件fidelius的数据分析程序开发中,需要开发人员基于fidelius编程模型实现数据分析的逻辑,但对于开发人员而言,sql是他们更为熟悉的数据分析工具。如何方便开发人员基于隐私计算中间件fidelius对用户输入的sql数据进行数据分析是目前需要解决的问题。
技术实现思路
1、针对现有技术中的缺陷,本专利技术提供一种基于fidelius的sql数据分析方法、系统、终端及介质,能对用户输入的sql数据进行解析,建立与fidelius对应的计算图代码和算子代码,便于后续fidelius能正确执行sql语句。
2、第一方面,本专利技术提供的一种基于fidelius的sql数据分析方法,包括:
3、获取用户输入的数据库元信息描述文件,所述元信息描述文件包括数据库表信息和数据库表各个字段信息;
4、获取用户输入的sql查询语句和指定的数据库元信息描述文件;
5、采用clickhouse对sql查询语句进行解析得到原生抽象语法树,对所述原生抽象语法树进行精简处理得到精简抽象语法树;
6、对所述数据库元信息描述文件进行解析得到数据库的数据结构,对数据库的具体数据信息进行读取解析,将读取的数据信息存储到数据结构中,并将数据库的表和字段信息对应到精简抽象语法树的节点上;
7、根据精简抽象语法树生成fi
8、若是,则根据精简抽象语法树和数据库动态生成fidelius算子代码;
9、若否,则使用集成的fidelius算子代码;
10、fidelius根据所述fidelius计算图代码和fidelius算子代码执行解析sql查询语句,得到查询结果。
11、第二方面,本专利技术提供的一种基于fidelius的sql数据分析系统,包括:第一获取模块、第二获取模块、精简处理模块、数据库解析模块、fidelius代码生成模块和sql解析模块,
12、所述第一获取模块用于获取用户输入的数据库元信息描述文件,所述元信息描述文件包括数据库表信息和数据库表各个字段信息;
13、所述第二获取模块用于获取用户输入的sql查询语句和指定的数据库元信息描述文件;
14、所述精简处理模块用于采用clickhouse对sql查询语句进行解析得到原生抽象语法树,对所述原生抽象语法树进行精简处理得到精简抽象语法树;
15、所述数据库解析模块用于对所述数据库元信息描述文件进行解析得到数据库的数据结构,对数据库的具体数据信息进行读取解析,将读取的数据信息存储到数据结构中,并将数据库的表和字段信息对应到精简抽象语法树的节点上;
16、所述fidelius代码生成模块根据精简抽象语法树生成fidelius计算图代码并判断是否需要生成fidelius算子代码,若是,则根据精简抽象语法树和数据库动态生成fidelius算子代码,若否,则使用集成的fidelius算子代码;
17、所述sql解析模块fidelius根据所述fidelius计算图代码和fidelius算子代码执行解析sql查询语句,得到查询结果。
18、第三方面,本专利技术实施例提供的一种智能终端,包括处理器、输入设备、输出设备和存储器,所述处理器分别与输入设备、输出设备和存储器连接,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行上述实施例描述的方法。
19、第四方面,本专利技术实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行上述实施例描述的方法。
20、本专利技术的有益效果:
21、本专利技术实施例提供一种基于fidelius的sql数据分析方法,能对用户输入的sql数据进行解析,建立与fidelius对应的计算图代码和算子代码,便于后续fidelius能正确执行sql语句。实现了sql数据分析的封装,开发人员可以无缝衔接隐私计算的数据分析。
22、本专利技术实施例提供一种基于fidelius的sql数据分析系统、智能终端和计算机可读存储介质,与上述一种基于fidelius的sql数据分析方法出于相同的专利技术构思,具有相同的有益效果。
本文档来自技高网...【技术保护点】
1.一种基于Fidelius的SQL数据分析方法,其特征在于,包括:
2.如权利要求1所述的方法,其特征在于,所述根据精简抽象语法树生成Fidelius计算图代码的具体方法包括:
3.如权利要求2所述的方法,其特征在于,所述设定顺序依次为源数据处理、Filter处理、Output处理和Limit处理。
4.如权利要求1所述的方法,其特征在于,所述动态生成Fidelius算子代码包括:Filter算子、Group算子、Aggregation算子和Join算子,所述Filter算子用于过滤数据,所述Group算子用于根据需要GroupBy的字段将数据分组,所述Aggregation算子用于进行聚合计算,所述Join算子用于处理多表查询。
5.如权利要求1所述的方法,其特征在于,所述集成的Fidelius算子代码包括:Limit算子、Orderby算子和Trim算子,所述Limit算子用于限制SQL数据的输出,所述Orderby算子用于对SQL数据进行排序,所述Trim算子用于获取输入数据中的指定字段。
6.一种基于Fidel
7.如权利要求6所述的系统,其特征在于,所述Fidelius代码生成模块包括Fidelius计算图代码生成单元,所述Fidelius计算图代码生成单元用于分析精简抽象语法树节点包含的操作,根据设定顺序生成所述操作对应的调用代码,所述设定顺序依次为源数据处理、Filter处理、Output处理和Limit处理。
8.如权利要求6所述的系统,其特征在于,所述动态生成Fidelius算子代码包括:Filter算子、Group算子、Aggregation算子和Join算子,所述Filter算子用于过滤数据,所述Group算子用于根据需要GroupBy的字段将数据分组,所述Aggregation算子用于进行聚合计算,所述Join算子用于处理多表查询,集成的Fidelius算子代码包括:Limit算子、Orderby算子和Trim算子,所述Limit算子用于限制SQL数据的输出,所述Orderby算子用于对SQL数据进行排序,所述Trim算子用于获取输入数据中的指定字段。
9.一种智能终端,包括处理器、输入设备、输出设备和存储器,所述处理器分别与输入设备、输出设备和存储器连接,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,其特征在于,所述处理器被配置用于调用所述程序指令,执行如权利要求1-5任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行如权利要求1-5任一项所述的方法。
...【技术特征摘要】
1.一种基于fidelius的sql数据分析方法,其特征在于,包括:
2.如权利要求1所述的方法,其特征在于,所述根据精简抽象语法树生成fidelius计算图代码的具体方法包括:
3.如权利要求2所述的方法,其特征在于,所述设定顺序依次为源数据处理、filter处理、output处理和limit处理。
4.如权利要求1所述的方法,其特征在于,所述动态生成fidelius算子代码包括:filter算子、group算子、aggregation算子和join算子,所述filter算子用于过滤数据,所述group算子用于根据需要groupby的字段将数据分组,所述aggregation算子用于进行聚合计算,所述join算子用于处理多表查询。
5.如权利要求1所述的方法,其特征在于,所述集成的fidelius算子代码包括:limit算子、orderby算子和trim算子,所述limit算子用于限制sql数据的输出,所述orderby算子用于对sql数据进行排序,所述trim算子用于获取输入数据中的指定字段。
6.一种基于fidelius的sql数据分析系统,其特征在于,包括:第一获取模块、第二获取模块、精简处理模块、数据库解析模块、fidelius代码生成模块和sql解析模块,
7.如权利要求6所述的系统,其特征在于,所述fidelius代码生成模块包括fidelius计算图...
【专利技术属性】
技术研发人员:张世泽,范学鹏,汤载阳,王宸敏,曾驭龙,张金波,
申请(专利权)人:北京熠智科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。