采用SparkSQL模式实现http接口调用方法技术

技术编号:27194114 阅读:29 留言:0更新日期:2021-01-31 11:43
本发明专利技术公开了一种采用Spark SQL模式实现http接口调用方法。属于Spark SQL模式实现http接口调用技术领域,提供一种在数据建模实施过程中与超文本传输协议http接口提供的数据源进行交互时维护和管理工作简单。将超文本传输协议调用封装成标准的接口;建模人员在数据库语言的表达式中引用接口,同时分别设置接口的请求头、请求地址和请求参数;将每个请求的返回结果转化成数据集,用于支持建模人员后续使用数据库语言进行分析;在执行查询数据库语言的计算指数函数时,先对数据库语言进行语法解析,生成语法树,其中子例程函数被解析成这棵树的一个节点,此时该节点还处于未解析的执行计划阶段。执行计划阶段。执行计划阶段。

【技术实现步骤摘要】
采用Spark SQL模式实现http接口调用方法


[0001]本专利技术涉及Spark SQL模式实现http接口调用
,具体涉及一种采用Spark SQL模式实现http接口调用方法。

技术介绍

[0002]在数据建模实施过程中需要与超文本传输协议http接口提供的数据源进行交互,为了实现业务模型,只能通过程序来实现,程序获取到数据后并将数据写入数据库,然后再通过据库语言SQL实现数据建模。这种模式对建模实施人员要求比较高,既要会写据库语言SQL,同时还需要会开发程序,或同时需要会写SQL和会写程序的工程师一起参与数据模型实施。
[0003]随着业务的发展,不同类型任务越来越多,相互之间存在不同的依赖,无论是新需求的增加还是修改,导致建模任务的维护和管理工作越来越复杂。

技术实现思路

[0004]本专利技术是为了解决在数据建模实施过程中与超文本传输协议http接口提供的数据源进行交互时维护和管理工作复杂的不足,提供一种在数据建模实施过程中与超文本传输协议http接口提供的数据源进行交互时维护和管理工作简单,可靠性好的采用Spark SQL模式实现http接口调用方法。
[0005]为实现以上目的,本专利技术通过以下技术方案予以实现:
[0006]采用Spark SQL模式实现http接口调用方法,所述方法实现过程如下:
[0007](1)将超文本传输协议调用封装成标准的接口;
[0008](2)建模人员在数据库语言的表达式中引用接口,同时分别设置接口的请求头、请求地址和请求参数;
[0009](3)将每个请求的返回结果转化成数据集,用于支持建模人员后续使用数据库语言进行分析;
[0010](4)在执行查询数据库语言的计算指数函数时,先对数据库语言进行语法解析,生成语法树,其中子例程函数被解析成这棵树的一个节点,此时该节点还处于未解析的执行计划阶段;
[0011](5)在节点匹配到关键词后的表名后,从内存或者外部的计算引擎数据源管理类中去查找该表是否存在;如果该表存在,则此时该表处于逻辑计划阶段;
[0012](6)然后对计算引擎进行基于逻辑计划规则的优化;
[0013](7)将原来的逻辑计划转化成优化后的逻辑计划;接下来通过物理规则对优化后的逻辑计划进行优化;通过物理规则对优化后的逻辑计划进行优化包括保证哈希分区的相同键值的所有行都在同一分区内,并将逻辑计划转换为物理计划;
[0014](8)将语法树的节点处理成各个不同的类型;
[0015](9)然后通过遍历语法树,对语法树的每个节点调用生成代码方法生成java字节
码,生成的java字节码在java虚拟机上运行。
[0016]本方案在数据建模实施过程中与超文本传输协议http接口提供的数据源进行交互时维护和管理工作简单,可靠性好。
[0017]作为优选,在建模人员在数据库语言的表达式中引用接口时,还要为超文本传输协议接口创建超文本传输协议的实现类,此时超文本传输协议的函数将会有三个输入,这三个输入分别是请求地址、方法和参数。
[0018]作为优选,所述三个输入在继承三元表达式类后重新设为空安全值,超文本传输协议接口根据请求地址,方法和参数发起超文本传输协议接口请求,将返回内容经过计算引擎的内置行类处理;
[0019]然后继承时区表达式类,重新获取时区方法和默认获取到的当前时区;
[0020]然后再继承代码反馈式生成类,复用该类的代码生成方法;
[0021]重写表达式类型的返回类型方法,设置超文本传输协议接口调用返回结果的数据类型;
[0022]继承类型检查类,重写输入类型方法,定义各个输入参数类型;重写检查类型方法,判断输入类型,以及输出类型是否满足规定的类型;
[0023]重写表达式类型的调用名称,用户在据库语言中使用表达式对应的名称。
[0024]作为优选,在程序启动超文本传输协议接口时,使用超文本传输协议接口注册表类调用接口注册方法,将超文本传输协议的函数名称与实现类相绑定。
[0025]本专利技术能够达到如下效果:
[0026]本专利技术在数据建模实施过程中与超文本传输协议http接口提供的数据源进行交互时维护和管理工作简单,可靠性好。
附图说明
[0027]图1为本专利技术在执行查询数据库语言SQL的计算指数函数的流程示意图。
具体实施方式
[0028]下面结合附图与实施例对本专利技术作进一步的说明。
[0029]采用Spark SQL模式实现http接口调用方法,参见图1所示,所述方法实现过程如下:
[0030](1)将超文本传输协议http调用封装成标准的http接口;
[0031]该http接口与计算引擎数据库语言Spark SQL模块中的求绝对值函数abs相类似。
[0032](2)建模人员在数据库语言SQL的表达式中引用http接口,同时分别设置http接口的请求头Header、请求地址URL和请求参数params;
[0033](3)将每个请求的返回结果转化成数据集Spark Dataframe,用于支持建模人员后续使用数据库语言SQL进行分析;
[0034](4)在执行查询数据库语言SQL的计算指数函数select func(a)from t1时,先对数据库语言SQL进行语法解析,生成语法树AST tree,其中子例程函数func(a)和t1被解析成这棵树的一个节点TreeNode,此时该节点TreeNode还处于未解析的执行计划阶段Unresolved Logical Plan;
[0035](5)在节点TreeNode匹配到关键词from后的表名后,从内存或者外部的计算引擎spark数据源管理类Catalog中去查找该表是否存在;如果该表存在,则此时该表处于逻辑计划Logical Plan阶段;
[0036](6)然后对计算引擎spark进行基于逻辑计划规则的优化;
[0037]所述逻辑计划规则的优化包括:谓词下推和列裁剪;
[0038](7)将原来的逻辑计划Logical Plan转化成优化后的逻辑计划Optimized Logical Plan;接下来通过物理规则对优化后的逻辑计划进行优化;通过物理规则对优化后的逻辑计划进行优化包括保证哈希分区的相同键值的所有行都在同一分区内,并将逻辑计划转换为物理计划Physical Plans;
[0039](8)将语法树的节点TreeNode处理成各个不同的类型;
[0040]比如func(a)节点被处理成一个表达式类型Expression;
[0041](9)然后通过遍历语法树,对语法树的每个节点调用生成代码方法doGenCode生成java字节码,生成的java字节码在java虚拟机上运行。
[0042]在建模人员在数据库语言SQL的表达式中引用http接口时,还要为超文本传输协议http接口本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.采用Spark SQL模式实现http接口调用方法,其特征在于,所述方法实现过程如下:(1)将超文本传输协议调用封装成标准的接口;(2)建模人员在数据库语言的表达式中引用接口,同时分别设置接口的请求头、请求地址和请求参数;(3)将每个请求的返回结果转化成数据集,用于支持建模人员后续使用数据库语言进行分析;(4)在执行查询数据库语言的计算指数函数时,先对数据库语言进行语法解析,生成语法树,其中子例程函数被解析成这棵树的一个节点,此时该节点还处于未解析的执行计划阶段;(5)在节点匹配到关键词后的表名后,从内存或者外部的计算引擎数据源管理类中去查找该表是否存在;如果该表存在,则此时该表处于逻辑计划阶段;(6)然后对计算引擎进行基于逻辑计划规则的优化;(7)将原来的逻辑计划转化成优化后的逻辑计划;接下来通过物理规则对优化后的逻辑计划进行优化;通过物理规则对优化后的逻辑计划进行优化包括保证哈希分区的相同键值的所有行都在同一分区内,并将逻辑计划转换为物理计划;(8)将语法树的节点处理成各个不同的类型;(9)然后通过遍历语法树,对语法树的每个节点调用生成代码方法生成java字节码,生成的java字节码在java虚拟机上运行。2.根据权利要求1所述的采用Spark...

【专利技术属性】
技术研发人员:王家敏周俊杰
申请(专利权)人:杭州火树科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1