开发者社区> 问答> 正文

flink sql平台可以多版本支持吗?

需求背景: 因为不同Flink版本SQL底层实现不相同,同一个带状态的Flink SQL作业目前跨版本升级社区还不支持。所以如果基于Flink SQL开发实时计算平台的话,平台需要支持不同Flink版本。早期的Flink SQL作业用的是1.11,最新的Flink SQL作业采用的是1.13开发的。

而让平台支持不同Flink版本,我能想到有三种实现方案:

  1. 平台直接调用 flink run 或 flink run-application 提交作业 优点:实现简单,每个flink版本都会带这个shell脚本 缺点:受限于脚本提供的功能,像语法检查、格式化sql、获取sql执行计划及sql结构和血缘这些“高级”功能没有在官方脚本中提供(能否完善下呢?),如果要使用的话得自己扩展实现(同样需要自己维护多版本)

  2. 平台调用 flink sql gateway 暴露的 restful api 提交作业 优点:实现简单,通过gateway屏蔽上层应用调用多版本flink api问题 缺点:需要额外扩展开发和部署gateway,目前暂不清楚社区对gateway的定位是什么?只是配合flink jdbc driver使用么?这两项目目前活跃度都不高

  3. 需要维护多个平台版本,像 flink-sql-connector-hive 支持多版本hive那样 优点:现有平台就是基于特定版本flink api开发的,改动小,需要抽取公用接口 缺点:需要“复制”平台多份实现以支持不同flink版本,开发和维护量比较大

目前,我暂时prefer方案2,可能不对,也可能还有更优的我没想到,欢迎各位大佬们给点建议。*来自志愿者整理的flink邮件归档

展开
收起
彗星halation 2021-12-02 11:43:10 1307 0
1 条回答
写回答
取消 提交回答
  • 另外一个选择是flink on zeppelin,可以调用flink on zeppelin的rest api,把zeppelin当做是flink

    job server, zeppelin天然支持flink 1.10之后的所有版本。*来自志愿者整理的FLINK邮件归档

    2021-12-02 11:55:42
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
SQL Server在电子商务中的应用与实践 立即下载
GeoMesa on Spark SQL 立即下载
原生SQL on Hadoop引擎- Apache HAWQ 2.x最新技术解密malili 立即下载