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
62957187
Commit
62957187
authored
Jun 15, 2021
by
godkaikai
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
0.2.2-rc1
parent
06be59e1
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
466 additions
and
49 deletions
+466
-49
README.md
README.md
+26
-27
pom.xml
dlink-admin/pom.xml
+0
-15
BannerInitializer.java
.../main/java/com/dlink/common/banner/BannerInitializer.java
+1
-1
FlinkAggTable在Dlink的应用.md
dlink-doc/doc/FlinkAggTable在Dlink的应用.md
+418
-0
index.tsx
dlink-web/src/components/Footer/index.tsx
+1
-1
index.tsx
dlink-web/src/components/Studio/StudioMenu/index.tsx
+1
-1
index.tsx
dlink-web/src/components/Studio/StudioSetting/index.tsx
+1
-2
Welcome.tsx
dlink-web/src/pages/Welcome.tsx
+18
-2
No files found.
README.md
View file @
62957187
...
...
@@ -20,17 +20,17 @@ DataLink 开源项目及社区正在建设,希望本项目可以帮助你更
| 域 | 概要 | 进展 |
| :--------: | :-------------------: | :------: |
| Studio | FlinkSQL 作业管理 |
已完成
|
| | FlinkSQL 编辑器 |
已完成
|
| | 运行信息 |
已完成
|
| | 查询结果 |
已完成
|
| | 历史记录 |
已完成
|
| | 函数浏览 |
已完成
|
| | 执行配置 |
已完成
|
| | 会话创建与共享 |
已完成
|
| | 连接器管理 |
已完成
|
| | 同步执行 |
已完成
|
| | 异步提交 |
已完成
|
| Studio | FlinkSQL 作业管理 |
0.1.0
|
| | FlinkSQL 编辑器 |
0.1.0
|
| | 运行信息 |
0.1.0
|
| | 查询结果 |
0.1.0
|
| | 历史记录 |
0.1.0
|
| | 函数浏览 |
0.1.0
|
| | 执行配置 |
0.1.0
|
| | 会话创建与共享 |
0.1.0
|
| | 连接器管理 |
0.1.0
|
| | 同步执行 |
0.1.0
|
| | 异步提交 |
0.1.0
|
| | 函数自动补全 | 敬请期待 |
| | 任务详情 | 敬请期待 |
| | 任务审计 | 敬请期待 |
...
...
@@ -49,20 +49,20 @@ DataLink 开源项目及社区正在建设,希望本项目可以帮助你更
| | 更改对比 | 敬请期待 |
| | Create Table 生成 | 敬请期待 |
| | Insert 生成 | 敬请期待 |
| | AGGTABLE 语法 |
敬请期待
|
| | AGGTABLE 语法 |
0.2.2
|
| | SQL 翻译 | 敬请期待 |
| | 智能 Select 模式 | 敬请期待 |
| | 自动补全元数据 | 敬请期待 |
| | 任务反压和倾斜提示 | 敬请期待 |
| | 流任务数据预览 | 敬请期待 |
| | ... | 欢迎提议 |
| 集群中心 | 集群注册与管理 |
已完成
|
| | 心跳检测 |
已完成
|
| 集群中心 | 集群注册与管理 |
0.1.0
|
| | 心跳检测 |
0.1.0
|
| | 修改与删除审计 | 敬请期待 |
| | 集群信息 | 敬请期待 |
| | 历史任务检索 | 敬请期待 |
| | 启动与停止 | 敬请期待 |
| 文档中心 | FlinkSQL 函数文档管理 |
已完成
|
| 文档中心 | FlinkSQL 函数文档管理 |
0.1.0
|
| | FlinkSQL 示例文档 | 敬请期待 |
| | FlinkSQL 调优文档 | 敬请期待 |
| 用户中心 | 用户管理 | 敬请期待 |
...
...
@@ -93,7 +93,7 @@ DataLink 开源项目及社区正在建设,希望本项目可以帮助你更
### 最新版本
dlink-0.2.1
dlink-0.2.
2-rc
1
### 从安装包开始
...
...
@@ -103,11 +103,11 @@ config/ -- 配置文件
lib/ -- 外部依赖及Connector
|- dlink-client-1.12.jar -- 必需
|- dlink-connector-jdbc.jar
|- dlink-function-0.2.2.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 --启动停止脚本
...
...
@@ -141,8 +141,11 @@ dlink -- 父项目
|-
dlink
-
core
--
执行中心
|-
dlink
-
doc
--
文档
|
|-
bin
--
启动脚本
|
|-
bug
--
bug
反馈
|
|-
config
--
配置文件
|
|-
doc
--
使用文档
|
|-
sql
--
sql
脚本
|-
dlink
-
function
--
函数中心
|-
dlink
-
web
--
React
前端
```
...
...
@@ -160,9 +163,9 @@ npm run build
maven clean
install
-Dmaven
.test.skip
=
true
```
#### 扩展Connector
#### 扩展Connector
及UDF
将 Flink 集群上已扩展好的 Connector 直接放入 Dlink 的 lib 下,然后重启即可。
将 Flink 集群上已扩展好的 Connector
和UDF
直接放入 Dlink 的 lib 下,然后重启即可。
定制 Connector 过程同 Flink 官方一样。
#### 扩展其他版本的Flink
...
...
@@ -171,10 +174,6 @@ Flink 的版本取决于 lib 下的 dlink-client-1.12.jar。
当前版本默认为 Flink 1.12.4 API。
向其他版本的集群提交任务可能存在问题,未来将实现 1.13、1.11、1.10.
#### 源码质量一般问题
利用一个周写的项目所有代码,而且React从零边学边写,还请海涵~(> ^ <)~后续版本将优化代码逻辑。
## 使用手册
### 基础使用
...
...
@@ -218,7 +217,7 @@ select * from student
#### 使用技巧
(=。=)~ 敬请期待。
1.[
Flink AggTable 在 Dlink 的实践
](
https://github.com/DataLinkDC/dlink/dlink-doc/doc/FlinkAggTable在Dlink的实践.md
)
#### 常见问题及解决
...
...
@@ -256,15 +255,15 @@ QQ社区群:**543709668**,申请备注 “ Dlink ”,不写不批哦
> 首页


> Studio 执行信息


> Studio 数据预览


> Studio 异常反馈
...
...
dlink-admin/pom.xml
View file @
62957187
...
...
@@ -74,21 +74,6 @@
<groupId>
com.dlink
</groupId>
<artifactId>
dlink-core
</artifactId>
</dependency>
<dependency>
<groupId>
com.dlink
</groupId>
<artifactId>
dlink-client-1.12
</artifactId>
<!--<scope>provided</scope>-->
</dependency>
<dependency>
<groupId>
com.dlink
</groupId>
<artifactId>
dlink-connector-jdbc
</artifactId>
<!--<scope>provided</scope>-->
</dependency>
<dependency>
<groupId>
com.dlink
</groupId>
<artifactId>
dlink-function
</artifactId>
<!--<scope>provided</scope>-->
</dependency>
</dependencies>
<build>
<plugins>
...
...
dlink-admin/src/main/java/com/dlink/common/banner/BannerInitializer.java
View file @
62957187
...
...
@@ -22,7 +22,7 @@ public class BannerInitializer implements ApplicationContextInitializer<Configur
if
(!(
applicationContext
instanceof
AnnotationConfigApplicationContext
))
{
LogoBanner
logoBanner
=
new
LogoBanner
(
BannerInitializer
.
class
,
"/dlink/logo.txt"
,
"Welcome to Dlink"
,
5
,
6
,
new
Color
[
5
],
true
);
CustomBanner
.
show
(
logoBanner
,
new
Description
(
BannerConstant
.
VERSION
+
":"
,
CommonConstant
.
PROJECT_VERSION
,
0
,
1
)
,
new
Description
(
"Github:"
,
"https://github.com/
aiwenmo
/dlink"
,
0
,
1
)
,
new
Description
(
"Github:"
,
"https://github.com/
DataLinkDC
/dlink"
,
0
,
1
)
,
new
Description
(
"公众号:"
,
"DataLink数据中台"
,
0
,
1
)
);
}
...
...
dlink-doc/doc/FlinkAggTable在Dlink的应用.md
0 → 100644
View file @
62957187
# Flink AggTable 在 Dlink 的实践
## 摘要
本文讲述了 Dlink 对 Flink 的表值聚合功能的应用与增强。增强主要在于定义了 AGGTABLE 来通过 FlinkSql 进行表值聚合的实现,以下将通过两个示例 top2 与 to_map 进行讲解。
## 准备工作
### 部署 Dlink-0.2.2
#### 获取安装包
百度网盘链接:https://pan.baidu.com/s/1gHZPGMhYUcpZZgOHta3Csw
提取码:0202
#### 应用结构
```
java
config
/
--
配置文件
|-
application
.
yml
lib
/
--
外部依赖及
Connector
|-
dlink
-
client
-
1.12
.
jar
--
必需
|-
dlink
-
connector
-
jdbc
.
jar
|-
dlink
-
function
-
0.2
.
2
.
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
--
程序包
```
#### 修改配置文件
配置数据库地址。
```
yaml
spring
:
datasource
:
url
:
jdbc:mysql://127.0.0.1:3306/dlink?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&useSSL=false&zeroDateTimeBehavior=convertToNull&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
username
:
dlink
password
:
dlink
driver-class-name
:
com.mysql.cj.jdbc.Driver
```
#### 执行与停止
```
shell
# 启动
sh auto.sh start
# 停止
sh auto.sh stop
# 重启
sh auto.sh restart
# 状态
sh auto.sh status
```
### 准备测试表
#### 学生表(student)
```
sql
DROP
TABLE
IF
EXISTS
`student`
;
CREATE
TABLE
`student`
(
`sid`
int
(
11
)
NOT
NULL
,
`name`
varchar
(
255
)
CHARACTER
SET
utf8
COLLATE
utf8_general_ci
NULL
DEFAULT
NULL
,
PRIMARY
KEY
(
`sid`
)
USING
BTREE
)
ENGINE
=
InnoDB
CHARACTER
SET
=
utf8
COLLATE
=
utf8_general_ci
ROW_FORMAT
=
Dynamic
;
INSERT
INTO
`student`
VALUES
(
1
,
'小明'
);
INSERT
INTO
`student`
VALUES
(
2
,
'小红'
);
INSERT
INTO
`student`
VALUES
(
3
,
'小黑'
);
INSERT
INTO
`student`
VALUES
(
4
,
'小白'
);
```
#### 一维成绩表(score)
```
sql
DROP
TABLE
IF
EXISTS
`score`
;
CREATE
TABLE
`score`
(
`cid`
int
(
11
)
NOT
NULL
,
`sid`
int
(
11
)
NULL
DEFAULT
NULL
,
`cls`
varchar
(
255
)
CHARACTER
SET
utf8
COLLATE
utf8_general_ci
NULL
DEFAULT
NULL
,
`score`
int
(
11
)
NULL
DEFAULT
NULL
,
PRIMARY
KEY
(
`cid`
)
USING
BTREE
)
ENGINE
=
InnoDB
CHARACTER
SET
=
utf8
COLLATE
=
utf8_general_ci
ROW_FORMAT
=
Dynamic
;
INSERT
INTO
`score`
VALUES
(
1
,
1
,
'chinese'
,
90
);
INSERT
INTO
`score`
VALUES
(
2
,
1
,
'math'
,
100
);
INSERT
INTO
`score`
VALUES
(
3
,
1
,
'english'
,
95
);
INSERT
INTO
`score`
VALUES
(
4
,
2
,
'chinese'
,
98
);
INSERT
INTO
`score`
VALUES
(
5
,
2
,
'english'
,
99
);
INSERT
INTO
`score`
VALUES
(
6
,
3
,
'chinese'
,
99
);
INSERT
INTO
`score`
VALUES
(
7
,
3
,
'english'
,
100
);
```
#### 前二排名表(scoretop2)
```
sql
DROP
TABLE
IF
EXISTS
`scoretop2`
;
CREATE
TABLE
`scoretop2`
(
`cls`
varchar
(
255
)
CHARACTER
SET
utf8
COLLATE
utf8_general_ci
NOT
NULL
,
`score`
int
(
11
)
NULL
DEFAULT
NULL
,
`rank`
int
(
11
)
NOT
NULL
,
PRIMARY
KEY
(
`cls`
,
`rank`
)
USING
BTREE
)
ENGINE
=
InnoDB
CHARACTER
SET
=
utf8
COLLATE
=
utf8_general_ci
ROW_FORMAT
=
Dynamic
;
```
#### 二维成绩单表(studentscore)
```
sql
DROP
TABLE
IF
EXISTS
`studentscore`
;
CREATE
TABLE
`studentscore`
(
`sid`
int
(
11
)
NOT
NULL
,
`name`
varchar
(
255
)
CHARACTER
SET
utf8
COLLATE
utf8_general_ci
NULL
DEFAULT
NULL
,
`chinese`
int
(
11
)
NULL
DEFAULT
NULL
,
`math`
int
(
11
)
NULL
DEFAULT
NULL
,
`english`
int
(
11
)
NULL
DEFAULT
NULL
,
PRIMARY
KEY
(
`sid`
)
USING
BTREE
)
ENGINE
=
InnoDB
CHARACTER
SET
=
utf8
COLLATE
=
utf8_general_ci
ROW_FORMAT
=
Dynamic
;
```
### 问题提出
#### 输出各科成绩前二的分数
要求输出已有学科排名前二的分数到scoretop2表中。
#### 输出二维成绩单
要求将一维成绩表转化为二维成绩单,其中不存在的成绩得分为0,并输出至studentscore表中。
## Dlink 的 AGGTABLE
本文以 Flink 官方的 Table Aggregate Functions 示例 Top2 为例进行比较说明,传送门 https://ci.apache.org/projects/flink/flink-docs-release-1.13/docs/dev/table/functions/udfs/#table-aggregate-functions
### 官方 Table API 实现
```
java
import
org.apache.flink.api.java.tuple.Tuple2
;
import
org.apache.flink.table.api.*
;
import
org.apache.flink.table.functions.TableAggregateFunction
;
import
org.apache.flink.util.Collector
;
import
static
org
.
apache
.
flink
.
table
.
api
.
Expressions
.*;
// mutable accumulator of structured type for the aggregate function
public
static
class
Top2Accumulator
{
public
Integer
first
;
public
Integer
second
;
}
// function that takes (value INT), stores intermediate results in a structured
// type of Top2Accumulator, and returns the result as a structured type of Tuple2<Integer, Integer>
// for value and rank
public
static
class
Top2
extends
TableAggregateFunction
<
Tuple2
<
Integer
,
Integer
>,
Top2Accumulator
>
{
@Override
public
Top2Accumulator
createAccumulator
()
{
Top2Accumulator
acc
=
new
Top2Accumulator
();
acc
.
first
=
Integer
.
MIN_VALUE
;
acc
.
second
=
Integer
.
MIN_VALUE
;
return
acc
;
}
public
void
accumulate
(
Top2Accumulator
acc
,
Integer
value
)
{
if
(
value
>
acc
.
first
)
{
acc
.
second
=
acc
.
first
;
acc
.
first
=
value
;
}
else
if
(
value
>
acc
.
second
)
{
acc
.
second
=
value
;
}
}
public
void
merge
(
Top2Accumulator
acc
,
Iterable
<
Top2Accumulator
>
it
)
{
for
(
Top2Accumulator
otherAcc
:
it
)
{
accumulate
(
acc
,
otherAcc
.
first
);
accumulate
(
acc
,
otherAcc
.
second
);
}
}
public
void
emitValue
(
Top2Accumulator
acc
,
Collector
<
Tuple2
<
Integer
,
Integer
>>
out
)
{
// emit the value and rank
if
(
acc
.
first
!=
Integer
.
MIN_VALUE
)
{
out
.
collect
(
Tuple2
.
of
(
acc
.
first
,
1
));
}
if
(
acc
.
second
!=
Integer
.
MIN_VALUE
)
{
out
.
collect
(
Tuple2
.
of
(
acc
.
second
,
2
));
}
}
}
TableEnvironment
env
=
TableEnvironment
.
create
(...);
// call function "inline" without registration in Table API
env
.
from
(
"MyTable"
)
.
groupBy
(
$
(
"myField"
))
.
flatAggregate
(
call
(
Top2
.
class
,
$
(
"value"
)))
.
select
(
$
(
"myField"
),
$
(
"f0"
),
$
(
"f1"
));
// call function "inline" without registration in Table API
// but use an alias for a better naming of Tuple2's fields
env
.
from
(
"MyTable"
)
.
groupBy
(
$
(
"myField"
))
.
flatAggregate
(
call
(
Top2
.
class
,
$
(
"value"
)).
as
(
"value"
,
"rank"
))
.
select
(
$
(
"myField"
),
$
(
"value"
),
$
(
"rank"
));
// register function
env
.
createTemporarySystemFunction
(
"Top2"
,
Top2
.
class
);
// call registered function in Table API
env
.
from
(
"MyTable"
)
.
groupBy
(
$
(
"myField"
))
.
flatAggregate
(
call
(
"Top2"
,
$
(
"value"
)).
as
(
"value"
,
"rank"
))
.
select
(
$
(
"myField"
),
$
(
"value"
),
$
(
"rank"
));
```
### Dlink FlinkSql 实现
#### 示例
```
sql
CREATE
AGGTABLE
aggdemo
AS
SELECT
myField
,
value
,
rank
FROM
MyTable
GROUP
BY
myField
AGG
BY
TOP2
(
value
)
as
(
value
,
rank
);
```
#### 优势
可以通过 FlinkSql 来实现表值聚合的需求,降低了开发与维护成本。
#### 缺点
语法固定,示例关键字必须存在并进行描述,where 可以加在 FROM 和 GROUP BY 之间。
## Dlink 本地实现各科成绩前二
本示例通过 Dlink 的本地环境进行演示实现。
### 进入Dlink

只有版本号大于等于 0.2.2-rc1 的 Dlink 才支持本文 AGGTABLE 的使用。
### 编写 FlinkSQL
```
sql
jdbcconfig
:
=
'connector'
=
'jdbc'
,
'url'
=
'jdbc:mysql://127.0.0.1:3306/data?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&useSSL=false&zeroDateTimeBehavior=convertToNull&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true'
,
'username'
=
'dlink'
,
'password'
=
'dlink'
,;
CREATE
TABLE
student
(
sid
INT
,
name
STRING
,
PRIMARY
KEY
(
sid
)
NOT
ENFORCED
)
WITH
(
${
jdbcconfig
}
'table-name'
=
'student'
);
CREATE
TABLE
score
(
cid
INT
,
sid
INT
,
cls
STRING
,
score
INT
,
PRIMARY
KEY
(
cid
)
NOT
ENFORCED
)
WITH
(
${
jdbcconfig
}
'table-name'
=
'score'
);
CREATE
TABLE
scoretop2
(
cls
STRING
,
score
INT
,
`rank`
INT
,
PRIMARY
KEY
(
cls
,
`rank`
)
NOT
ENFORCED
)
WITH
(
${
jdbcconfig
}
'table-name'
=
'scoretop2'
);
CREATE
AGGTABLE
aggscore
AS
SELECT
cls
,
score
,
rank
FROM
score
GROUP
BY
cls
AGG
BY
TOP2
(
score
)
as
(
score
,
rank
);
insert
into
scoretop2
select
b
.
cls
,
b
.
score
,
b
.
`rank`
from
aggscore
b
```
本 Sql 使用了 Dlink 的增强特性 Fragment 机制,对 jdbc的配置进行了定义。
### 维护 FlinkSQL 及配置

编写 FlinkSQL ,配置开启 Fragment 机制,设置 Flink 集群为本地执行。点击保存。
### 同步执行INSERT

点击同步执行按钮运行当前编辑器中的 FlinkSQL 语句集。弹出提示信息,等待执行完成后自动关闭并刷新信息和结果。
当前版本使用异步提交功能将直接提交任务到集群,Studio 不负责执行结果的记录。提交任务前请保存 FlinkSQL 和配置,否则将提交旧的语句和配置。
### 执行反馈

本地执行成功,“0_admin” 为本地会话,里面存储了 Catalog。
### 同步执行SELECT查看中间过程

由于当前会话中已经存储了表的定义,此时直接选中 select 语句点击同步执行可以重新计算并展示其计算过程中产生的结果,由于 Flink 表值聚合操作机制,该结果非最终结果。
### 同步执行SELECT查看最终结果

在草稿的页面使用相同的会话可以共享 Catalog,此时只需要执行 select 查询 sink 表就可以预览最终的统计结果。
### 查看Mysql表的数据

sink 表中只有五条数据,结果是正确的。
## Dlink 远程实现二维成绩单
本示例通过 Dlink 控制远程集群来实现。
远程集群的 lib 中需要上传 dlink-function.jar 。
### 编写FlinkSQL
```
sql
jdbcconfig
:
=
'connector'
=
'jdbc'
,
'url'
=
'jdbc:mysql://127.0.0.1:3306/data?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&useSSL=false&zeroDateTimeBehavior=convertToNull&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true'
,
'username'
=
'dlink'
,
'password'
=
'dlink'
,;
CREATE
TABLE
student
(
sid
INT
,
name
STRING
,
PRIMARY
KEY
(
sid
)
NOT
ENFORCED
)
WITH
(
${
jdbcconfig
}
'table-name'
=
'student'
);
CREATE
TABLE
score
(
cid
INT
,
sid
INT
,
cls
STRING
,
score
INT
,
PRIMARY
KEY
(
cid
)
NOT
ENFORCED
)
WITH
(
${
jdbcconfig
}
'table-name'
=
'score'
);
CREATE
TABLE
studentscore
(
sid
INT
,
name
STRING
,
chinese
INT
,
math
INT
,
english
INT
,
PRIMARY
KEY
(
sid
)
NOT
ENFORCED
)
WITH
(
${
jdbcconfig
}
'table-name'
=
'studentscore'
);
CREATE
AGGTABLE
aggscore2
AS
SELECT
sid
,
data
FROM
score
GROUP
BY
sid
AGG
BY
TO_MAP
(
cls
,
score
)
as
(
data
);
insert
into
studentscore
select
a
.
sid
,
a
.
name
,
cast
(
GET_KEY
(
b
.
data
,
'chinese'
,
'0'
)
as
int
),
cast
(
GET_KEY
(
b
.
data
,
'math'
,
'0'
)
as
int
),
cast
(
GET_KEY
(
b
.
data
,
'english'
,
'0'
)
as
int
)
from
student
a
left
join
aggscore2
b
on
a
.
sid
=
b
.
sid
```
本实例通过表值聚合将分组后的多行转单列然后通过 GET_KEY 取值的思路来实现。同时,也使用了 Fragment 机制。
### 同步执行

与示例一相似,不同点在于需要更改集群配置为 远程集群。远程集群的注册在集群中心注册,Hosts 需要填写 JobManager 的地址,HA模式则使用英文逗号分割可能出现的地址,如“127.0.0.1:8081,127.0.0.2:8081,127.0.0.3:8081”。心跳监测正常的集群实例即可用于任务执行或提交。
### Flink UI

打开集群的 Flink UI 可以发现刚刚提交的批任务,此时可以发现集群版本号为 1.12.2 ,而 Dlink 默认版本为 1.12.4 ,所以一般大版本内可以互相兼容。
### 查看Mysql表的数据

查看 Mysql 表的最终数据,发现存在四条结果,且也符合问题的要求。
dlink-web/src/components/Footer/index.tsx
View file @
62957187
...
...
@@ -22,7 +22,7 @@ export default () => {
{
key
:
'github'
,
title
:
<
GithubOutlined
/>,
href
:
'https://github.com/
aiwenmo/D
link'
,
href
:
'https://github.com/
DataLinkDC/d
link'
,
blankTarget
:
true
,
},
]
}
...
...
dlink-web/src/components/Studio/StudioMenu/index.tsx
View file @
62957187
...
...
@@ -37,7 +37,7 @@ const StudioMenu = (props: any) => {
checkPoint
:
current
.
task
.
checkPoint
,
parallelism
:
current
.
task
.
parallelism
,
maxRowNum
:
current
.
task
.
maxRowNum
,
fragment
:
current
.
task
.
frag
em
nt
,
fragment
:
current
.
task
.
frag
me
nt
,
savePointPath
:
current
.
task
.
savePointPath
,
jobName
:
current
.
task
.
alias
,
};
...
...
dlink-web/src/components/Studio/StudioSetting/index.tsx
View file @
62957187
...
...
@@ -99,11 +99,10 @@ const StudioSetting = (props: any) => {
<
Row
>
<
Col
span=
{
12
}
>
<
Form
.
Item
label=
"Fragment"
className=
{
styles
.
form_item
}
name=
"fragment"
label=
"Fragment"
className=
{
styles
.
form_item
}
name=
"fragment"
valuePropName=
"checked"
tooltip=
{
{
title
:
'【增强特性】 开启FlinkSql片段机制,使用“:=”进行定义(以“;”结束),“${}”进行调用'
,
icon
:
<
InfoCircleOutlined
/>
}
}
>
<
Switch
checkedChildren=
"启用"
unCheckedChildren=
"禁用"
// defaultChecked={formVals.enabled}
/>
</
Form
.
Item
>
</
Col
>
...
...
dlink-web/src/pages/Welcome.tsx
View file @
62957187
...
...
@@ -20,7 +20,7 @@ export default (): React.ReactNode => {
<
Alert
message=
{
intl
.
formatMessage
({
id
:
'pages.welcome.alertMessage'
,
defaultMessage
:
'实时计算平台 Dlink & Apache Flink 即将发布,目前为体验版,版本号为 0.2.1。'
,
defaultMessage
:
'实时计算平台 Dlink & Apache Flink 即将发布,目前为体验版,版本号为 0.2.
2-rc
1。'
,
})
}
type=
"success"
showIcon
...
...
@@ -49,7 +49,7 @@ export default (): React.ReactNode => {
>
<
FormattedMessage
id=
"pages.welcome.advancedLayout"
defaultMessage=
"Github"
/>
{
' '
}
<
a
href=
"https://github.com/
aiwenmo
/dlink"
href=
"https://github.com/
DataLinkDC
/dlink"
rel=
"noopener noreferrer"
target=
"__blank"
>
...
...
@@ -177,6 +177,22 @@ export default (): React.ReactNode => {
</
ul
>
</
Paragraph
>
</
Timeline
.
Item
>
<
Timeline
.
Item
><
Text
code
>
0.2.2-rc1
</
Text
>
<
Text
type=
"secondary"
>
2021-06-15
</
Text
>
<
p
>
</
p
>
<
Paragraph
>
<
ul
>
<
li
>
<
Link
href=
""
>
AGGTABLE 语法实现
</
Link
>
</
li
>
<
li
>
<
Link
href=
""
>
增加了 dlink-function 模块用来管理 UDF 等,其可直接上传至集群lib
</
Link
>
</
li
>
<
li
>
<
Link
href=
""
>
解决了表单无法正确提交 Fragment 的问题
</
Link
>
</
li
>
</
ul
>
</
Paragraph
>
</
Timeline
.
Item
>
</
Timeline
>
</
Card
>
</
PageContainer
>
...
...
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