一种基于Flink的实时SQL扩展处理方法及装置制造方法及图纸

技术编号:23149116 阅读:34 留言:0更新日期:2020-01-18 13:29
本发明专利技术提供了一种基于Flink的实时SQL扩展处理方法及装置,其中方法包括:获取SQL语句信息;将SQL语句信息进行分类;如果为SourceTable,则对SQL语句信息进行第一解析,生成SourceTableInfo;根据解析出的SourceTableInfo,创建kafka连接;如果为SideTable,则对SQL语句信息进行第二解析,生成SideTableInfo;根据解析出的SideTableInfo,读取缓存策略属性;如果为SinkTable,则对SQL语句信息进行第三解析,生成SinkTableInfo;根据解析出的SinkTableInfo,创建输出方式;提交到Flink集群。

A real-time SQL extended processing method and device based on Flink

【技术实现步骤摘要】
一种基于Flink的实时SQL扩展处理方法及装置
本专利技术涉及大数据技术数据处理
,尤其涉及一种基于Flink的实时SQL扩展处理方法及装置。
技术介绍
目前,Flink(网页代码标记)是一种互联网广泛使用的实时计算框架,具有流和批统一的抽象,并且基于其的结构特征具有高吞吐和低延迟的特性。不过由于其SQL(StructuredQueryLanguage,结构化查询语言)语法的不完整性。数据开发在使用的过程中需要根据其提供的Api(ApplicationProgramInterface,应用程序接口)接口编写Source和Sink,异常繁琐,并且在需要关联到外部数据源的时候没有提供SQL相关的实现方式,因此数据开发在生产过程中使用开源的Flink直接编写SQL作为实时的数据分析需要额外较大的工作量。
技术实现思路
本专利技术旨在提供一种克服上述问题之一或者至少部分地解决上述任一问题的基于Flink的实时SQL扩展处理方法及装置。为达到上述目的,本专利技术的技术方案具体是这样实现的:<br>本专利技术的一本文档来自技高网...

【技术保护点】
1.一种基于Flink的实时SQL扩展处理方法,其特征在于,包括:/n获取SQL语句信息;/n将所述SQL语句信息进行分类,得到以下至少之一:SourceTable、SideTable和SinkTable;/n如果所述SQL语句信息的类型为SourceTable,则对所述SQL语句信息进行第一解析,生成SourceTableInfo;根据解析出的SourceTableInfo,创建kafka连接;/n如果所述SQL语句信息的类型为SideTable,则对所述SQL语句信息进行第二解析,生成SideTableInfo;根据解析出的SideTableInfo,创建缓存策略属性;/n如果所述SQL语...

【技术特征摘要】
1.一种基于Flink的实时SQL扩展处理方法,其特征在于,包括:
获取SQL语句信息;
将所述SQL语句信息进行分类,得到以下至少之一:SourceTable、SideTable和SinkTable;
如果所述SQL语句信息的类型为SourceTable,则对所述SQL语句信息进行第一解析,生成SourceTableInfo;根据解析出的SourceTableInfo,创建kafka连接;
如果所述SQL语句信息的类型为SideTable,则对所述SQL语句信息进行第二解析,生成SideTableInfo;根据解析出的SideTableInfo,创建缓存策略属性;
如果所述SQL语句信息的类型为SinkTable,则对所述SQL语句信息进行第三解析,生成SinkTableInfo;根据解析出的SinkTableInfo,创建输出方式;
提交到Flink集群。


2.根据权利要求1所述的方法,其特征在于,还包括:定义预设语法;
其中,所述预设语法包括:SOURCE表语法、Sink语法、维表语法以及自定义函数语法;
所述第一解析至少包括利用所述SOURCE表语法进行解析;
所述第二解析至少包括利用所述维表语法进行解析;
所述第三解析至少包括利用所述Sink语法进行解析。


3.根据权利要求1或2所述方法,其特征在于,
所述第一解析包括:解析注册的表名称,解析字段信息,解析输入源kafka连接信息,解析指定的watermarker字段和允许的延迟信息;
第二解析包括:解析注册的表名称,解析字段信息,解析外部数据源的连接信息,解析维表的缓存策略;
第三解析包括:解析注册的表名称,解析字段名称,解析输出的目标连接信息,数据刷新的频率和数据量。


4.根据权利要求3所述的方法,其特征在于,所述维表的缓存策略包括:LRU和None缓存策略和All缓存策略。


5.根据权利要求4所述的方法,其特征在于,
所述创建kafka连接包括:
设置kafka连接的参数,根据填写的字段信息注册Flink的Table;
其中,如果设置了使用EventTime标识,则为当前流指定WaterMarker,根据指定作为EventTime的SourceTable列和最大允许的数据延迟时间生成BoundedOutOfOrdernessTimestampExtractor,并在注册表时添加ROWTIME.ROWTIME字段,作为之后在SQL中对时间操作的字段;
如果未指定EventTime标识,则在注册表时添加PROCTIME.PROCTIME字段;
所述创建缓存策略属性包括:
根据缓存策略的不同,添加不同Operator;其中,如果缓存策略为LRU和None缓存策略,则的添加RichAsyncFunction,如果缓存策略为All缓存策略,则添加RichFlatMapFunction;
生成新的结果DataStream,将所述新的结果DataStream重新注册到StreamTableEnvironment,所述新的结果DataStream字段为事实表字段+维表定义的字段,表名称为实时表名称_维表名称;
将所述新的结果DataStream替换原有的结果DataStream;
所述创建输出方式包括:
创建输出对象,根据填写的不同类型的外部输出目的,创建连接信息,构建输出方法。


6.一种基于Flink的实时SQL扩展处理装置,其特征在于,包括:
Core模块,用于调用以下插件至少之一:Source、Side和Sink插件;
SQL...

【专利技术属性】
技术研发人员:徐超
申请(专利权)人:杭州玳数科技有限公司
类型:发明
国别省市:浙江;33

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

1