前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Dlink ?一款FlinkSQL交互式开发平台

Dlink ?一款FlinkSQL交互式开发平台

作者头像
文末丶
发布2021-12-27 13:03:25
1.5K0
发布2021-12-27 13:03:25
举报
文章被收录于专栏:DataLink数据中台

一、背景

目前 Flink 社区正如火如荼的发展,但苦于没有一款适合 Flink SQL 界面化开发的工具,于是增加了 Flink 的门槛与成本。虽然官方提供了 SQL Client,但仍有很多局限与不方便。

对于开源的 Flink 平台主要有 DTStack 的 FlinkStreamSQL及Flinkx、zhp8341 的 flink-streaming-platform-web、streamxhub 的 streamx 以及 apache zeppelin 等项目,其中每个平台的各有所长,若做比较的话,还请关注后续文章。

本文将为您带来一款全新的创新型的交互式 FlinkSQL 开发平台—— Dlink。

二、简介

Dlink 为 Apache Flink 而生,让 Flink SQL 更加丝滑。它是一个交互式的 FlinkSQL Studio,可以在线开发、补全、校验 、执行、预览 FlinkSQL,支持 Flink 官方所有语法及其增强语法,并且可以同时对多 Flink 集群实例进行提交、停止、SavePoint 等运维操作,如同您的 IntelliJ IDEA For Flink SQL。

需要注意的是,Dlink 它更专注于 FlinkSQL 的应用,而不是 DataStream。在开发过程中您不会看到任何一句 java、scala 或者 python。所以,它的目标是基于 100% FlinkSQL 来实现批流一体的实时计算平台。

站在巨人肩膀上开发与创新,Dlink 在未来批流一体的发展趋势下潜力无限。

三、原理

其原理并非本文的核心内容,一图带过。

四、功能

概要

细节

基本管理

作业管理

FlinkSQL 及 SavePoint 管理

Flink 集群实例及配置管理

用户 Jar 管理

外部数据源管理

文档管理

系统配置

用户管理

FlinkSQL 语法增强

SQL 片段语法

AGGTABLE 语法

语句集

支持 sql-client 所有语法

FlinkSQL 交互式开发

会话 Catalog 查询及管理

SQL 语法检查

SQL 执行图校验

上下文元数据自动提示与补全

支持自定义代码补全规则

关键字高亮

结构折叠与缩略图

布局拖拽

SELECT和SHOW等语法结果预览

血缘分析

StreamGraph 预览

Flink 任务运维

Local SQL 提交

Standalone SQL 提交

Yarn Session SQL 提交

Yarn Per-Job SQL 提交

Yarn Application SQL 提交

Yarn Application Jar 提交

作业 Cancel

作业 SavePoint Cancel,Stop,Trigger

作业从 SavePoint 恢复多种机制

元数据功能

Flink Catalog 浏览(Connector)

外部数据源元数据浏览

共享会话

支持 Session 集群 Catalog 持久与浏览

支持共享与私有会话

Flink 集群中心

手动注册 Session 集群

自动注册及回收 per-job 和 application 集群

五、特性

支持 Local、Standalone、Yarn-Session、Yarn-Per-Job、Yarn-Application 五种执行模式的 FlinkSQL 提交

Dlink 内置 Flink 的 Local 环境,可以在环境隔离下进行语法校验、计算血缘关系、预览StreamGraph、生成 JobGraph 以及提交FlinkSQL 任务。Dlink 对 Flink 进行的语法增强以及其他处理在所有模式下都是生效的,所以您可以轻松的把 FlinkSQL 切换到其他的执行模式下,常用于生产与测试集群隔离下的开发及调试辅助。详情请见《Dlink On Yarn 三种 Flink 执行方式的实践》。

后续版本将开发 K8S 的相关支持。

支持用户 Jar 管理与提交

Dlink 也支持用户编译的可执行 Jar 的管理与提交。当前版本下您需要把需要提交的 Jar 注册到 dlink 中,dlink便可以提交相关配置到 Yarn 进行任务提交。

支持仿 IDEA 的 FlinkSQL 开发控制台

Dlink 的最大亮点就是支持 FlinkSQL 的交互式开发,您可以通过网页进行 FlinkSQL 的开发与调试,主要包含布局拖拽、关键字高亮、自动提示与补全、语法校验、StreamGraph 预览、血缘分析、作业及执行配置、SELECT及SHOW预览、SQL 提交、任务管理等其他功能。

支持作业 SavePoint 触发、恢复及其管理

Dlink 支持对 FlinkSQL 作业 和 Jar 作业进行 SavePoint 的 trigger、stop、cancel 操作,以及最近一次、最早一次、指定一次的自动恢复机制,当然也记录并管理了所产生的所有 SavePoint 信息。

支持 Flink 社区所有连接器及插件

由于 Dlink 是基于 Flink 源码二次开发的交互式开发工具,所以理论上它可以支持 Flink 的所有特性及插件,甚至您可以将您修改编译后的Flink源码轻易地接入 Dlink。

支持 Flink 多版本的切换

Dlink 支持 Flink 1.11、1.12、1.13、1.14 间版本的运行环境切换。

支持 sql-client 的所有语法及增强语法

Dlink 可以看作是一个 sql-client 的 web 版,不过它的功能远超 sql-client 所开放的功能。Dlink 提供语句片段、 AGGTABLE 表值聚合语法以及语句集提交。

语句片段:

代码语言:javascript
复制
sf:=select * from;tb:=student;
${sf} ${tb}
##效果等同于
select * from student

AGGTABLE 表值聚合:

代码语言:javascript
复制
CREATE AGGTABLE aggdemo AS
SELECT myField,value,rank
FROM MyTable
GROUP BY myField
AGG BY TOP2(value) as (value,rank);

支持批流的 SELECT 及 SHOW 结果预览

Dlink 如同 sql-client 一样,可以实时查看 Select 和 Show 语句的执行结果,并且支持表格查询、历史回溯。

支持 Session 执行模式的会话管理

Dlink 可以基于 Session 集群来创建共享与私有会话,可以在团队开发中共享及管理 Catalog 环境,便于协作排查问题。

支持外部 Flink 集群的任务运维

Dlink 可以对外部 Flink 集群实例进行托管,统一进行任务运维。

支持语法及逻辑校验

Dlink 可以对 FlinkSQL 进行执行环境中的语法及逻辑校验。

支持血缘分析

Dlink 支持基于 StreamGraph 的血缘分析计算及展示。

支持执行历史

Dlink 支持对所有通过 Dlink 提交的任务进行历史归档及管理。

支持异常反馈

Dlink 可以将 Flink 语句在执行过程中的异常完整的反馈到前端页面。

支持文档管理

Dlink 提供文档管理,可以用于使用查询、自动补全等功能。不再需要担心字段有没有敲错、函数用法有没有记错等。

支持集群管理

Dlink 支持对外部的 Flink 集群实例进行注册、管理等操作,也可以对 perjob 与 application 任务创建的集群同步自动注册及回收。

支持外部数据源管理

Dlink 支持对外部数据源的管理,以便用于查询其元数据、生成 FlinkSQL 或者自动加载 Catalog。

支持用户验证及管理

Dlink 提供了简易的用户登录授权及管理。

部署简单门槛低

Dlink 部署极为简单,支持依赖 Mysql 和 Nginx ,使用门槛底。

对接或改造成本低

Dlink 后台基于 SpringBoot 框架与 Flink 源码编写,代码逻辑简单,对接或改造成本低。前端基于 react 的 Ant Design Pro 开发,修改简单且易扩展。

代码及设计紧随时代发展

Dlink 的代码依赖与设计思路紧随各大社区发展,暂不会出现Flink源码版本或功能落后的限制局面。

项目目标定位专业

相比于其他开源项目,从 UI 到功能,Dlink 的设计和目标更加专一且专业。

潜力无限

站在巨人肩膀上开发与创新,Dlink 在未来批流一体的发展趋势下潜力无限。

六、未来计划

支持 K8S 的任务执行方式

目前 Dlink 不支持 K8S 的 Flink 集群托管,后续将支持。

支持 UDF 的管理

目前 Dlink 的Session模式下 UDF 没有进行管理且加载机制需要重启实例,后续将改进。

支持 RPC 架构部署

目前 Dlink 存在单点故障及依赖冲突问题,后续将通过 rpc 来改进。

支持 Flink 多版本集群实例同时托管

目前 Dlink 无法同时加载多版本的集群环境,后续将通过 rpc 来改进。

支持多种调度平台接口

目前 Dlink 不支持定时任务等功能,后续将开发调度接口与简易的定时任务管理。

完善功能细节

目前 Dlink 很多功能细节没有开发或者存在问题,后续将逐步完善。

七、运行截图

登录页

首页

Studio SQL 开发提示与补全

Studio 语法和逻辑检查

Studio 批流SELECT预览

Studio 异常反馈

Studio 进程监控

Studio 执行历史

Studio 数据回放

Studio SavePoint 管理

Studio 血缘分析

Studio 函数浏览

Studio 共享会话

集群管理

集群配置管理

数据源管理

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-12-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Dinky开源 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 支持 Local、Standalone、Yarn-Session、Yarn-Per-Job、Yarn-Application 五种执行模式的 FlinkSQL 提交
  • 支持用户 Jar 管理与提交
  • 支持仿 IDEA 的 FlinkSQL 开发控制台
  • 支持作业 SavePoint 触发、恢复及其管理
  • 支持 Flink 社区所有连接器及插件
  • 支持 Flink 多版本的切换
  • 支持 sql-client 的所有语法及增强语法
  • 支持批流的 SELECT 及 SHOW 结果预览
  • 支持 Session 执行模式的会话管理
  • 支持外部 Flink 集群的任务运维
  • 支持语法及逻辑校验
  • 支持血缘分析
  • 支持执行历史
  • 支持异常反馈
  • 支持文档管理
  • 支持集群管理
  • 支持外部数据源管理
  • 支持用户验证及管理
  • 部署简单门槛低
  • 对接或改造成本低
  • 代码及设计紧随时代发展
  • 项目目标定位专业
  • 潜力无限
  • 支持 K8S 的任务执行方式
  • 支持 UDF 的管理
  • 支持 RPC 架构部署
  • 支持 Flink 多版本集群实例同时托管
  • 支持多种调度平台接口
  • 完善功能细节
相关产品与服务
大数据
全栈大数据产品,面向海量数据场景,帮助您 “智理无数,心中有数”!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档