Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
D
dlink
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
zhaowei
dlink
Commits
1dc3420c
Commit
1dc3420c
authored
Jan 04, 2022
by
godkaikai
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
支持非分离部署与页面优化
parent
d8db52d0
Changes
14
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
85 additions
and
96 deletions
+85
-96
README.md
README.md
+20
-10
pom.xml
dlink-admin/pom.xml
+8
-3
SaTokenConfigure.java
...n/src/main/java/com/dlink/configure/SaTokenConfigure.java
+1
-1
AbstractDBQuery.java
...c/main/java/com/dlink/metadata/query/AbstractDBQuery.java
+0
-5
IDBQuery.java
...base/src/main/java/com/dlink/metadata/query/IDBQuery.java
+0
-8
ClickHouseQuery.java
...c/main/java/com/dlink/metadata/query/ClickHouseQuery.java
+0
-12
MySqlQuery.java
...ql/src/main/java/com/dlink/metadata/query/MySqlQuery.java
+0
-4
OracleQuery.java
...e/src/main/java/com/dlink/metadata/query/OracleQuery.java
+0
-6
PostgreSqlQuery.java
...c/main/java/com/dlink/metadata/query/PostgreSqlQuery.java
+0
-7
routes.ts
dlink-web/config/routes.ts
+24
-23
index.tsx
dlink-web/src/components/Studio/StudioTree/index.tsx
+1
-1
icon.tsx
dlink-web/src/components/Studio/icon.tsx
+13
-9
index.less
dlink-web/src/components/Studio/index.less
+11
-0
menu.ts
dlink-web/src/locales/zh-CN/menu.ts
+7
-7
No files found.
README.md
View file @
1dc3420c
...
...
@@ -4,7 +4,7 @@
实时即未来,Dlink 为 Apache Flink 而生,让 Flink SQL 纵享丝滑。
Dlink 是一个
交互式的 FlinkSQL Studio,可以在线开发、补全、校验 、执行
、预览 FlinkSQL,支持 Flink 官方所有语法及其增强语法,并且可以同时对多 Flink 集群实例进行提交、停止、SavePoint 等运维操作,如同您的 IntelliJ IDEA For Flink SQL。
Dlink 是一个
专业的 FlinkSQL Studio,可以在线开发、补全、校验 、执行、调试
、预览 FlinkSQL,支持 Flink 官方所有语法及其增强语法,并且可以同时对多 Flink 集群实例进行提交、停止、SavePoint 等运维操作,如同您的 IntelliJ IDEA For Flink SQL。
需要注意的是:Dlink 更专注于 FlinkSQL 的应用,而不是 DataStream。在开发过程中您不会看到任何一句 java、scala 或者 python。所以,它的目标是基于 100% FlinkSQL 来实现批流一体的实时计算平台。
...
...
@@ -82,6 +82,10 @@ Dlink 是一个交互式的 FlinkSQL Studio,可以在线开发、补全、校
| | | 新增 savepoint 触发接口 | 0.5.0 |
| 关于 | 关于 Dlink | 版本更新记录 | 0.4.0 |
## 优势
## 部署
### 版本
...
...
@@ -120,14 +124,15 @@ plugins/
|- flink-table_2.11-1.13.3.jar
|- mysql-connector-java-8.0.21.jar
sql/
|- dlink.sql --Mysql初始化脚本
|- dlink.sql -- Mysql初始化脚本(首次部署执行这个)
|- dlink_history.sql -- Mysql各版本及时间点升级脚本
auto.sh --启动停止脚本
dlink-admin.jar --程序包
```
解压后结构如上所示,修改配置文件内容。lib 文件夹下存放 dlink 自身的扩展文件,plugins 文件夹下存放 flink 及 hadoop 的官方扩展文件。其中 plugins 中的所有 jar 需要根据版本号自行下载并添加,才能体验完整功能,当然也可以放自己修改的 Flink 源码编译包。extends 文件夹只作为扩展插件的备份管理,不会被 dlink 加载。
解压后结构如上所示,修改配置文件内容。lib 文件夹下存放 dlink 自身的扩展文件,plugins 文件夹下存放 flink 及 hadoop 的官方扩展文件
( 如果plugins下引入了flink-shaded-hadoop-3-uber 或者其他可能冲突的jar,请手动删除内部的 javax.servlet 等冲突内容)
。其中 plugins 中的所有 jar 需要根据版本号自行下载并添加,才能体验完整功能,当然也可以放自己修改的 Flink 源码编译包。extends 文件夹只作为扩展插件的备份管理,不会被 dlink 加载。
在Mysql数据库中创建
数据库并执行初始化脚本
。
在Mysql数据库中创建
dlink 数据库并执行初始化脚本 dlink.sql
。
执行以下命令管理应用。
...
...
@@ -137,9 +142,12 @@ sh auto.sh stop
sh auto.sh restart
sh auto.sh status
```
前端快捷访问(推荐):
如果plugins下引入了flink-shaded-hadoop-3-uber 的jar,请手动删除内部的 javax.servlet 后既可以访问默认 8888 端口号(如127.0.0.1:8888),正常打开前端页面。
前端 Nginx 部署:
将 html 文件夹上传至 nginx 的 html 文件夹下,修改 nginx 配置文件并重启。
前后端分离部署—— Nginx 部署(可选):
Nginx 如何部署请见百度或谷歌。
将 html 文件夹上传至 nginx 的 html 文件夹下或者指定 nginx 配置文件的静态资源绝对路径,修改 nginx 配置文件并重启。
```
shell
server
{
...
...
@@ -183,7 +191,7 @@ sh auto.sh status
1.
server.listen 填写前端访问端口
2.
proxy_pass 填写后端地址如 http://127.0.0.1:8888
3.
将 html 文件夹下打包好的前端资源上传到 nginx 的 html 文件夹中,
重启 nginx
,访问即可。
3.
将 html 文件夹下打包好的前端资源上传到 nginx 的 html 文件夹中,
如果 nginx 已经启动,则执行 nginx -s reload 重载配置
,访问即可。
### 从源码编译
...
...
@@ -205,9 +213,9 @@ dlink -- 父项目
|-
dlink
-
core
--
执行中心
|-
dlink
-
doc
--
文档
|
|-
bin
--
启动脚本
|
|-
bug
--
bug
反馈
|
|-
config
--
配置文件
|
|-
doc
--
使用文档
|
|-
extends
--
Docker
K8S
模板
|
|-
sql
--
sql
脚本
|-
dlink
-
executor
--
执行中心
|-
dlink
-
extends
--
扩展中心
...
...
@@ -241,11 +249,11 @@ mvn clean install -Dmaven.test.skip=true
#### 扩展Connector及UDF
将 Flink 集群上已扩展好的 Connector 和 UDF 直接放入 Dlink 的
lib 或者
plugins 下,然后重启即可。定制 Connector 过程同 Flink 官方一样。
将 Flink 集群上已扩展好的 Connector 和 UDF 直接放入 Dlink 的 plugins 下,然后重启即可。定制 Connector 过程同 Flink 官方一样。
#### 扩展Metadata
遵循SPI。
遵循SPI。
请参考 dlink-meta-mysql 的实现。
#### 扩展其他版本的Flink
...
...
@@ -329,6 +337,8 @@ AGG BY TOP2(value) as (value,rank);
7.[
Dlink On Yarn 三种 Flink 执行方式的实践
](
https://github.com/DataLinkDC/dlink/blob/main/dlink-doc/doc/DlinkOnYarn%E4%B8%89%E7%A7%8DFlink%E6%89%A7%E8%A1%8C%E6%96%B9%E5%BC%8F%E7%9A%84%E5%AE%9E%E8%B7%B5.md
)
8.[
Dlink 在 Flink-mysql-cdc 到 Doris 的实践
](
https://gitee.com/DataLinkDC/dlink/blob/main/dlink-doc/doc/Dlink%E5%9C%A8Flink-mysql-cdc%E5%88%B0Doris%E7%9A%84%E5%AE%9E%E8%B7%B5.md
)
#### 常见问题及解决
期待您提出问题。
...
...
dlink-admin/pom.xml
View file @
1dc3420c
...
...
@@ -126,6 +126,11 @@
<groupId>
com.dlink
</groupId>
<artifactId>
dlink-gateway
</artifactId>
</dependency>
<dependency>
<groupId>
com.dlink
</groupId>
<artifactId>
dlink-metadata-mysql
</artifactId>
<version>
0.5.0-SNAPSHOT
</version>
</dependency>
<!--<dependency>
<groupId>com.dlink</groupId>
<artifactId>dlink-metadata-clickhouse</artifactId>
...
...
@@ -211,7 +216,7 @@
</configuration>
</plugin>-->
<
!--<
plugin>
<plugin>
<groupId>
org.apache.maven.plugins
</groupId>
<artifactId>
maven-resources-plugin
</artifactId>
<version>
${maven.resource.version}
</version>
...
...
@@ -227,14 +232,14 @@
<overwrite>
true
</overwrite>
<resources>
<resource>
<!– 因为dlink-web打包目录在项目跟目录,所以从这里复制 –>
<!-- 因为dlink-web打包目录在项目跟目录,所以从这里复制 -->
<directory>
../dlink-web/dist
</directory>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
-->
</plugin>
</plugins>
<finalName>
${project.artifactId}-${project.version}
</finalName>
</build>
...
...
dlink-admin/src/main/java/com/dlink/configure/SaTokenConfigure.java
View file @
1dc3420c
...
...
@@ -18,7 +18,7 @@ public class SaTokenConfigure implements WebMvcConfigurer {
public
void
addInterceptors
(
InterceptorRegistry
registry
)
{
// 注册Sa-Token的路由拦截器
registry
.
addInterceptor
(
new
SaRouteInterceptor
())
.
addPathPatterns
(
"/
*
*"
)
.
addPathPatterns
(
"/
api/
*"
)
.
excludePathPatterns
(
"/api/login"
)
.
excludePathPatterns
(
"/openapi/**"
);
}
...
...
dlink-metadata/dlink-metadata-base/src/main/java/com/dlink/metadata/query/AbstractDBQuery.java
View file @
1dc3420c
...
...
@@ -11,11 +11,6 @@ import java.sql.SQLException;
**/
public
abstract
class
AbstractDBQuery
implements
IDBQuery
{
@Override
public
boolean
isKeyIdentity
(
ResultSet
results
)
throws
SQLException
{
return
false
;
}
@Override
public
String
[]
columnCustom
()
{
return
null
;
...
...
dlink-metadata/dlink-metadata-base/src/main/java/com/dlink/metadata/query/IDBQuery.java
View file @
1dc3420c
...
...
@@ -114,12 +114,4 @@ public interface IDBQuery {
* 自定义字段名称
*/
String
[]
columnCustom
();
/**
* 判断主键是否为identity,目前仅对mysql进行检查
*
* @param results ResultSet
* @return 主键是否为identity
* @throws SQLException ignore
*/
boolean
isKeyIdentity
(
ResultSet
results
)
throws
SQLException
;
}
dlink-metadata/dlink-metadata-clickhouse/src/main/java/com/dlink/metadata/query/ClickHouseQuery.java
View file @
1dc3420c
...
...
@@ -31,48 +31,36 @@ public class ClickHouseQuery extends AbstractDBQuery {
return
"db"
;
}
@Override
public
String
tableName
()
{
return
"name"
;
}
@Override
public
String
tableComment
()
{
return
"comment"
;
}
@Override
public
String
columnName
()
{
return
"name"
;
}
@Override
public
String
columnType
()
{
return
"type"
;
}
@Override
public
String
columnComment
()
{
return
"comment"
;
}
@Override
public
String
columnKey
()
{
return
"KEY"
;
}
@Override
public
boolean
isKeyIdentity
(
ResultSet
results
)
throws
SQLException
{
return
"auto_increment"
.
equals
(
results
.
getString
(
"Extra"
));
}
@Override
public
String
isNullable
()
{
return
"NULL"
;
...
...
dlink-metadata/dlink-metadata-mysql/src/main/java/com/dlink/metadata/query/MySqlQuery.java
View file @
1dc3420c
...
...
@@ -38,8 +38,4 @@ public class MySqlQuery extends AbstractDBQuery {
return
"Database"
;
}
@Override
public
boolean
isKeyIdentity
(
ResultSet
results
)
throws
SQLException
{
return
"auto_increment"
.
equals
(
results
.
getString
(
"Extra"
));
}
}
dlink-metadata/dlink-metadata-oracle/src/main/java/com/dlink/metadata/query/OracleQuery.java
View file @
1dc3420c
...
...
@@ -42,37 +42,31 @@ public class OracleQuery extends AbstractDBQuery {
return
"OWNER"
;
}
@Override
public
String
tableName
()
{
return
"TABLE_NAME"
;
}
@Override
public
String
tableComment
()
{
return
"COMMENTS"
;
}
@Override
public
String
columnName
()
{
return
"COLUMN_NAME"
;
}
@Override
public
String
columnType
()
{
return
"DATA_TYPE"
;
}
@Override
public
String
columnComment
()
{
return
"COMMENTS"
;
}
@Override
public
String
columnKey
()
{
return
"KEY"
;
...
...
dlink-metadata/dlink-metadata-postgresql/src/main/java/com/dlink/metadata/query/PostgreSqlQuery.java
View file @
1dc3420c
...
...
@@ -17,7 +17,6 @@ public class PostgreSqlQuery extends AbstractDBQuery {
return
"SELECT A.tablename, obj_description(relfilenode, 'pg_class') AS comments FROM pg_tables A, pg_class B WHERE A.schemaname='"
+
schemaName
+
"' AND A.tablename = B.relname"
;
}
@Override
public
String
columnsSql
(
String
schemaName
,
String
tableName
)
{
return
"SELECT A.attname AS name,format_type (A.atttypid,A.atttypmod) AS type,col_description (A.attrelid,A.attnum) AS comment,\n"
+
...
...
@@ -30,37 +29,31 @@ public class PostgreSqlQuery extends AbstractDBQuery {
return
null
;
}
@Override
public
String
tableName
()
{
return
"tablename"
;
}
@Override
public
String
tableComment
()
{
return
"comments"
;
}
@Override
public
String
columnName
()
{
return
"name"
;
}
@Override
public
String
columnType
()
{
return
"type"
;
}
@Override
public
String
columnComment
()
{
return
"comment"
;
}
@Override
public
String
columnKey
()
{
return
"key"
;
...
...
dlink-web/config/routes.ts
View file @
1dc3420c
...
...
@@ -38,45 +38,46 @@ export default [
icon: 'task',
component: './Task',
},*/
{
path
:
'/taskcenter/jar'
,
name
:
'jar'
,
icon
:
'code-sandbox'
,
component
:
'./Jar'
,
},
],
},
{
path
:
'/
clusters
'
,
name
:
'
clusters
'
,
icon
:
'
cluster
'
,
path
:
'/
registration
'
,
name
:
'
registration
'
,
icon
:
'
appstore
'
,
routes
:
[
{
path
:
'/
clusters
/cluster'
,
path
:
'/
registration
/cluster'
,
name
:
'cluster'
,
icon
:
'cluster'
,
component
:
'./Cluster'
,
},
{
path
:
'/
clusters
/clusterConfiguration'
,
path
:
'/
registration
/clusterConfiguration'
,
name
:
'clusterConfiguration'
,
icon
:
'setting'
,
component
:
'./ClusterConfiguration'
,
},
{
path
:
'/registration/jar'
,
name
:
'jar'
,
icon
:
'code-sandbox'
,
component
:
'./Jar'
,
},
{
path
:
'/registration/database'
,
name
:
'database'
,
icon
:
'database'
,
component
:
'./DataBase'
,
},
{
path
:
'/registration/document'
,
name
:
'document'
,
icon
:
'container'
,
component
:
'./Document'
,
},
],
},
{
path
:
'/database'
,
name
:
'database'
,
icon
:
'database'
,
component
:
'./DataBase'
,
},
{
path
:
'/document'
,
name
:
'document'
,
icon
:
'container'
,
component
:
'./Document'
,
},
{
path
:
'/'
,
redirect
:
'/welcome'
,
...
...
dlink-web/src/components/Studio/StudioTree/index.tsx
View file @
1dc3420c
...
...
@@ -144,7 +144,7 @@ const StudioTree: React.FC<StudioTreeProps> = (props) => {
result
.
then
(
result
=>
{
let
newTabs
=
tabs
;
let
newPane
:
any
=
{
title
:
node
!
.
name
,
title
:
<>
{
node
!
.
icon
}
{
node
!
.
name
}
</>
,
key
:
node
!
.
taskId
,
value
:(
result
.
datas
.
statement
?
result
.
datas
.
statement
:
''
),
closable
:
true
,
...
...
dlink-web/src/components/Studio/icon.tsx
View file @
1dc3420c
This diff is collapsed.
Click to expand it.
dlink-web/src/components/Studio/index.less
View file @
1dc3420c
...
...
@@ -30,6 +30,17 @@
.ant-tabs-top > .ant-tabs-nav, .ant-tabs-bottom > .ant-tabs-nav, .ant-tabs-top > div > .ant-tabs-nav, .ant-tabs-bottom > div > .ant-tabs-nav {
margin: 0;
}
.ant-tabs-card.ant-tabs-small>.ant-tabs-nav .ant-tabs-tab {
padding: 4px 8px;
}
.ant-tabs-small>.ant-tabs-nav .ant-tabs-tab {
padding: 5px 0;
font-size: 14px;
}
.ant-tabs-editable-card .ant-tabs-tab .anticon {
margin-right: 4px;
vertical-align: text-top;
}
/* --- 水平 tabs --- end */
/* --- card 内偏移样式 --- start */
#studio_card > .ant-card-body {
...
...
dlink-web/src/locales/zh-CN/menu.ts
View file @
1dc3420c
...
...
@@ -50,16 +50,16 @@ export default {
'menu.editor.mind'
:
'脑图编辑器'
,
'menu.editor.koni'
:
'拓扑编辑器'
,
'menu.demo'
:
'Demo 开发模板'
,
'menu.
clusters'
:
'集群
中心'
,
'menu.
clusters
.cluster'
:
'集群实例'
,
'menu.
clusters
.clusterConfiguration'
:
'集群配置'
,
'menu.
database'
:
'数据源中心
'
,
'menu.
registration'
:
'注册
中心'
,
'menu.
registration
.cluster'
:
'集群实例'
,
'menu.
registration
.clusterConfiguration'
:
'集群配置'
,
'menu.
registration.database'
:
'数据源管理
'
,
'menu.studio'
:
'FlinkSql IDE'
,
'menu.flinksqlstudio'
:
'FlinkS
ql
Studio'
,
'menu.flinksqlstudio'
:
'FlinkS
QL
Studio'
,
'menu.taskcenter'
:
'作业中心'
,
'menu.taskcenter.task'
:
'作业管理'
,
'menu.
taskcenter
.jar'
:
'Jar 管理'
,
'menu.
document'
:
'文档中心
'
,
'menu.
registration
.jar'
:
'Jar 管理'
,
'menu.
registration.document'
:
'文档管理
'
,
'menu.settings'
:
'系统设置'
,
'menu.dev.flink'
:
'Flink 计算框架'
,
'menu.dev.flink.docs'
:
'官方文档'
,
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment