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(开发技术)相关的推文

     

  • 相关阅读:
    SpringMVC之@RequestMapping、ThreadLocal、DBCP、JNDI数据源管理
    安全威胁的分类
    软件可靠性的一些关注点
    LibTomMath + vs2008,安装和测试程序
    winxp下,Ice3.4.1 + VS2008_sp1,这个组合安装有点麻烦
    逗号操作符简化代码
    转,F5负载均衡算法及基本原理(Intro to Load Balancing)
    JVM大内存分析,不推荐jmap+jhat,推荐JProfiler
    选择soapUI做性能测试,这就是悲剧的开始
    关于linux LVM的好图 (Logic Volume Management,逻辑卷管理)
  • 原文地址:https://www.cnblogs.com/Springmoon-venn/p/13072492.html
Copyright © 2011-2022 走看看