[发明专利]一种基于Flink的实时SQL扩展处理方法及装置在审
申请号: | 201910902237.1 | 申请日: | 2019-09-24 |
公开(公告)号: | CN110704474A | 公开(公告)日: | 2020-01-17 |
发明(设计)人: | 徐超 | 申请(专利权)人: | 杭州玳数科技有限公司 |
主分类号: | G06F16/242 | 分类号: | G06F16/242 |
代理公司: | 32231 常州佰业腾飞专利代理事务所(普通合伙) | 代理人: | 李珍 |
地址: | 310030 浙江省杭州市西湖区*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 解析 读取 缓存策略 扩展处理 输出方式 集群 创建 分类 | ||
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;
所述创建输出方式包括:
创建输出对象,根据填写的不同类型的外部输出目的,创建连接信息,构建输出方法。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州玳数科技有限公司,未经杭州玳数科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910902237.1/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种数据库查询方法和装置
- 下一篇:一种ETL加载表结构的比对方法及系统