一、简介
Dlink 为 Apache Flink 而生。它是一个 FlinkSQL Studio,可以在线开发、预览、执行 FlinkSQL,支持 Flink 官方所有语法及其增强语法,并且可以远程提交 Sql 作业到集群,无打包过程。
需要注意的是,Dlink 它更专注于 FlinkSQL 的应用,而非 DataStream 。在开发过程中您不会看到任何一句 java、scala 或者 python。所以,它的目标是基于 FlinkSQL 来实现批流一体的实时计算平台,成为 FlinkSQL 的最佳搭档。
与此同时,Dlink 也是 DataLink 数据中台生态的核心组件。
DataLink 开源项目及社区正在建设,希望本项目可以帮助你更快发展。
二、背景
前天,Dlink 发布了 0.1.0 版本,该版本具备以下主要功能:
- FlinkSql Studio 基本功能
- Flink 集群管理
- FlinkSql 任务管理
- FlinkSql 文档管理
但该版本主要为功能测试,在扩展性上较差。在社区成员的一些建议下,0.2.0 版本迅速发布,即将带来更好的扩展性与体验。
三、更新内容
- FlinkSql Studio 代码底层架构进行大优化
- 支持以 SPI 的方式扩展任意 Connector,同 Flink 官网
- 提供了 dlink-connector-jdbc,额外支持 Oracle 和 ClickHouse 读写,该扩展包可直接上传 Flink 集群的 lib 进行远程使用,无需重新编译
- 提供了 dlink-client-1.12,支持 Flink 1.12.0 多集群的远程使用与本地隔离使用,1.10、1.11 和 1.13 集群可能存在问题
- 优化了 FlinkSQL 执行与提交到远程集群的任务名,默认为作业的中文别名
- 优化了目录的操作,点击节点即可打开作业,无须右键打开
- 优化了执行结果信息,添加了任务名的展示
- 对 Studio 界面进行了一定的提示优化
四、新特性解读
支持 Flink 官方 Connector 扩展方式
该特性优势主要体现在您可以将 Flink 集群上已经扩展好的 Connector 直接放入 Dlink 的 lib 目录下,重启 Dlink 后,即可在本地环境与集群环境同时体验新 Connector 的效果。
由于 Dlink 远程提交 Sql 任务的原理是在本地进行 FlinkSQL 的解析与执行优化,最终通过 Client 提交执行图到集群,然而该方式需要 Dlink 具备新 Connector 的依赖引用进行 TableFactory 的创建与校验。0.1.0 版本需要在 pom 中引用相应的 Flink Connector 依赖,扩展性极差。而 0.2.0 版本对底层代码进行了重构与解耦,您可以通过在 lib 目录下上传相应的 Connector 来实现相应的数据源读写。
提供了 dlink-connector-jdbc
dlink-connector-jdbc.jar 是对 flink-connector-jdbc_*.jar 的增强,主要体现为支持 Oracle 和 ClickHouse 的读写。其中,ClickHouse 的更新与删除需要依赖 ClickHouse 的 MergeTree及其扩展引擎进行。该依赖可以直接上传到 Flink 集群进行使用。
提供了 dlink-client-1.12.jar
dlink-client-1.12.jar 是对 Flink 1.12.4 的增强,内含片段机制、执行图获取等接口,并进行了本地与远程环境的封装,未来将提供更多增强特性,如表值聚合函数 AGGTABLE 、表级与字段级血缘分析等特性。目前通过该依赖向其他大版本的 Flink 集群提交任务可能存在问题。未来将提供 1.13 版本的 Client。
Studio 的交互优化
对 Studio 的优化主要体现在任务提交时会自动设置任务名,仅限 1.12.0 。
以及修复了一些前端 bug。
五、安装包获取
百度网盘:
链接:https://pan.baidu.com/s/1B6VakkZ-o-3fnz_NR4Tk7g
提取码:0200
六、部署
应用结构
代码语言:javascript复制config/ -- 配置文件
|- application.yml
lib/ -- 外部依赖及Connector
|- dlink-client-1.12.jar -- 必需
|- dlink-connector-jdbc.jar
|- flink-connector-jdbc_2.11-1.12.4.jar
|- flink-csv-1.12.4.jar
|- flink-json-1.12.4.jar
|- mysql-connector-java-8.0.21.jar
sql/
|- dlink.sql -- Mysql初始化脚本
auto.sh -- 启动停止脚本
dlink-admin.jar -- 程序包
修改配置文件
配置数据库地址。
执行与停止
代码语言:javascript复制# 启动
sh auto.sh start
# 停止
sh auto.sh stop
# 重启
sh auto.sh restart
# 状态
sh auto.sh status
七、源码贡献者
aiwenmo
lewnn
八、特别感谢
zhihui-ge
zhb
九、效果图
首页
Studio 执行信息
Studio 数据预览
集群中心
十、未来
未来,Dlink 将紧跟 Flink 官方社区发展,为推广及发展 Flink 的应用而奋斗。
Dlink 将后续不断完善 Studio,打造 FlinkSQL 的最佳搭档的形象。 当然元数据、时间与依赖调度、血缘分析、影响分析、数据地图、监控预警等核心功能将逐步上线。
与此同时,DataLink 数据中台将同步发展,未来将提供开源的企业级数据中台解决方案。