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

Dlink ?一款交互式FlinkSQL开发平台,第1张

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

Dlink介绍
  • 一、Dlink ?一款交互式FlinkSQL开发平台
    • 1.背景
    • 2.简介
    • 3.原理
    • 4.功能
    • 5.优势
      • 5.1 支持 Local、Standalone、Yarn-Session、Yarn-Per-Job、Yarn-Application 五种执行模式的 FlinkSQL 提交
      • 5.2 支持用户 Jar 管理与提交
      • 5.3 支持仿 IDEA 的 FlinkSQL 开发控制台
      • 5.4 支持作业 SavePoint 触发、恢复及其管理
      • 5.5 支持 Flink 社区所有连接器及插件
      • 5.6 支持 Flink 多版本的切换
      • 5.7 支持 sql-client 的所有语法及增强语法
      • 5.8 支持批流的 SELECt 及 SHOW 结果预览
      • 5.9 支持 Session 执行模式的会话管理
      • 5.10 支持外部 Flink 集群的任务运维
      • 5.11 支持语法及逻辑校验
      • 5.12 支持血缘分析
      • 5.13 支持执行历史
      • 5.14 支持异常反馈
      • 5.15 支持文档管理
      • 5.16 支持集群管理
      • 5.17 支持外部数据源管理
      • 5.18 支持用户验证及管理
      • 5.19 部署简单门槛低
      • 5.20 对接或改造成本低
      • 5.21 代码及设计紧随时代发展
      • 5.22 项目目标定位专业
      • 5.23 潜力无限
      • 5.24 支持 K8S 的任务执行方式
      • 5.25 支持 UDF 的管理
      • 5.26 支持 RPC 架构部署
      • 5.27 支持 Flink 多版本集群实例同时托管
      • 5.28 支持多种调度平台接口
      • 5.29 完善功能细节
    • 6.运行截图
      • 6.1 登录页
      • 6.2 首页
      • 6.3 Studio SQL 开发提示与补全
      • 6.4 Studio 语法和逻辑检查
      • 6.5 Studio 批流SELECT预览
      • 6.6 Studio 异常反馈
      • 6.7 Studio 进程监控
      • 6.8 Studio 执行历史
      • 6.9 Studio 数据回放
      • 6.10 Studio SavePoint 管理
      • 6.11 Studio 血缘分析
      • 6.12 Studio 函数浏览
      • 6.13 Studio 共享会话
      • 6.14 集群管理
      • 6.15 集群配置管理
      • 6.16 数据源管理


一、Dlink ?一款交互式FlinkSQL开发平台 1.背景

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

对于开源的 Flink 平台主要有 DTStack 的 FlinkStreamSQL及Flinkx、zhp8341 的 flink-streaming-platform-web、streamxhub 的 streamx 以及 apache zeppelin 等项目,其中每个平台的各有所长。

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

开源地址:
https://github.com/DatalinkDC/dlink
https://gitee.com/DatalinkDC/dlink

2.简介

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 在未来批流一体的发展趋势下潜力无限。

3.原理


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

4.功能

以下功能为 dlink-0.4.0 的功能展示。

概要细节基本管理作业管理FlinkSQL 及 Savepoint 管理Flink 集群实例及配置管理用户 Jar 管理外部数据源管理文档管理系统配置用户管理FlinkSQL 语法增强SQL 片段语法AGGTABLE 语法语句集支持 sql-client 所有语法FlinkSQL 交互式开发会话 Catalog 查询及管理SQL 语法检查SQL 执行图校验上下文元数据自动提示与补全支持自定义代码补全规则关键字高亮结构折叠与缩略图支持选中提交布局拖拽SELECT、SHOW等语法数据预览血缘分析 及 StreamGraph 预览Flink 任务运维standalone SQL提交yarn session SQL提交yarn per-job SQL提交yarn application SQL提交yarn application Jar提交作业 Cancel作业 SavePoint Cancel,Stop,Trigger作业从 SavePoint 恢复多种机制元数据功能Flink Catelog 浏览(connector)外部数据源元数据浏览共享会话支持 Session 集群 Catelog 持久与浏览支持共享与私有会话Flink 集群中心手动注册 Session 集群自动注册及回收 per-job 和 application 集群 5.优势 5.1 支持 Local、Standalone、Yarn-Session、Yarn-Per-Job、Yarn-Application 五种执行模式的 FlinkSQL 提交

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

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

5.2 支持用户 Jar 管理与提交

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

5.3 支持仿 IDEA 的 FlinkSQL 开发控制台

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

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

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

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

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

5.6 支持 Flink 多版本的切换

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

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

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

语句片段:

sf:=select * from;tb:=student;
${sf} ${tb}
##效果等同于
select * from student

AGGTABLE 表值聚合:

CREATE AGGTABLE aggdemo AS
SELECt myField,value,rank
FROM MyTable
GROUP BY myField
AGG BY TOP2(value) as (value,rank);
5.8 支持批流的 SELECT 及 SHOW 结果预览

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

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

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

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

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

5.11 支持语法及逻辑校验

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

5.12 支持血缘分析

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

5.13 支持执行历史

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

5.14 支持异常反馈

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

5.15 支持文档管理

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

5.16 支持集群管理

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

5.17 支持外部数据源管理

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

5.18 支持用户验证及管理

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

5.19 部署简单门槛低

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

5.20 对接或改造成本低

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

5.21 代码及设计紧随时代发展

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

5.22 项目目标定位专业

相比于其他开源项目,Dlink 的目标更加专一且专业。

5.23 潜力无限

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

5.24 支持 K8S 的任务执行方式

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

5.25 支持 UDF 的管理

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

5.26 支持 RPC 架构部署

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

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

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

5.28 支持多种调度平台接口

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

5.29 完善功能细节

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

6.运行截图 6.1 登录页

6.2 首页

6.3 Studio SQL 开发提示与补全

6.4 Studio 语法和逻辑检查

6.5 Studio 批流SELECT预览

6.6 Studio 异常反馈

6.7 Studio 进程监控

6.8 Studio 执行历史

6.9 Studio 数据回放

6.10 Studio SavePoint 管理

6.11 Studio 血缘分析

6.12 Studio 函数浏览

6.13 Studio 共享会话

6.14 集群管理

6.15 集群配置管理

6.16 数据源管理

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5679068.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存