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 数据源管理

Dlink ?一款交互式FlinkSQL开发平台相关推荐

  1. 几款主流快速开发平台比较

    几款主流快速开发平台比较 云捷配快速开发平台 官网:http://www.yunjiepei.com 云捷配是一款功能强大的可视化快速开发平台,也是一款随需而配的应用搭建平台,有.net和Java版本 ...

  2. 几款Web快速开发平台比较

    Putdb WebBuilder 官网:http://www.putdb.com WebBuilder是一款开源的跨平台.数据库和浏览器的可视化Web应用开发平台.WebBuilder使用了多项最新的 ...

  3. 写代码太累,找一款低代码开发平台吧

    现代社会变化太快,一个好想法,如果不尽快落地,很快就会被其他公司抢先了或者错过了行情.软件行业尤其如此,因为传统开发程序的方法耗时长.成本高,还没等你开发出来,要么其他公司做出了类似产品,要么因长时间 ...

  4. 米尔STM32MP135核心板 又一款入门级嵌入式开发平台

    自2007年意法半导体(ST)推出STM32首款Cortex-M内核 MCU,十几年来,ST在MCU领域的发展是飞速向前的.而2019年ST发布了全新的STM32MPU系列产品线,STM32MP1作为 ...

  5. 一款JAVA快速开发平台,多项目整合,给开发提提速

    快速开发平台是目前比较流行的软件二次开发工具,利用相关平台,对于简单的企业管理软件,仅需拖拽即可配置:对于复杂的个性化需求,仅需IT人员编辑少量的逻辑代码也可完成.所覆盖管理软件包括OA.ERP.CR ...

  6. 广州蓝景介绍 — 什么是“低代码开发平台”以及国内外最受欢迎的低代码平台

    前言 众所周知,国际知名的信息技术研究和分析公司Gartner曾预言,到2022年,50%以上的公司将采用低代码开发平台,来进行企业应用定制.以下是由广州蓝景介绍,国内外最受欢迎的低代码开发平台有哪些 ...

  7. 低代码开发平台_如何挑选最适合你的低代码开发平台

    根据Forrester研究报告,不论是成熟大型的,或是新的小规模的低代码开发平台供应商,每年都在以50%的增长率快速的发展中.在众多的低代码开发平台里,挑选最适合企业的才是至关重要的. 在选择低代码开 ...

  8. 无代码开发平台 有哪些?

    国外的无代码开发平台可谓五花八门,但国内的无代码开发对我们来说可能普遍陌生,很多程序员甚至不屑甚至抵制无代码开发技术.我也认为没有代码只能完成一些简单的功能需求.复杂的功能需求无法完成,影响不大.当我 ...

  9. 快速构建企业级应用的开发平台

    随着信息化的推进,数字化应用需求逐渐增多,业务变化更加敏捷,对数字化应用开发周期和功能迭代速度提出更高要求.企业对定制化应用的需求也日渐增长.这对于技术负责人来说,这既是机遇也是挑战:如何才能在有限的 ...

  10. “模型驱动”还不够!企业级低代码开发平台系统架构解密

    企业级应用是企业软件应用中的一个类别,被称为软件开发领域的"明珠".典型的企业级应用通常可以分为三个大类,即支撑企业核心业务的应用系统(如生产制造业的MES.交通运输业的TMS). ...

最新文章

  1. Python数字类型及操作汇总(入门级)
  2. 【Stage3D学习笔记续】山寨Starling(八):核心优化(批处理)的实现
  3. Python selenium根据class定位页面元素,xpath定位
  4. java setcharat,Java StringBuffer setCharAt()方法
  5. 高并发负载均衡(二):LVS 的 DR,TUN,NAT 网络模型推导
  6. 显示数量_SOLIDWORKS 标注螺纹不显示数量?Why
  7. php实现mysql分表
  8. 集成测试还原数据库_项目学生:分片集成测试数据
  9. javafx 使用_使用JavaFX AnimationTimer
  10. NOIP模拟测试20「周·任·飞」
  11. 通过思科构造局域网_cisco设备构建典型局域网
  12. node.js查询oracle,nodejs操作oracle数据库示例
  13. 这些面试题你需要知道
  14. C++实现经典四阶龙格库塔法解一阶微分方程
  15. 合抱之木,生于毫末。九层之台,起于累土。千里之行,始于足下
  16. 数字经济进入2.0时代 浙里有为共赢新“基”遇
  17. 【渝粤题库】陕西师范大学151213 公司战略与风险管理作业(专升本)
  18. 网络Socket编程
  19. Groovy(Java笨狗)系列--Class,Scripts
  20. 在QT中使用MySQL数据库

热门文章

  1. 股票历史数据下载梳理汇总(一)
  2. idea+Springboot在控制台打印sql语句
  3. vs中的opt文件包含了整个宇宙
  4. 嵌入式linux软件/驱动开发工程师需要哪些知识
  5. 什么软件可以搜C语言题答案,C语言题库(带答案)-排版Word版
  6. 天行数据API智能机器人接口
  7. 单片机c语言 oxfe,单片机C语言程序设计实训100例——基于8051+Proteus仿真-程序.docx...
  8. CSS权威指南(4)
  9. truetype字体怎么转换成普通字体_win10肿么安装truetype字体
  10. gimp 抠图_gimp抠图教程:gimp快速实现抠图效果