zoukankan      html  css  js  c++  java
  • 【开源】基于 Flink 1.10.1 的 SQL 提交程序

    从 Flink 1.9 SQL 功能可以稳定生产开始,就开始做 Flink SQL 相关的内容,到现在也有一段时间了,对 flink sql 还是有很多想法的,也有很多源码相关的内容一直想研究。

    不过这段时间,工作上有些变动,所以很多时候都不想动弹(可能就是因为懒),所以这段时间更新频率越来越低了,主要是没什么新的产出,刚好基于之前的一些想法,在 github 上弄了个开源项目 sqlSubmit (https://github.com/springMoon/sqlSubmit) ,基于 Flink 1.10.1 的 SQL 提交程序。 目的是为了暂时替代 Flink sql-client 的功能,目前 sql-client 的功能还不完善,对 sql 语法的支持与 Table API 和 SQL 不太一样。

    关于 sqlSubmit,设想是这样的: sqlSubmit 程序就像一个普通的 flink 任务一样,打成 jar 包,放到有 flink 安装程序的服务器上,也像启动正常 flink 任务一样 启动,和一般任务不同的是,这个任务需要传入一个 sql 脚本路径作为参数,sqlSubmit 程序去读取对于的 sql 脚本内容,分段解析,然后调用 StreamTableEnvironment 的 sqlUpdate 方法,依次执行所有sql,最后调用 StreamExecutionEnvironment 的 execute 方法提交任务到对应集群(目前应该只有 standalone 和 yarn )。

    目标:在 flink 的 sql-client 还不太完善的时候,起到替代作用,可以使用纯 SQL 完成各种简单的实时ETL/流表关联/流流关联功能,只需要编写对应的sql 脚本,调用 sqlSubmit 程序,提交即可(还有个想法是,加入查看 yarn 集群上 session/yarn-cluster 模式 的 application 和 flink job 的简单管理,比如:查看app 与 job 的对应关系、查看 job 状态、触发saveopint、cancel 任务等)。

    开发计划: 目前还在开发中,版本是 0.1,功能主要是基于 hive catalog,做了些解析 sql 和配置化的工作,还有UDF demo。初步功能开发完成后,会添加一些可以使用的 sql demo 脚本(各种 connector、ETL、流表管理、流流管理等),同时版本会变为 1.0 (还有个想法是跟着 Flink 的 大版本走用 1.10 )。关于Flink 的版本,一般来说会使用 Flink 最新的 release 版本。

    关于使用: 做这个开源项目的 目的就是把我自己研究Flink 的 SQL 转化为具体的代码,但是很多内容我这里是没有应用场景,所以只能提供一些初级的 demo,所以非常欢迎各路大佬来使用,发现问题,一起改进(如果感兴趣也有时间,可以留言加入,非常欢迎)。

    说明:个人水平有限,开发能力也不怎么样,所以代码质量不佳,还请各位大佬见谅,如果有什么问题,请留言指正,一定尽快解决

    欢迎关注Flink菜鸟公众号,会不定期更新Flink(开发技术)相关的推文

     

  • 相关阅读:
    如何解决MathPage.wll或MathType.dll文件找不到问题
    2-构建模型
    R语言 ur.df函数(2)
    平稳过程趋势项变点的 CUSUV 检验 秦瑞兵,郭娟
    时间序列的弱相依与强相依
    Cent OS|使用httpd发布网页
    C++练习 | 基于栈的中缀算术表达式求值(double类型
    C++练习 | 不使用头插法逆转单链表
    C++练习 | 单链表的创建与输出(结构体格式)
    C++练习 | 最长公共字符串(DP)
  • 原文地址:https://www.cnblogs.com/Springmoon-venn/p/13072492.html
Copyright © 2011-2022 走看看