Unverified Commit 3de13615 authored by aiwenmo's avatar aiwenmo Committed by GitHub

Merge branch 'dev' into dev

parents 3cbd9819 0917751d
...@@ -41,3 +41,5 @@ docs/node_modules ...@@ -41,3 +41,5 @@ docs/node_modules
docs/.cache-loader docs/.cache-loader
docs/package-lock.json docs/package-lock.json
docs/build docs/build
docs/yarn.lock
docs/*.log
\ No newline at end of file
...@@ -757,7 +757,7 @@ public class TaskServiceImpl extends SuperServiceImpl<TaskMapper, Task> implemen ...@@ -757,7 +757,7 @@ public class TaskServiceImpl extends SuperServiceImpl<TaskMapper, Task> implemen
jobInfoDetail.setJobHistory(jobHistory); jobInfoDetail.setJobHistory(jobHistory);
String status = jobInfoDetail.getInstance().getStatus(); String status = jobInfoDetail.getInstance().getStatus();
boolean jobStatusChanged = false; boolean jobStatusChanged = false;
if (Asserts.isNull(jobInfoDetail.getJobHistory().getJob()) || Asserts.isNull(jobInfoDetail.getJobHistory().getJob())) { if (Asserts.isNull(jobInfoDetail.getJobHistory().getJob())) {
jobInfoDetail.getInstance().setStatus(JobStatus.UNKNOWN.getValue()); jobInfoDetail.getInstance().setStatus(JobStatus.UNKNOWN.getValue());
} else { } else {
jobInfoDetail.getInstance().setDuration(jobInfoDetail.getJobHistory().getJob().get(FlinkRestResultConstant.JOB_DURATION).asLong() / 1000); jobInfoDetail.getInstance().setDuration(jobInfoDetail.getJobHistory().getJob().get(FlinkRestResultConstant.JOB_DURATION).asLong() / 1000);
......
...@@ -18,16 +18,15 @@ ...@@ -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 {StateType} from "@/pages/DataStudio/model";
import {connect} from "umi"; import {connect} from "umi";
import {useState} from "react"; import React, {useState} from "react";
import {SearchOutlined,CheckCircleOutlined,SyncOutlined,CloseCircleOutlined,ClockCircleOutlined,MinusCircleOutlined,DownOutlined} from '@ant-design/icons'; import {DownOutlined, SearchOutlined} from '@ant-design/icons';
import ProTable from '@ant-design/pro-table'; import ProTable from '@ant-design/pro-table';
import {cancelJob, savepointJob, showFlinkJobs} from "../../StudioEvent/DDL"; import {cancelJob, savepointJob, showFlinkJobs} from "../../StudioEvent/DDL";
import {ClusterTableListItem} from "@/pages/Cluster/data";
import React from "react";
import JobStatus from "@/components/Common/JobStatus"; import JobStatus from "@/components/Common/JobStatus";
import {parseSecondStr} from "@/components/Common/function";
const {Option} = Select; const {Option} = Select;
...@@ -110,9 +109,10 @@ const StudioProcess = (props: any) => { ...@@ -110,9 +109,10 @@ const StudioProcess = (props: any) => {
valueType: 'dateTime', valueType: 'dateTime',
}, { }, {
title: "耗时", title: "耗时",
dataIndex: "duration",
sorter: true, sorter: true,
valueType: 'second', render: (_, row) => {
return (parseSecondStr(row.duration))
}
}, { }, {
title: "tasks", title: "tasks",
dataIndex: "tasks", dataIndex: "tasks",
......
...@@ -83,7 +83,12 @@ const StudioHistory = (props: any) => { ...@@ -83,7 +83,12 @@ const StudioHistory = (props: any) => {
</div><br/> </div><br/>
<Scrollbars style={{height: "98%"}}> <Scrollbars style={{height: "98%"}}>
<React.StrictMode> <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> </React.StrictMode>
</Scrollbars> </Scrollbars>
</Modal> </Modal>
......
...@@ -233,6 +233,7 @@ const CheckPoints = (props: any) => { ...@@ -233,6 +233,7 @@ const CheckPoints = (props: any) => {
historyID: job?.jobHistory.id, historyID: job?.jobHistory.id,
id: entity.id, id: entity.id,
status: entity.status, status: entity.status,
checkpoint_type: entity.checkpoint_type,
end_to_end_duration: entity.end_to_end_duration, end_to_end_duration: entity.end_to_end_duration,
external_path: entity.external_path, external_path: entity.external_path,
latest_ack_timestamp: entity.latest_ack_timestamp, latest_ack_timestamp: entity.latest_ack_timestamp,
...@@ -273,6 +274,11 @@ const CheckPoints = (props: any) => { ...@@ -273,6 +274,11 @@ const CheckPoints = (props: any) => {
return entity.end_to_end_duration === null ? 'None' : parseMilliSecondStr(entity.end_to_end_duration); return entity.end_to_end_duration === null ? 'None' : parseMilliSecondStr(entity.end_to_end_duration);
}, },
}, },
{
title: '类型',
align: 'center',
dataIndex: 'checkpoint_type',
},
{ {
title: '存储位置', title: '存储位置',
align: 'center', align: 'center',
......
...@@ -27,8 +27,6 @@ const Config = (props: any) => { ...@@ -27,8 +27,6 @@ const Config = (props: any) => {
const {job} = props; const {job} = props;
return (<> return (<>
{
job?.jobHistory?.config && <>
<> <>
<Descriptions bordered size="small" title={"Dinky Job Configuration"}> <Descriptions bordered size="small" title={"Dinky Job Configuration"}>
<Descriptions.Item label="执行模式">{job?.history?.type ? ( <Descriptions.Item label="执行模式">{job?.history?.type ? (
...@@ -67,7 +65,7 @@ const Config = (props: any) => { ...@@ -67,7 +65,7 @@ const Config = (props: any) => {
</> </>
<br/><br/> <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 bordered size="small" title={"Flink Job Configuration"}>
<Descriptions.Item label="Execution Mode"> <Descriptions.Item label="Execution Mode">
<Tag color="blue" title={"Execution Mode"}> <Tag color="blue" title={"Execution Mode"}>
...@@ -100,8 +98,7 @@ const Config = (props: any) => { ...@@ -100,8 +98,7 @@ const Config = (props: any) => {
} }
</> </>
</> </>
} )
</>)
}; };
export default Config; export default Config;
...@@ -173,7 +173,7 @@ const JobInstanceTable = (props: any) => { ...@@ -173,7 +173,7 @@ const JobInstanceTable = (props: any) => {
headerTitle={`上次更新时间:${moment(time).format('HH:mm:ss')}`} headerTitle={`上次更新时间:${moment(time).format('HH:mm:ss')}`}
polling={status==activeKey?3000:undefined} polling={status==activeKey?3000:undefined}
pagination={{ pagination={{
pageSize: 5, pageSize: 10,
}} }}
onRow={ record => { onRow={ record => {
return { return {
......
...@@ -145,6 +145,7 @@ export type CheckPointsDetailInfo = { ...@@ -145,6 +145,7 @@ export type CheckPointsDetailInfo = {
historyID: number, historyID: number,
id: number, id: number,
status: string, status: string,
checkpoint_type: string,
end_to_end_duration: number, end_to_end_duration: number,
external_path : string, external_path : string,
latest_ack_timestamp: number, latest_ack_timestamp: number,
......
...@@ -142,8 +142,10 @@ $nginx -s reload ...@@ -142,8 +142,10 @@ $nginx -s reload
Dinky 需要具备自身的 Flink 环境,该 Flink 环境的实现需要用户自己在 Dinky 根目录下创建 plugins 文件夹并上传相关的 Flink 依赖,如 flink-dist, flink-table 等,具体见下文。当然也可在启动文件中指定 FLINK_HOME,但不建议这样做。 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 等冲突内容。 Dinky 当前版本的 yarn 的 perjob 与 application 执行模式依赖 flink-shade-hadoop ,如果你的 Hadoop 版本为 2+ 或 3+,需要额外添加 flink-shade-hadoop-uber-3 包,请手动删除该包内部的 javax.servlet 等冲突内容。
当然如果你的 Hadoop 为 3+ 也可以自行编译对于版本的 dlink-client-hadoop.jar 以替代 uber 包, 当然如果你的 Hadoop 为 3+ 也可以自行编译对于版本的 dlink-client-hadoop.jar 以替代 uber 包,
:::
``` ```
#创建目录 #创建目录
...@@ -163,15 +165,26 @@ https://mvnrepository.com/artifact/org.apache.flink/flink-shaded-hadoop-3-uber?r ...@@ -163,15 +165,26 @@ https://mvnrepository.com/artifact/org.apache.flink/flink-shaded-hadoop-3-uber?r
config/ -- 配置文件 config/ -- 配置文件
|- application.yml |- application.yml
extends/ -- 扩展 extends/ -- 扩展
|- dlink-client-1.11.jar |- dlink-client-1.11.jar -- 适配 Flink1.11.x
|- dlink-client-1.12.jar |- dlink-client-1.12.jar -- 适配 Flink1.12.x
|- dlink-client-1.14.jar |- dlink-client-1.14.jar -- 适配 Flink1.14.x
|- dlink-client-1.15.jar -- 适配 Flink1.15.x
html/ -- 前端编译产物 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/ -- 内部组件 lib/ -- 内部组件
|- dlink-alert-dingtalk.jar |- dlink-alert-dingtalk.jar
|- dlink-alert-email.jar
|- dlink-alert-feishu.jar
|- dlink-alert-wechat.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-connector-jdbc.jar
|- dlink-function.jar |- dlink-function.jar
|- dlink-metadata-clickhouse.jar |- dlink-metadata-clickhouse.jar
...@@ -195,6 +208,7 @@ plugins/ ...@@ -195,6 +208,7 @@ plugins/
sql/ sql/
|- dlink.sql -- Mysql初始化脚本 |- dlink.sql -- Mysql初始化脚本
|- dlink_history.sql -- Mysql各版本及时间点升级脚本 |- dlink_history.sql -- Mysql各版本及时间点升级脚本
|- dlinkmysqlcatalog.sql -- dlink 的 catalog 表 SQL 脚本
auto.sh --启动停止脚本 auto.sh --启动停止脚本
dlink-admin.jar --主程序包 dlink-admin.jar --主程序包
``` ```
...@@ -222,41 +236,5 @@ $sh auto.sh status ...@@ -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/)
:::
...@@ -45,6 +45,22 @@ dlink-client-1.1x-0.x.x.jar ...@@ -45,6 +45,22 @@ dlink-client-1.1x-0.x.x.jar
dlink-client-base-0.x.x.jar dlink-client-base-0.x.x.jar
dlink-common-0.x.x.jar dlink-common-0.x.x.jar
``` ```
=======
:::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
:::
### 语法结构 ### 语法结构
......
...@@ -189,6 +189,11 @@ hive-site.xml 需要使用到 Hive Catalog 时添加 ...@@ -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) ![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) ![create_repo](http://www.aiwenmo.com/dinky/docs/zh-CN/developer_guide/remote_debug/create_repo.png)
:::warning 注意事项
如果是整库同步场景下请将级别设置为全局库 ,模块选中所有
:::
### 启动 Yarn Session 集群 ### 启动 Yarn Session 集群
......
...@@ -142,8 +142,10 @@ $nginx -s reload ...@@ -142,8 +142,10 @@ $nginx -s reload
Dinky 需要具备自身的 Flink 环境,该 Flink 环境的实现需要用户自己在 Dinky 根目录下创建 plugins 文件夹并上传相关的 Flink 依赖,如 flink-dist, flink-table 等,具体见下文。当然也可在启动文件中指定 FLINK_HOME,但不建议这样做。 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 等冲突内容。 Dinky 当前版本的 yarn 的 perjob 与 application 执行模式依赖 flink-shade-hadoop ,如果你的 Hadoop 版本为 2+ 或 3+,需要额外添加 flink-shade-hadoop-uber-3 包,请手动删除该包内部的 javax.servlet 等冲突内容。
当然如果你的 Hadoop 为 3+ 也可以自行编译对于版本的 dlink-client-hadoop.jar 以替代 uber 包, 当然如果你的 Hadoop 为 3+ 也可以自行编译对于版本的 dlink-client-hadoop.jar 以替代 uber 包,
:::
``` ```
#创建目录 #创建目录
...@@ -163,15 +165,26 @@ https://mvnrepository.com/artifact/org.apache.flink/flink-shaded-hadoop-3-uber?r ...@@ -163,15 +165,26 @@ https://mvnrepository.com/artifact/org.apache.flink/flink-shaded-hadoop-3-uber?r
config/ -- 配置文件 config/ -- 配置文件
|- application.yml |- application.yml
extends/ -- 扩展 extends/ -- 扩展
|- dlink-client-1.11.jar |- dlink-client-1.11.jar -- 适配 Flink1.11.x
|- dlink-client-1.12.jar |- dlink-client-1.12.jar -- 适配 Flink1.12.x
|- dlink-client-1.14.jar |- dlink-client-1.14.jar -- 适配 Flink1.14.x
|- dlink-client-1.15.jar -- 适配 Flink1.15.x
html/ -- 前端编译产物 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/ -- 内部组件 lib/ -- 内部组件
|- dlink-alert-dingtalk.jar |- dlink-alert-dingtalk.jar
|- dlink-alert-email.jar
|- dlink-alert-feishu.jar
|- dlink-alert-wechat.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-connector-jdbc.jar
|- dlink-function.jar |- dlink-function.jar
|- dlink-metadata-clickhouse.jar |- dlink-metadata-clickhouse.jar
...@@ -195,6 +208,7 @@ plugins/ ...@@ -195,6 +208,7 @@ plugins/
sql/ sql/
|- dlink.sql -- Mysql初始化脚本 |- dlink.sql -- Mysql初始化脚本
|- dlink_history.sql -- Mysql各版本及时间点升级脚本 |- dlink_history.sql -- Mysql各版本及时间点升级脚本
|- dlinkmysqlcatalog.sql -- dlink 的 catalog 表 SQL 脚本
auto.sh --启动停止脚本 auto.sh --启动停止脚本
dlink-admin.jar --主程序包 dlink-admin.jar --主程序包
``` ```
...@@ -222,41 +236,4 @@ $sh auto.sh status ...@@ -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/)
:::
...@@ -17,7 +17,7 @@ Dinky 定义了 CDCSOURCE 整库同步的语法,该语法和 CDAS 作用相似 ...@@ -17,7 +17,7 @@ Dinky 定义了 CDCSOURCE 整库同步的语法,该语法和 CDAS 作用相似
![source_merge](http://www.aiwenmo.com/dinky/docs/zh-CN/data_integration_guide/cdcsource_statementssource_merge.png) ![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 到对应的表。 ​ Dinky 采用的是只构建一个 source,然后根据 schema、database、table 进行分流处理,分别 sink 到对应的表。
...@@ -45,6 +45,26 @@ dlink-client-1.1x-0.x.x.jar ...@@ -45,6 +45,26 @@ dlink-client-1.1x-0.x.x.jar
dlink-client-base-0.x.x.jar dlink-client-base-0.x.x.jar
dlink-common-0.x.x.jar dlink-common-0.x.x.jar
``` ```
=======
:::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
:::
### 语法结构 ### 语法结构
......
This source diff could not be displayed because it is too large. You can view the blob instead.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment