Skip to content

Commit

Permalink
optimization dlink-web,docs (DataLinkDC#763)
Browse files Browse the repository at this point in the history
  • Loading branch information
Zzm0809 authored Jul 25, 2022
1 parent d8c2e77 commit 0c77ee4
Show file tree
Hide file tree
Showing 13 changed files with 105 additions and 7,619 deletions.
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -41,3 +41,5 @@ docs/node_modules
docs/.cache-loader
docs/package-lock.json
docs/build
docs/yarn.lock
docs/*.log
Original file line number Diff line number Diff line change
Expand Up @@ -18,16 +18,15 @@
*/


import {Empty, Tag, Divider, Tooltip, message, Select, Button, Space, Modal,Dropdown,Menu} from "antd";
import {Button, Divider, Dropdown, Empty, Menu, message, Modal, Select, Space, Tag, Tooltip} from "antd";
import {StateType} from "@/pages/DataStudio/model";
import {connect} from "umi";
import {useState} from "react";
import {SearchOutlined,CheckCircleOutlined,SyncOutlined,CloseCircleOutlined,ClockCircleOutlined,MinusCircleOutlined,DownOutlined} from '@ant-design/icons';
import React, {useState} from "react";
import {DownOutlined, SearchOutlined} from '@ant-design/icons';
import ProTable from '@ant-design/pro-table';
import {cancelJob, savepointJob, showFlinkJobs} from "../../StudioEvent/DDL";
import {ClusterTableListItem} from "@/pages/Cluster/data";
import React from "react";
import JobStatus from "@/components/Common/JobStatus";
import {parseSecondStr} from "@/components/Common/function";

const {Option} = Select;

Expand Down Expand Up @@ -110,9 +109,10 @@ const StudioProcess = (props: any) => {
valueType: 'dateTime',
}, {
title: "耗时",
dataIndex: "duration",
sorter: true,
valueType: 'second',
render: (_, row) => {
return (parseSecondStr(row.duration))
}
}, {
title: "tasks",
dataIndex: "tasks",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,12 @@ const StudioHistory = (props: any) => {
</div><br/>
<Scrollbars style={{height: "98%"}}>
<React.StrictMode>
<MonacoDiffEditor options={{readOnly: true}} language={"sql"} theme={"vs-dark"} original={originalValue} value={currentValue}/>
<MonacoDiffEditor options={{
readOnly: true,
selectOnLineNumbers: true,
lineDecorationsWidth: 20,
mouseWheelZoom: true
}} language={"sql"} theme={"vs-dark"} original={originalValue} value={currentValue}/>
</React.StrictMode>
</Scrollbars>
</Modal>
Expand Down
6 changes: 6 additions & 0 deletions dlink-web/src/pages/DevOps/JobInfo/CheckPoints/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -233,6 +233,7 @@ const CheckPoints = (props: any) => {
historyID: job?.jobHistory.id,
id: entity.id,
status: entity.status,
checkpoint_type: entity.checkpoint_type,
end_to_end_duration: entity.end_to_end_duration,
external_path: entity.external_path,
latest_ack_timestamp: entity.latest_ack_timestamp,
Expand Down Expand Up @@ -273,6 +274,11 @@ const CheckPoints = (props: any) => {
return entity.end_to_end_duration === null ? 'None' : parseMilliSecondStr(entity.end_to_end_duration);
},
},
{
title: '类型',
align: 'center',
dataIndex: 'checkpoint_type',
},
{
title: '存储位置',
align: 'center',
Expand Down
7 changes: 2 additions & 5 deletions dlink-web/src/pages/DevOps/JobInfo/Config/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,6 @@ const Config = (props: any) => {

const {job} = props;
return (<>
{
job?.jobHistory?.config && <>
<>
<Descriptions bordered size="small" title={"Dinky Job Configuration"}>
<Descriptions.Item label="执行模式">{job?.history?.type ? (
Expand Down Expand Up @@ -67,7 +65,7 @@ const Config = (props: any) => {
</>
<br/><br/>
<>
{!JSON.stringify(job?.jobHistory?.config).includes("errors") &&
{(!JSON.stringify(job?.jobHistory?.config).includes("errors") && !job?.jobHistory?.config ) &&
<Descriptions bordered size="small" title={"Flink Job Configuration"}>
<Descriptions.Item label="Execution Mode">
<Tag color="blue" title={"Execution Mode"}>
Expand Down Expand Up @@ -100,8 +98,7 @@ const Config = (props: any) => {
}
</>
</>
}
</>)
)
};

export default Config;
2 changes: 1 addition & 1 deletion dlink-web/src/pages/DevOps/JobInstanceTable/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -173,7 +173,7 @@ const JobInstanceTable = (props: any) => {
headerTitle={`上次更新时间:${moment(time).format('HH:mm:ss')}`}
polling={status==activeKey?3000:undefined}
pagination={{
pageSize: 5,
pageSize: 10,
}}
onRow={ record => {
return {
Expand Down
1 change: 1 addition & 0 deletions dlink-web/src/pages/DevOps/data.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -145,6 +145,7 @@ export type CheckPointsDetailInfo = {
historyID: number,
id: number,
status: string,
checkpoint_type: string,
end_to_end_duration: number,
external_path : string,
latest_ack_timestamp: number,
Expand Down
60 changes: 19 additions & 41 deletions docs/docs/build_deploy/deploy.md
Original file line number Diff line number Diff line change
Expand Up @@ -142,8 +142,10 @@ $nginx -s reload

Dinky 需要具备自身的 Flink 环境,该 Flink 环境的实现需要用户自己在 Dinky 根目录下创建 plugins 文件夹并上传相关的 Flink 依赖,如 flink-dist, flink-table 等,具体见下文。当然也可在启动文件中指定 FLINK_HOME,但不建议这样做。

:::warning 注意事项
Dinky 当前版本的 yarn 的 perjob 与 application 执行模式依赖 flink-shade-hadoop ,如果你的 Hadoop 版本为 2+ 或 3+,需要额外添加 flink-shade-hadoop-uber-3 包,请手动删除该包内部的 javax.servlet 等冲突内容。
当然如果你的 Hadoop 为 3+ 也可以自行编译对于版本的 dlink-client-hadoop.jar 以替代 uber 包,
:::

```
#创建目录
Expand All @@ -163,15 +165,26 @@ https://mvnrepository.com/artifact/org.apache.flink/flink-shaded-hadoop-3-uber?r
config/ -- 配置文件
|- application.yml
extends/ -- 扩展
|- dlink-client-1.11.jar
|- dlink-client-1.12.jar
|- dlink-client-1.14.jar
|- dlink-client-1.11.jar -- 适配 Flink1.11.x
|- dlink-client-1.12.jar -- 适配 Flink1.12.x
|- dlink-client-1.14.jar -- 适配 Flink1.14.x
|- dlink-client-1.15.jar -- 适配 Flink1.15.x
html/ -- 前端编译产物
jar/ -- dlink application 模式提交 sql 用到的 jar
jar/
|- dlink-app-1.11.jar -- dlink application 模式提交 sql 用到的 jar 适配 Flink1.11.x
|- dlink-app-1.12.jar -- dlink application 模式提交 sql 用到的 jar 适配 Flink1.12.x
|- dlink-app-1.13.jar -- dlink application 模式提交 sql 用到的 jar 适配 Flink1.13.x
|- dlink-app-1.14.jar -- dlink application 模式提交 sql 用到的 jar 适配 Flink1.14.x
|- dlink-app-1.15.jar -- dlink application 模式提交 sql 用到的 jar 适配 Flink1.15.x
|- dlink-client-base.jar -- 整库同步场景下需要的包
|- dlink-common.jar -- 整库同步场景下需要的包
lib/ -- 内部组件
|- dlink-alert-dingtalk.jar
|- dlink-alert-email.jar
|- dlink-alert-feishu.jar
|- dlink-alert-wechat.jar
|- dlink-client-1.13.jar
|- dlink-client-1.13.jar -- 适配 Flink1.13.x,默认
|- dlink-catalog-mysql.jar -- dlink 的 catalog实现
|- dlink-connector-jdbc.jar
|- dlink-function.jar
|- dlink-metadata-clickhouse.jar
Expand All @@ -195,6 +208,7 @@ plugins/
sql/
|- dlink.sql -- Mysql初始化脚本
|- dlink_history.sql -- Mysql各版本及时间点升级脚本
|- dlinkmysqlcatalog.sql -- dlink 的 catalog 表 SQL 脚本
auto.sh --启动停止脚本
dlink-admin.jar --主程序包
```
Expand Down Expand Up @@ -222,41 +236,5 @@ $sh auto.sh status



## Docker部署
[👉DockerHub](https://hub.docker.com/r/ylyue/dinky)
### Docker 部署参考命令:
```bash
docker run -it --name=dinky -p8888:8888 \
-e spring.datasource.url=jdbc:mysql://localhost:3306/dlink?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&useSSL=false&zeroDateTimeBehavior=convertToNull&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true \
-e spring.datasource.username=root \
-e spring.datasource.password=11eb441842a9491c90168c6f76c2eed4 \
-v /opt/docker/dinky/plugins:/opt/dinky/plugins \
-v /opt/docker/dinky/lib:/opt/dinky/lib \
-v /opt/docker/dinky/jar:/opt/dinky/jar \
registry.cn-beijing.aliyuncs.com/yue-open/dinky:0.6.4-flink1.15
```

### 环境变量与挂载点:
- SpringBoot 标准项目,`-e`可以用于替换[application.yml](https://gitee.com/DataLinkDC/Dinky/blob/0.6.4/dlink-admin/src/main/resources/application.yml)文件中的配置
- `/opt/dinky/plugins`挂载点,用于挂载Flink SQL开发中需要依赖的jar包
- `/opt/dinky/lib`挂载点(非必须),用于挂载Dinky内部组件,当你需要时再挂载出来
- `/opt/dinky/jar`挂载点(非必须),用于挂载dlink application模式提交sql用到的jar,当你需要时再挂载出来

### MySQL 数据库的初始化脚本:
- [👉Gitee Releases 界面](https://gitee.com/DataLinkDC/Dinky/releases)下载对应版本的releases包,获得Mysql初始化脚本
- [👉Dinky官网 Releases 界面](http://www.dlink.top/download/download)下载对应版本的releases包,获得Mysql初始化脚本
- mysql需自行部署8.x版本,参考:[👉Centos Docker MySQL8 安装与初始化配置](https://blog.csdn.net/u013600314/article/details/80521778?spm=1001.2014.3001.5502)

:::tip 版本号0.6.4-flink1.15:
- `0.6.4`代表Dinky版本号
- `flink1.15`代表Flink版本号,即默认提供了flink1.15的相关默认依赖,你任然可以替换`plugins、lib、jar`挂载点的相关依赖包,使之支持Flink其他版本,如:flink:1.15-scala_2.12.15
:::

:::tip Dinky与Flink:
- 此镜像仓库只是让你部署起了 Dinky 开发平台,因此你任然还需部署 Flink 集群
- Flink集群部署参考 [Flink官方文档](https://nightlies.apache.org/flink/flink-docs-release-1.15/zh/docs/deployment/resource-providers/standalone/docker/)
:::




16 changes: 16 additions & 0 deletions docs/docs/data_integration_guide/cdcsource_statements.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,22 @@ Dinky 提供了各式各样的 sink 方式,通过修改语句参数可以实

CDCSOURCE 语句用于将上游指定数据库的所有表的数据采用一个任务同步到下游系统。

:::warning **Yarn Session**, **Standalone** 模式下 注意事项
**Yarn Session**, **Standalone** 模式下,使用整库同步需要将 dlink 的一些依赖放入 Flink/lib 下, 依赖如下:
1. jar/dlink-client-base-${version}.jar
2. jar/dlink-common-${version}.jar
3. lib/dlink-client-${version}.jar

注意: 放入 Flink/lib 下后需要重启 Flink 集群
:::

:::warning **Pre Job**, **Application** 模式下 注意事项
**Pre Job**, **Application** 模式下,使用整库同步需要将 dlink 的一些依赖放入 HDFS, 依赖如下:
1. jar/dlink-client-base-${version}.jar
2. jar/dlink-common-${version}.jar
3. lib/dlink-client-${version}.jar
:::

### 语法结构

```sql
Expand Down
5 changes: 5 additions & 0 deletions docs/docs/developer_guide/remote_debug.md
Original file line number Diff line number Diff line change
Expand Up @@ -189,6 +189,11 @@ hive-site.xml 需要使用到 Hive Catalog 时添加
![choose_addrepo_global](http://www.aiwenmo.com/dinky/docs/zh-CN/developer_guide/remote_debug/choose_addrepo_global.png)
![create_repo](http://www.aiwenmo.com/dinky/docs/zh-CN/developer_guide/remote_debug/create_repo.png)

:::warning 注意事项
如果是整库同步场景下请将级别设置为全局库 ,模块选中所有
:::



### 启动 Yarn Session 集群

Expand Down
61 changes: 19 additions & 42 deletions docs/versioned_docs/version-0.6/build_deploy/deploy.md
Original file line number Diff line number Diff line change
Expand Up @@ -142,8 +142,10 @@ $nginx -s reload

Dinky 需要具备自身的 Flink 环境,该 Flink 环境的实现需要用户自己在 Dinky 根目录下创建 plugins 文件夹并上传相关的 Flink 依赖,如 flink-dist, flink-table 等,具体见下文。当然也可在启动文件中指定 FLINK_HOME,但不建议这样做。

:::warning 注意事项
Dinky 当前版本的 yarn 的 perjob 与 application 执行模式依赖 flink-shade-hadoop ,如果你的 Hadoop 版本为 2+ 或 3+,需要额外添加 flink-shade-hadoop-uber-3 包,请手动删除该包内部的 javax.servlet 等冲突内容。
当然如果你的 Hadoop 为 3+ 也可以自行编译对于版本的 dlink-client-hadoop.jar 以替代 uber 包,
:::

```
#创建目录
Expand All @@ -163,15 +165,26 @@ https://mvnrepository.com/artifact/org.apache.flink/flink-shaded-hadoop-3-uber?r
config/ -- 配置文件
|- application.yml
extends/ -- 扩展
|- dlink-client-1.11.jar
|- dlink-client-1.12.jar
|- dlink-client-1.14.jar
|- dlink-client-1.11.jar -- 适配 Flink1.11.x
|- dlink-client-1.12.jar -- 适配 Flink1.12.x
|- dlink-client-1.14.jar -- 适配 Flink1.14.x
|- dlink-client-1.15.jar -- 适配 Flink1.15.x
html/ -- 前端编译产物
jar/ -- dlink application 模式提交 sql 用到的 jar
jar/
|- dlink-app-1.11.jar -- dlink application 模式提交 sql 用到的 jar 适配 Flink1.11.x
|- dlink-app-1.12.jar -- dlink application 模式提交 sql 用到的 jar 适配 Flink1.12.x
|- dlink-app-1.13.jar -- dlink application 模式提交 sql 用到的 jar 适配 Flink1.13.x
|- dlink-app-1.14.jar -- dlink application 模式提交 sql 用到的 jar 适配 Flink1.14.x
|- dlink-app-1.15.jar -- dlink application 模式提交 sql 用到的 jar 适配 Flink1.15.x
|- dlink-client-base.jar -- 整库同步场景下需要的包
|- dlink-common.jar -- 整库同步场景下需要的包
lib/ -- 内部组件
|- dlink-alert-dingtalk.jar
|- dlink-alert-email.jar
|- dlink-alert-feishu.jar
|- dlink-alert-wechat.jar
|- dlink-client-1.13.jar
|- dlink-client-1.13.jar -- 适配 Flink1.13.x,默认
|- dlink-catalog-mysql.jar -- dlink 的 catalog 实现
|- dlink-connector-jdbc.jar
|- dlink-function.jar
|- dlink-metadata-clickhouse.jar
Expand All @@ -195,6 +208,7 @@ plugins/
sql/
|- dlink.sql -- Mysql初始化脚本
|- dlink_history.sql -- Mysql各版本及时间点升级脚本
|- dlinkmysqlcatalog.sql -- dlink 的 catalog 表 SQL 脚本
auto.sh --启动停止脚本
dlink-admin.jar --主程序包
```
Expand Down Expand Up @@ -222,41 +236,4 @@ $sh auto.sh status



## Docker部署
[👉DockerHub](https://hub.docker.com/r/ylyue/dinky)
### Docker 部署参考命令:
```bash
docker run -it --name=dinky -p8888:8888 \
-e spring.datasource.url=jdbc:mysql://localhost:3306/dlink?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&useSSL=false&zeroDateTimeBehavior=convertToNull&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true \
-e spring.datasource.username=root \
-e spring.datasource.password=11eb441842a9491c90168c6f76c2eed4 \
-v /opt/docker/dinky/plugins:/opt/dinky/plugins \
-v /opt/docker/dinky/lib:/opt/dinky/lib \
-v /opt/docker/dinky/jar:/opt/dinky/jar \
registry.cn-beijing.aliyuncs.com/yue-open/dinky:0.6.4-flink1.15
```

### 环境变量与挂载点:
- SpringBoot 标准项目,`-e`可以用于替换[application.yml](https://gitee.com/DataLinkDC/Dinky/blob/0.6.4/dlink-admin/src/main/resources/application.yml)文件中的配置
- `/opt/dinky/plugins`挂载点,用于挂载Flink SQL开发中需要依赖的jar包
- `/opt/dinky/lib`挂载点(非必须),用于挂载Dinky内部组件,当你需要时再挂载出来
- `/opt/dinky/jar`挂载点(非必须),用于挂载dlink application模式提交sql用到的jar,当你需要时再挂载出来

### MySQL 数据库的初始化脚本:
- [👉Gitee Releases 界面](https://gitee.com/DataLinkDC/Dinky/releases)下载对应版本的releases包,获得Mysql初始化脚本
- [👉Dinky官网 Releases 界面](http://www.dlink.top/download/download)下载对应版本的releases包,获得Mysql初始化脚本
- mysql需自行部署8.x版本,参考:[👉Centos Docker MySQL8 安装与初始化配置](https://blog.csdn.net/u013600314/article/details/80521778?spm=1001.2014.3001.5502)

:::tip 版本号0.6.4-flink1.15:
- `0.6.4`代表Dinky版本号
- `flink1.15`代表Flink版本号,即默认提供了flink1.15的相关默认依赖,你任然可以替换`plugins、lib、jar`挂载点的相关依赖包,使之支持Flink其他版本,如:flink:1.15-scala_2.12.15
:::

:::tip Dinky与Flink:
- 此镜像仓库只是让你部署起了 Dinky 开发平台,因此你任然还需部署 Flink 集群
- Flink集群部署参考 [Flink官方文档](https://nightlies.apache.org/flink/flink-docs-release-1.15/zh/docs/deployment/resource-providers/standalone/docker/)
:::




Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ Dinky 定义了 CDCSOURCE 整库同步的语法,该语法和 CDAS 作用相似

![source_merge](http://www.aiwenmo.com/dinky/docs/zh-CN/data_integration_guide/cdcsource_statementssource_merge.png)

面对建立的数据库连接过多,Binlog 重复读取会造成源库的巨大压力,上文分享采用了 source 合并的优化,尝试合并同一作业中的 source,如果都是读的同一数据源,则会被合并成一个 source 节点。
面对建立的数据库连接过多,Binlog 重复读取会造成源库的巨大压力,上文分享采用了 source 合并的优化,尝试合并同一作业中的 source,如果都是读的同一数据源,则会被合并成一个 source 节点。

​ Dinky 采用的是只构建一个 source,然后根据 schema、database、table 进行分流处理,分别 sink 到对应的表。

Expand All @@ -37,6 +37,26 @@ Dinky 提供了各式各样的 sink 方式,通过修改语句参数可以实

CDCSOURCE 语句用于将上游指定数据库的所有表的数据采用一个任务同步到下游系统。

:::warning **Yarn Session**, **Standalone** 模式下 注意事项

**Yarn Session**, **Standalone** 模式下,使用整库同步需要将 dlink 的一些依赖放入 Flink/lib 下, 依赖如下:
1. jar/dlink-client-base-${version}.jar
2. jar/dlink-common-${version}.jar
3. lib/dlink-client-${version}.jar

注意: 放入 Flink/lib 下后需要重启 Flink 集群
:::

:::warning **Pre Job**, **Application** 模式下 注意事项



**Pre Job**, **Application** 模式下,使用整库同步需要将 dlink 的一些依赖放入 HDFS, 依赖如下:
1. jar/dlink-client-base-${version}.jar
2. jar/dlink-common-${version}.jar
3. lib/dlink-client-${version}.jar
:::

### 语法结构

```sql
Expand Down
Loading

0 comments on commit 0c77ee4

Please sign in to comment.