Git Product home page Git Product logo

dlink's Introduction

Dlink

简介

Dlink 为 Apache Flink 而生。它是一个 FlinkSQL Studio,可以在线开发、预览、调试 FlinkSQL,支持 Flink 官方所有语法及其增强语法,并且可以远程提交 Sql 作业到集群,无打包过程。

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

与此同时,Dlink 也是 DataLink 数据中台生态的核心组件。

DataLink 开源项目及社区正在建设,希望本项目可以帮助你更快发展。

由于发展需要,更换了项目地址 https://github.com/DataLinkDC/dlink

原理

功能

注意:已完成只表明核心功能完成,不包括细节优化。

概要 进展
Studio FlinkSQL 作业管理 已完成
FlinkSQL 编辑器 已完成
运行信息 已完成
查询结果 已完成
历史记录 已完成
函数浏览 已完成
执行配置 已完成
会话创建与共享 已完成
连接器管理 已完成
同步执行 已完成
异步提交 已完成
函数自动补全 敬请期待
任务详情 敬请期待
任务审计 敬请期待
集群总览 敬请期待
集群任务 敬请期待
元数据查询 敬请期待
FlinkSQL 运行指标 敬请期待
表级血缘分析 敬请期待
字段级血缘分析 敬请期待
任务进程 敬请期待
示例与技巧文档 敬请期待
FlinkSQL 执行图 敬请期待
远程任务停止 敬请期待
任务恢复 敬请期待
UDF注册 敬请期待
更改对比 敬请期待
Create Table 生成 敬请期待
Insert 生成 敬请期待
AGGTABLE 语法 敬请期待
SQL 翻译 敬请期待
智能 Select 模式 敬请期待
自动补全元数据 敬请期待
任务反压和倾斜提示 敬请期待
流任务数据预览 敬请期待
... 欢迎提议
集群中心 集群注册与管理 已完成
心跳检测 已完成
修改与删除审计 敬请期待
集群信息 敬请期待
历史任务检索 敬请期待
启动与停止 敬请期待
文档中心 FlinkSQL 函数文档管理 已完成
FlinkSQL 示例文档 敬请期待
FlinkSQL 调优文档 敬请期待
用户中心 用户管理 敬请期待
角色管理 敬请期待
登录授权 敬请期待
数据源中心 数据源注册与管理 敬请期待
心跳检测 敬请期待
元数据查询 敬请期待
数据查询 敬请期待
质量分析 敬请期待
调度中心 定时调度任务管理 敬请期待
依赖血缘调度任务管理 敬请期待
调度日志 敬请期待
监控中心 Flink任务监控 敬请期待
集群监控 敬请期待
每日报表 敬请期待
数据地图 检索中心 敬请期待
任务总览 敬请期待
血缘总览 敬请期待
元数据应用总览 敬请期待
集群总览 敬请期待
数据分析 简易图表 敬请期待
导入导出 敬请期待
Open API ... 欢迎梳理
其他 ... 欢迎提议

部署

最新版本

dlink-0.2.0

从安装包开始

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
|- ojdbc6-11.2.0.3.jar
sql/ 
|- dlink.sql --Mysql初始化脚本
auto.sh --启动停止脚本
dlink-admin.jar --程序包

解压后结构如上所示,修改配置文件内容。

在Mysql数据库中创建数据库并执行初始化脚本。

执行以下命令管理应用。

sh auto.sh start
sh auto.sh stop
sh auto.sh restart
sh auto.sh status

从源码编译

项目目录

dlink -- 父项目
|-dlink-admin -- 管理中心
|-dlink-client -- Client 中心
| |-dlink-client-1.12 -- Client-1.12 实现
|-dlink-connectors -- Connectors 中心
| |-dlink-connector-jdbc -- Jdbc 扩展
|-dlink-core -- 执行中心
|-dlink-doc -- 文档
| |-bin -- 启动脚本
| |-config -- 配置文件
| |-sql -- sql脚本
|-dlink-web -- React 前端

前端打包

npm run build

前端打包后的 dlink-web/dist 目录下的内容放到 dlink-admin 的 static 下或者使用 Nginx 代理。

后台编译打包

maven clean install -Dmaven.test.skip=true

扩展Connector

将 Flink 集群上已扩展好的 Connector 直接放入 Dlink 的 lib 下,然后重启即可。 定制 Connector 过程同 Flink 官方一样。

扩展其他版本的Flink

Flink 的版本取决于 lib 下的 dlink-client-1.12.jar。 当前版本默认为 Flink 1.12.4 API。 向其他版本的集群提交任务可能存在问题,未来将实现 1.13、1.11、1.10.

源码质量一般问题

利用一个周写的项目所有代码,而且React从零边学边写,还请海涵~(> ^ <)~后续版本将优化代码逻辑。

使用手册

基础使用

登录

当前版本用户名和密码在配置文件中配置。

集群中心

注册Flink集群地址,格式为 host:port ,用英文逗号分隔。

新增和修改的等待时间较长,是因为需要重新计算最新的 JM 地址。

心跳检测为手动触发,会更新集群状态与 JM 地址。

Studio

  1. 在左侧目录区域创建文件夹或任务。
  2. 在中间编辑区编写 FlinkSQL 。
  3. 在右侧配置执行参数。
  4. Fragment开启后,可以这样写,为了您方便:
sf:=select * from;tb:=student;
${sf} ${tb}
##效果等同于
select * from student
  1. MaxRowNum 为预览的最大集合长度,默认100,最大9999,当前版本防止您作死。
  2. SavePointPath 当前版本暂不可用。
  3. Flink集群与共享会话构成了唯一的 Catalogue ,即您可以通过自定义一个会话 key,然后将当前会话 key 告诉您的战友,那他可以用该 key 访问您在集群上的 Catalogue信息与缓存。当然会话数量有限制,最大256*0.75,未来版本会开放设置。
  4. 连接器为 Catalogue 里的表信息,清除会销毁当前会话。
  5. Local 模式请使用少量测试数据,真实数据请使用远程集群。
  6. 执行 SQL 时,如果您选中了部分SQL,则会执行选中的内容,否则执行全部内容。
  7. 小火箭的提交功能是异步提交当前任务保存的FlinkSQL及配置到集群。无法提交草稿。
  8. 执行信息或者历史中那个很长很长的就是集群上的 JobId。
  9. 草稿是无法被异步远程提交的,只能同步执行。
  10. 灰色按钮代表近期将实现。

使用技巧

(=。=)~ 敬请期待。

常见问题及解决

(=。=)~ 敬请期待。

技术栈

Apache Flink

Mybatis Plus

ant-design-pro

Monaco Editor

SpringBoot

交流与贡献

欢迎您加入社区交流分享,也欢迎您为社区贡献自己的力量。

QQ社区群:543709668,申请备注 “ Dlink ”,不写不批哦

微信社区群:添加微信号 wenmo_ai 邀请进群,申请备注 “ Dlink ”,不写不批哦

公众号:DataLink数据中台

邮箱:[email protected]

运行截图

登录页

首页

Studio 执行信息

Studio 数据预览

Studio 异常反馈

Studio 执行提示

Studio 执行历史

Studio 函数浏览

集群中心

文档中心

dlink's People

Contributors

aiwenmo avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.