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
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
import
Icon
from
"@ant-design/icons"
;
import
{
DIALECT
}
from
"@/components/Studio/conf"
;
const
svgSize
=
'21px'
;
export
const
getIcon
=
(
type
:
string
)
=>
{
switch
(
type
){
case
DIALECT
.
SQL
:
...
...
@@ -22,9 +24,10 @@ export const getIcon = (type: string)=>{
}
};
export
const
FlinkSQLSvg
=
()
=>
(
<
svg
t=
"1640784681443"
className=
"icon"
viewBox=
"0 0 1024 1024"
version=
"1.1"
xmlns=
"http://www.w3.org/2000/svg"
p
-
id=
"6264"
width=
"20px"
height=
"20px"
>
p
-
id=
"6264"
width=
{
svgSize
}
height=
{
svgSize
}
>
<
path
d=
"M821.76 870.4s-5.12 33.28 5.12 48.64l43.52 30.72-2.56 10.24v15.36l10.24 2.56 15.36-2.56 2.56 5.12 7.68 10.24h10.24l10.24-23.04v-10.24l10.24-2.56s69.12-23.04 53.76-48.64l-5.12-2.56s-30.72 12.8-43.52 10.24c0 0-58.88 2.56-87.04-17.92l-30.72-25.6z"
fill=
"#D77083"
p
-
id=
"6265"
></
path
>
...
...
@@ -112,7 +115,7 @@ export const FlinkSQLSvg = () => (
export
const
SqlSvg
=
()
=>
(
<
svg
t=
"1640788645374"
className=
"icon"
viewBox=
"0 0 1024 1024"
version=
"1.1"
xmlns=
"http://www.w3.org/2000/svg"
p
-
id=
"9314"
width=
"20px"
height=
"20px"
>
p
-
id=
"9314"
width=
{
svgSize
}
height=
{
svgSize
}
>
<
path
d=
"M145.621959 0c-44.79888 0-79.998 36.81188-79.998 81.61076v860.77848c0 44.79888 35.19912 81.61076 79.998 81.61076h732.781681a81.969151 81.969151 0 0 0 81.61076-81.61076V324.80468L657.60916 0h-511.987201z"
fill=
"#A4D3EE"
p
-
id=
"9315"
></
path
>
...
...
@@ -123,9 +126,10 @@ export const SqlSvg = () => (
fill=
"#FFFFFF"
p
-
id=
"9317"
></
path
>
</
svg
>
);
export
const
MysqlSvg
=
()
=>
(
<
svg
t=
"1641038977488"
className=
"icon"
viewBox=
"0 0 1024 1024"
version=
"1.1"
xmlns=
"http://www.w3.org/2000/svg"
p
-
id=
"3761"
width=
"24px"
height=
"24px"
>
p
-
id=
"3761"
width=
{
svgSize
}
height=
{
svgSize
}
>
<
path
d=
"M326.357333 333.781333c-12.501333 0-16.896-11.52-18.602666-15.829333a2749.653333 2749.653333 0 0 0-10.709334-17.834667l1.493334-5.973333-3.669334 2.261333c-14.549333-14.506667-8.746667-25.088-4.138666-30.208a24.192 24.192 0 0 1 18.56-8.021333c5.12 0 10.581333 1.408 15.658666 4.096 16 8.490667 25.130667 21.290667 25.6 35.925333-0.469333 10.666667-1.706667 29.824-18.773333 34.773334a20.181333 20.181333 0 0 1-5.418667 0.810666m559.616 565.12c-7.338667 0-12.8-4.266667-16.682666-7.338666-15.146667-11.264-30.122667-18.816-46.08-26.794667-16.469333-8.32-33.322667-16.725333-48.896-28.330667-17.322667-12.885333-36.821333-29.44-50.176-54.058666-2.176-4.010667-8.789333-16.213333-4.138667-27.946667 4.096-10.410667 14.208-14.677333 21.461333-17.066667 22.442667-7.253333 48.512-14.933333 76.458667-16.042666l-1.749333-1.322667c-32.597333-24.448-61.482667-46.122667-96.896-54.613333-48.256-11.434667-69.376-44.245333-83.669334-74.837334a1563.733333 1563.733333 0 0 1-26.496-60.842666c-18.346667-43.605333-37.12-88.32-63.658666-127.573334-42.88-63.402667-97.834667-112.64-163.413334-146.261333-18.090667-9.301333-42.368-19.968-69.248-19.968h-4.48c-21.76 0-40.32-7.125333-56.96-21.845333-13.696-12.074667-31.445333-18.858667-50.261333-26.069334l-8.533333-3.242666a25.258667 25.258667 0 0 0-9.088-2.133334c-4.053333 2.048-6.101333 4.352 0.298666 14.165334 9.173333 14.037333 19.456 28.586667 31.530667 44.458666 21.589333 28.416 32.938667 60.885333 40.362667 86.058667 10.496 35.584 21.930667 63.914667 43.776 86.570667 20.224 21.034667 9.770667 44.458667 2.901333 59.989333l-5.888 2.730667 3.925333 1.664c-18.688 43.733333-18.56 89.856 0.341334 149.461333 1.536 4.693333 4.096 9.642667 6.4 13.824l0.298666 0.554667c2.56-27.306667 5.717333-57.941333 27.306667-83.712 5.205333-8.277333 11.050667-17.834667 22.869333-17.834667 16.896 1.834667 19.968 15.786667 21.162667 21.12 21.674667 58.282667 53.504 108.885333 81.792 152.021333a13.44 13.44 0 0 1 1.152 12.330667 13.397333 13.397333 0 0 1-9.6 7.893333 37.930667 37.930667 0 0 1-7.296 0.768c-15.786667 0-25.642667-10.026667-54.528-41.728-8.576-9.429333-14.762667-20.394667-20.181333-30.037333l-4.181334-7.296c-0.426667 5.290667-0.981333 9.898667-2.176 14.464-6.570667 25.258667-23.552 40.96-44.245333 40.96-12.842667 0-25.6-6.058667-36.864-17.493333-25.344-25.642667-39.296-58.965333-44.032-104.746667-4.693333-45.653333 0.256-88.832 14.762667-128.512 3.968-10.922667 3.968-16.512-3.925334-26.112-26.282667-32.213333-38.912-71.808-49.578666-109.568-7.125333-25.258667-20.394667-45.738667-38.186667-68.693333-13.226667-16.981333-24.874667-32-30.592-51.754667-5.888-20.096-3.2-39.253333 7.466667-53.802667 10.496-14.293333 27.306667-22.186667 47.36-22.357333 42.496 0 75.946667 21.418667 104.064 41.386667l4.608 3.498666c5.205333 4.053333 7.808 5.845333 10.965333 5.845334 88.448 0 152.490667 50.048 210.517333 101.290666a478.037333 478.037333 0 0 1 129.109334 183.04c11.477333 29.013333 25.429333 57.898667 38.912 85.76 6.485333 13.482667 13.141333 27.221333 19.456 40.874667 3.370667 7.253333 8.192 11.648 16.597333 15.104 68.565333 28.16 123.733333 66.517333 168.618667 117.077333 6.4 7.210667 13.354667 16.853333 10.026666 27.733334-3.669333 11.946667-16.725333 15.146667-25.344 17.237333-11.562667 2.858667-23.466667 4.650667-34.986666 6.4-13.226667 1.962667-26.794667 4.010667-39.936 7.808 5.333333 4.778667 11.648 8.234667 17.322666 11.008 26.026667 12.885333 45.056 32.938667 63.402667 52.266667 5.845333 6.186667 10.24 10.88 14.677333 15.317333 16.725333 16.64 9.301333 28.8 6.570667 32.085333a18.432 18.432 0 0 1-14.506667 7.168"
fill=
"#1296db"
p
-
id=
"3762"
></
path
>
...
...
@@ -133,7 +137,7 @@ export const MysqlSvg = () => (
);
export
const
OracleSvg
=
()
=>
(
<
svg
t=
"1640789029266"
className=
"icon"
viewBox=
"0 0 1024 1024"
version=
"1.1"
xmlns=
"http://www.w3.org/2000/svg"
p
-
id=
"11509"
width=
"24px"
height=
"24px"
>
p
-
id=
"11509"
width=
{
svgSize
}
height=
{
svgSize
}
>
<
path
d=
"M670.62528 711.899955h-316.933062c-57.361215 0-103.363076-14.287388-127.492886-71.40166H175.999449c28.292555 71.401661 94.931753 114.228546 177.692769 114.228546h316.545009c82.902126 0 149.541324-42.826885 177.728047-114.228546h-49.847108C773.988356 697.612568 728.021773 711.899955 670.62528 711.899955zM353.727495 312.100045H670.62528c57.361215 0 103.363076 14.287388 127.492886 71.40166h49.847108c-28.186723-71.401661-94.825921-114.228546-177.728047-114.228546h-316.545009c-82.761016 0-149.400214 42.826885-177.692769 114.228546h50.23516c24.12981-57.14955 70.131671-71.401661 127.492886-71.40166zM313.616977 513.569849c0-47.095463-39.193303-85.406828-87.382368-85.406828H151.375754c-48.189065 0-87.382368 38.311365-87.382369 85.406828s39.193303 85.406828 87.382369 85.406828h74.894133c48.189065 0 87.347091-38.346643 87.34709-85.406828z m-207.996141 0c0-24.658973 20.531505-44.73187 45.754918-44.731871h74.894133c25.223413 0 45.754918 20.072898 45.754917 44.731871s-20.531505 44.73187-45.754917 44.73187H151.375754c-25.25869 0-45.754918-20.072898-45.754918-44.73187z m416.73311-22.471768c0-34.71306-28.892273-62.970338-64.416715-62.970338h-124.882351v171.342819H374.647053v-83.325456l79.44493 83.325456h56.867331l-43.779378-45.896028c31.18531-4.409688 55.17401-30.726703 55.17401-62.476453z m-64.416715 22.471768H374.647053V468.837978h83.290178c12.594068 0 22.789265 10.089365 22.789265 22.436491 0.035278 12.27657-10.195198 22.29538-22.789265 22.29538z m170.249216-44.767148h86.500431l41.592173-40.674958h-128.092604c-48.189065 0-87.382368 38.311365-87.382368 85.406828s39.193303 85.406828 87.382368 85.406828h85.442106l41.592173-40.674957h-127.069556c-25.25869 0-45.754918-20.072898-45.754918-44.731871 0.035278-24.658973 20.566783-44.73187 45.790195-44.73187z m188.487684 81.561581v-122.201261h-49.917663v171.025321h143.297206l49.917663-48.788783H816.674131z"
fill=
"#E04E31"
p
-
id=
"11510"
></
path
>
...
...
@@ -141,7 +145,7 @@ export const OracleSvg = () => (
);
export
const
PostGreSqlSvg
=
()
=>
(
<
svg
t=
"1640789293797"
className=
"icon"
viewBox=
"0 0 1024 1024"
version=
"1.1"
xmlns=
"http://www.w3.org/2000/svg"
p
-
id=
"12358"
width=
"20px"
height=
"20px"
>
p
-
id=
"12358"
width=
{
svgSize
}
height=
{
svgSize
}
>
<
path
d=
"M930.56415839 579.12956914c-14.30569336-12.26202276-32.69872793-14.30569336-51.09176337-8.17468154-14.30569336 4.08734121-30.65505732 6.13101182-44.96075156 6.13101094 40.87341035-67.44112734 71.52846768-141.01326563 91.96517373-218.67274424 10.21835214-34.74239854 16.34936396-71.52846768 16.34936396-110.35820831 4.08734121-30.65505732-4.08734121-61.31011552-22.48037578-85.83416102-51.0917625-65.39745674-130.7949126-102.18352588-212.5417333-100.13985528h-6.13101181c-34.74239854 0-69.48479707 6.13101182-102.18352588 14.30569336h-2.04367061c-20.43670518-4.08734121-42.91708096-6.13101182-63.35378525-6.13101182-38.82973974-2.0436706-79.7031501 8.17468242-114.44554864 28.6113876-49.04809277-18.39303457-104.22719648-26.567717-157.36262959-24.52404639-49.04809277 0-98.09618467 20.43670518-132.83858408 55.17910371-36.78606914 38.82973974-55.17910371 98.09618467-53.13543311 181.88667598 4.08734121 36.78606914 10.21835214 73.57213828 18.39303458 108.31453681 12.26202276 53.1354331 26.567717 104.22719648 44.96075156 155.31895898 14.30569336 47.00442217 38.82973974 91.96517286 71.52846767 128.75124288 16.34936396 16.34936396 38.82973974 26.567717 63.35378614 28.61138672 18.39303457 0 34.74239854-8.17468242 49.04809189-20.4367043 12.26202276 14.30569336 28.6113876 22.48037578 47.00442217 26.56771612 24.52404638 6.13101182 49.04809277 8.17468242 73.57213828 4.08734121 12.26202276-2.0436706 22.48037578-6.13101182 32.69872881-10.21835303 0 12.26202276 0 24.52404638 2.0436706 36.78607002-2.0436706 36.78606914 4.08734121 71.52846768 14.30569336 106.27086621 4.08734121 20.43670518 14.30569336 38.82973974 28.61138672 55.17910372 28.6113876 26.567717 67.44112734 36.78606914 104.22719648 28.61138759 38.82973974-6.13101182 75.61580888-26.567717 98.09618468-57.22277431 26.567717-36.78606914 38.82973974-91.96517286 40.87341034-179.84300538 0-4.08734121 2.0436706-8.17468242 2.04367061-12.26202275h6.13101182c34.74239854 2.0436706 69.48479707-4.08734121 100.13985439-16.34936484 24.52404638-10.21835214 47.00442217-26.567717 63.35378613-49.0480919 4.08734121-8.17468242 8.17468242-16.34936396 10.21835304-24.52404639 2.0436706-16.34936396-4.08734121-30.65505732-16.34936397-40.87341035z m-12.26202362 47.00442217c-14.30569336 18.39303457-30.65505732 30.65505732-53.13543311 38.82973975-24.52404638 10.21835214-51.0917625 14.30569336-77.65947949 14.30569336-12.26202276 0-24.52404638-2.0436706-36.78606914-4.08734122-6.13101182 51.0917625-10.21835214 102.18352588-20.43670517 153.27528926-2.0436706 24.52404638-14.30569336 49.04809277-30.65505821 69.48479707-20.43670518 18.39303457-44.96075156 30.65505732-71.52846767 32.69872793-30.65505732 8.17468242-61.31011552 2.0436706-85.83416192-16.34936397-14.30569336-12.26202276-24.52404638-30.65505732-32.69872793-49.04809189-4.08734121-12.26202276-6.13101182-22.48037578-8.17468242-34.74239941-2.0436706-18.39303457-4.08734121-36.78606914-4.08734033-53.13543311-2.0436706-32.69872793-2.0436706-63.35378614-2.04367061-94.00884345-16.34936396 14.30569336-36.78606914 24.52404638-57.22277432 28.6113876-20.43670518 4.08734121-42.91708096 2.0436706-63.35378612-4.08734122-6.13101182-2.0436706-12.26202276-4.08734121-18.39303458-8.17468242-8.17468242-2.0436706-12.26202276-8.17468242-16.34936396-14.30569336-2.0436706-4.08734121-4.08734121-10.21835214-2.04367061-14.30569336 2.0436706-4.08734121 4.08734121-10.21835214 8.17468155-12.26202363 10.21835214-6.13101182 20.43670518-10.21835214 32.6987288-12.26202276 14.30569336-2.0436706 28.6113876-6.13101182 42.91708008-12.26202363 8.17468242-6.13101182 14.30569336-14.30569336 20.43670518-22.4803749v-2.04367061c-18.39303457 0-34.74239854-6.13101182-51.0917625-12.26202363-6.13101182 6.13101182-32.69872793 34.74239854-69.48479708 77.65947949-12.26202276 16.34936396-28.6113876 26.567717-49.04809277 28.6113876-18.39303457 0-34.74239854-8.17468242-47.00442216-20.43670517-30.65505732-34.74239854-51.0917625-75.61580888-65.39745586-118.53288985-16.34936396-53.1354331-30.65505732-104.22719648-40.87341036-155.31895898-8.17468242-34.74239854-14.30569336-67.44112734-18.39303456-102.18352588-4.08734121-77.65947949 14.30569336-128.751242 44.96075068-161.44997081 30.65505732-30.65505732 71.52846768-47.00442217 116.48922011-49.04809188 55.17910371-2.0436706 110.35820742 8.17468242 161.44996992 28.61138671 32.69872793-20.43670518 69.48479707-30.65505732 108.3145377-30.65505733 20.43670518 0 42.91708096 4.08734121 63.35378613 8.17468242 8.17468242-4.08734121 18.39303457-6.13101182 28.61138672-8.17468242 26.567717-6.13101182 51.0917625-8.17468242 77.6594795-10.21835302 77.65947949-2.0436706 151.23161777 30.65505732 200.27971054 91.96517373 12.26202276 20.43670518 18.39303457 47.00442217 16.34936397 71.52846767-2.0436706 34.74239854-8.17468242 69.48479707-16.34936397 104.22719649-22.48037578 85.83416191-59.26644492 167.58098174-108.3145377 243.19679062 2.0436706 2.0436706 4.08734121 2.0436706 6.13101182 4.08734122 28.6113876 6.13101182 57.22277432 6.13101182 85.83416192-2.04367061 10.21835214-4.08734121 22.48037578-2.0436706 32.69872793 2.04367061 4.08734121 4.08734121 8.17468242 10.21835214 8.17468242 16.34936396-6.13101182 0-6.13101182 6.13101182-8.17468242 10.21835303z"
p
-
id=
"12359"
></
path
>
...
...
@@ -161,7 +165,7 @@ export const PostGreSqlSvg = () => (
);
export
const
ClickHouseSvg
=
()
=>
(
<
svg
t=
"1640789681111"
className=
"icon"
viewBox=
"0 0 1152 1024"
version=
"1.1"
xmlns=
"http://www.w3.org/2000/svg"
p
-
id=
"13211"
width=
"20px"
height=
"20px"
>
p
-
id=
"13211"
width=
{
svgSize
}
height=
{
svgSize
}
>
<
path
d=
"M0 896h128v128H0z"
fill=
"#ff0000"
p
-
id=
"13212"
></
path
>
<
path
d=
"M0 0h128v896H0zM256 0h128v1024H256zM512 0h128v1024H512zM768 0h128v1024H768zM1024 416h128v192H1024z"
fill=
"#ffcc00"
p
-
id=
"13213"
></
path
>
...
...
@@ -169,7 +173,7 @@ export const ClickHouseSvg = () => (
);
export
const
DorisSvg
=
()
=>
(
<
svg
t=
"1640789853861"
className=
"icon"
viewBox=
"0 0 1024 1024"
version=
"1.1"
xmlns=
"http://www.w3.org/2000/svg"
p
-
id=
"13678"
width=
"20px"
height=
"20px"
>
p
-
id=
"13678"
width=
{
svgSize
}
height=
{
svgSize
}
>
<
path
d=
"M272.816 43.1136c57.4848-57.4848 150.688-57.4848 208.1728 0l113.136 113.136c57.4848 57.488 57.4848 150.688 0 208.1728l-85.984 85.984a25.6 25.6 0 0 1-36.2048 0L272.816 251.2864c-57.4848-57.4848-57.4848-150.688 0-208.1728z"
fill=
"#14A9CA"
p
-
id=
"13679"
></
path
>
...
...
@@ -182,7 +186,7 @@ export const DorisSvg = () => (
</
svg
>
);
export
const
JavaSvg
=
()
=>
(
<
svg
t=
"1640791080436"
className=
"icon"
viewBox=
"0 0 1024 1024"
version=
"1.1"
xmlns=
"http://www.w3.org/2000/svg"
p
-
id=
"19717"
width=
"20px"
height=
"20px"
>
p
-
id=
"19717"
width=
{
svgSize
}
height=
{
svgSize
}
>
<
path
d=
"M558.08 472.064c48.128 53.248-13.312 103.424-13.312 103.424s119.808-61.44 65.536-139.264c-51.2-71.68-91.136-107.52 122.88-232.448 0 1.024-335.872 86.016-175.104 268.288"
fill=
"#FF0000"
p
-
id=
"19718"
></
path
>
...
...
@@ -202,7 +206,7 @@ export const DorisSvg = () => (
);
export
const
UDFSvg
=
()
=>
(
<
svg
t=
"1640792304032"
className=
"icon"
viewBox=
"0 0 1024 1024"
version=
"1.1"
xmlns=
"http://www.w3.org/2000/svg"
p
-
id=
"28067"
width=
"20px"
height=
"20px"
>
p
-
id=
"28067"
width=
{
svgSize
}
height=
{
svgSize
}
>
<
path
d=
"M234.56 1024a164.288 164.288 0 0 0 150.656-118.848l0.64-2.112c32.512-126.08 84.224-325.888 122.56-471.232h137.152a43.84 43.84 0 1 0 0-87.488h-113.92c12.288-45.76 21.248-78.4 24.768-89.6l3.904-12.48c14.464-46.272 48.384-154.752 100.8-154.752 48.64 0 55.872 70.4 56.192 73.536a45.632 45.632 0 0 0 50.112 40.064 44.8 44.8 0 0 0 43.136-46.912A157.12 157.12 0 0 0 660.928 0C538.496 0 492.544 147.2 470.464 217.6l-3.776 11.904c-4.48 13.952-16.256 57.088-31.616 114.688H271.744a43.84 43.84 0 1 0 0 87.488h140.288c-47.936 182.208-109.952 422.4-116.736 449.088-2.56 6.912-21.696 55.616-60.864 55.616-59.84 0-85.696-78.656-85.952-79.232a47.168 47.168 0 0 0-57.6-29.888 43.456 43.456 0 0 0-32 54.208A193.216 193.216 0 0 0 234.56 1024z"
fill=
"#262626"
p
-
id=
"28068"
></
path
>
...
...
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