Commit 2e5f576f authored by godkaikai's avatar godkaikai

0.3.2

parent 6d32afa0
......@@ -95,9 +95,9 @@ DataLink 开源项目及社区正在建设,希望本项目可以帮助你更
### 版本
抢先体验( main 主支):dlink-0.3.2
抢先体验( main 主支):dlink-0.3.3
稳定版本( 0.3.1 分支):dlink-0.3.1
稳定版本( 0.3.2 分支):dlink-0.3.2
### 从安装包开始
......@@ -149,6 +149,7 @@ sh auto.sh status
此时通过 8888 端口号可以正常访问 Dlink 的前端页面,但是如果在 plugins 中引入 Hadoop 依赖后,网页将无法正常访问,所以建议使用 nginx 的方式部署。
前端 Nginx 部署:
将 dist.rar 解压并上传至 nginx 的 html 文件夹下,修改 nginx 配置文件并重启。
```shell
server {
listen 9999;
......@@ -212,6 +213,7 @@ dlink -- 父项目
| |-config -- 配置文件
| |-doc -- 使用文档
| |-sql -- sql脚本
|-dlink-extends -- 扩展中心
|-dlink-function -- 函数中心
|-dlink-metadata -- 元数据中心
| |-dlink-metadata-base -- 元数据基础组件
......@@ -254,7 +256,7 @@ mvn clean install -Dmaven.test.skip=true
Flink 的版本取决于 lib 下的 dlink-client-1.12.jar。
当前版本默认为 Flink 1.12.4 API。
向其他版本的集群提交任务可能存在问题,已实现 1.11、1.12、1.13,切换版本时只需要将对应依赖在lib下进行替换,然后重启即可。
向其他版本的集群提交任务可能存在问题,已实现 1.11、1.12、1.13, 1.14,切换版本时只需要将对应依赖在lib下进行替换,然后重启即可。
## 使用手册
......@@ -274,7 +276,7 @@ Flink 的版本取决于 lib 下的 dlink-client-1.12.jar。
1. 在左侧目录区域创建文件夹或任务。
2. 在中间编辑区编写 FlinkSQL 。
3. 在右侧配置执行参数。
3. 在右侧配置作业配置和执行参数。
4. Fragment 开启后,可以使用增强的 sql 片段语法:
```sql
sf:=select * from;tb:=student;
......@@ -292,15 +294,23 @@ AGG BY TOP2(value) as (value,rank);
```
6. MaxRowNum 为批流执行Select时预览查询结果的最大集合长度,默认 100,最大 9999。
7. SavePointPath 当前版本属于非 Jar 提交,暂不可用。
8. Flink 共享会话共享 Catalog 。
8. Flink 共享会话共享 Catalog ,会话的使用需要在左侧会话选项卡手动创建并维护
9. 连接器为 Catalog 里的表信息,清空按钮会销毁当前会话。
10. Local 模式请使用少量测试数据,真实数据请使用远程集群。
11. 执行 SQL 时,如果您选中了部分 SQL,则会执行选中的内容,否则执行全部内容。
12. 小火箭的提交功能是异步提交当前任务已保存的 FlinkSQL 及配置到集群。无法提交草稿
13. 执行信息或者历史中那个很长很长的就是集群上的 JobId。
12. 小火箭的提交功能是异步提交当前任务已保存的 FlinkSQL 及配置到集群。由于适用于快速提交稳定的任务,所以无法提交草稿,且无法预览数据
13. 执行信息或者历史中那个很长很长的就是集群上的 JobId,任务历史可以查看执行过的任务的数据回放
14. 草稿是无法被异步远程提交的,只能同步执行。
15. 灰色按钮代表近期将实现。
16. 同步执行时可以自由指定任务名,异步提交默认为作业名。
17. 支持 set 语法设置 Flink 的执行配置,其优先级大于右侧的配置。
18. 支持远程集群查看及停止任务。
19. 支持自定义的 sql 函数或片段的自动补全,通过函数文档维护。
20. 支持 Flink 所有官方的连接器及插件的扩展,但需注意版本号适配。
21. 使用 IDEA 进行源码调试时,需要在 admin 及 core 下修改相应 pom 依赖的引入来完成功能的加载。
22. 支持可执行 FlinkSql (Insert into)的血缘分析,无论你的 sql 有多复杂或者多 view。
23. Dlink 目前提交方式支持 Standalone 及 Yarn Session,近期将开源 Yarn Application 的提交方式。
24. Dlink 目前对于 Flink 多版本的支持只能一个 Dlink 实例支持一个 Flink 版本,未来将开源同时支持多版本的能力。
#### 使用技巧
1.[Flink AggTable 在 Dlink 的实践](https://github.com/DataLinkDC/dlink/blob/main/dlink-doc/doc/FlinkAggTable%E5%9C%A8Dlink%E7%9A%84%E5%BA%94%E7%94%A8.md)
......
......@@ -5,7 +5,7 @@
<parent>
<artifactId>dlink</artifactId>
<groupId>com.dlink</groupId>
<version>0.3.2-SANPSHOT</version>
<version>0.3.2</version>
</parent>
<modelVersion>4.0.0</modelVersion>
......
......@@ -5,7 +5,7 @@
<parent>
<artifactId>dlink</artifactId>
<groupId>com.dlink</groupId>
<version>0.3.2-SANPSHOT</version>
<version>0.3.2</version>
</parent>
<modelVersion>4.0.0</modelVersion>
......
......@@ -3,7 +3,7 @@
<parent>
<artifactId>dlink-client</artifactId>
<groupId>com.dlink</groupId>
<version>0.3.2-SANPSHOT</version>
<version>0.3.2</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>dlink-client-1.11</artifactId>
......
......@@ -5,7 +5,7 @@
<parent>
<artifactId>dlink-client</artifactId>
<groupId>com.dlink</groupId>
<version>0.3.2-SANPSHOT</version>
<version>0.3.2</version>
</parent>
<modelVersion>4.0.0</modelVersion>
......
......@@ -3,7 +3,7 @@
<parent>
<artifactId>dlink-client</artifactId>
<groupId>com.dlink</groupId>
<version>0.3.2-SANPSHOT</version>
<version>0.3.2</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>dlink-client-1.12</artifactId>
......
......@@ -5,7 +5,7 @@
<parent>
<artifactId>dlink-client</artifactId>
<groupId>com.dlink</groupId>
<version>0.3.2-SANPSHOT</version>
<version>0.3.2</version>
</parent>
<modelVersion>4.0.0</modelVersion>
......
......@@ -3,7 +3,7 @@
<parent>
<artifactId>dlink-client</artifactId>
<groupId>com.dlink</groupId>
<version>0.3.2-SANPSHOT</version>
<version>0.3.2</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>dlink-client-1.13</artifactId>
......@@ -61,7 +61,7 @@
<properties>
<java.version>1.8</java.version>
<scala.binary.version>2.11</scala.binary.version>
<flink.version>1.13.2</flink.version>
<flink.version>1.13.3</flink.version>
<maven.compiler.source>1.8</maven.compiler.source>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.target>1.8</maven.compiler.target>
......
......@@ -5,7 +5,7 @@
<parent>
<artifactId>dlink-client</artifactId>
<groupId>com.dlink</groupId>
<version>0.3.2-SANPSHOT</version>
<version>0.3.2</version>
</parent>
<modelVersion>4.0.0</modelVersion>
......
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<parent>
<artifactId>dlink-client</artifactId>
<groupId>com.dlink</groupId>
<version>0.3.2</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>dlink-client-1.14</artifactId>
<build>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
</plugin>
<plugin>
<artifactId>maven-shade-plugin</artifactId>
<version>3.2.1</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<transformers>
<transformer>
<resource>reference.conf</resource>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
<configuration>
<filters>
<filter>
<artifact>*:*</artifact>
<excludes>
<exclude>META-INF/*.SF</exclude>
<exclude>META-INF/*.DSA</exclude>
<exclude>META-INF/*.RSA</exclude>
</excludes>
</filter>
</filters>
</configuration>
</plugin>
</plugins>
</build>
<properties>
<java.version>1.8</java.version>
<scala.binary.version>2.11</scala.binary.version>
<flink.version>1.14.0</flink.version>
<maven.compiler.source>1.8</maven.compiler.source>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.target>1.8</maven.compiler.target>
<junit.version>4.12</junit.version>
</properties>
</project>
......@@ -5,7 +5,7 @@
<parent>
<artifactId>dlink-client</artifactId>
<groupId>com.dlink</groupId>
<version>0.3.2-SANPSHOT</version>
<version>0.3.2</version>
</parent>
<modelVersion>4.0.0</modelVersion>
......
......@@ -5,7 +5,7 @@
<parent>
<artifactId>dlink</artifactId>
<groupId>com.dlink</groupId>
<version>0.3.2-SANPSHOT</version>
<version>0.3.2</version>
</parent>
<modelVersion>4.0.0</modelVersion>
......
......@@ -5,7 +5,7 @@
<parent>
<artifactId>dlink</artifactId>
<groupId>com.dlink</groupId>
<version>0.3.2-SANPSHOT</version>
<version>0.3.2</version>
</parent>
<modelVersion>4.0.0</modelVersion>
......
......@@ -5,7 +5,7 @@
<parent>
<artifactId>dlink-connectors</artifactId>
<groupId>com.dlink</groupId>
<version>0.3.2-SANPSHOT</version>
<version>0.3.2</version>
</parent>
<modelVersion>4.0.0</modelVersion>
......
......@@ -5,7 +5,7 @@
<parent>
<artifactId>dlink-connectors</artifactId>
<groupId>com.dlink</groupId>
<version>0.3.2-SANPSHOT</version>
<version>0.3.2</version>
</parent>
<modelVersion>4.0.0</modelVersion>
......
......@@ -5,7 +5,7 @@
<parent>
<artifactId>dlink</artifactId>
<groupId>com.dlink</groupId>
<version>0.3.2-SANPSHOT</version>
<version>0.3.2</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<packaging>pom</packaging>
......
......@@ -5,7 +5,7 @@
<parent>
<artifactId>dlink</artifactId>
<groupId>com.dlink</groupId>
<version>0.3.2-SANPSHOT</version>
<version>0.3.2</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<packaging>jar</packaging>
......
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>dlink</artifactId>
<groupId>com.dlink</groupId>
<version>0.3.2</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>dlink-executor</artifactId>
<properties>
<java.version>1.8</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>com.dlink</groupId>
<artifactId>dlink-common</artifactId>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
</dependency>
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>provided</scope>
</dependency>
<!--<dependency>
<groupId>com.dlink</groupId>
<artifactId>dlink-client-1.12</artifactId>
&lt;!&ndash;<scope>provided</scope>&ndash;&gt;
</dependency>
<dependency>
<groupId>com.dlink</groupId>
<artifactId>dlink-connector-jdbc-1.12</artifactId>
&lt;!&ndash;<scope>provided</scope>&ndash;&gt;
</dependency>
<dependency>
<groupId>com.dlink</groupId>
<artifactId>dlink-function</artifactId>
&lt;!&ndash;<scope>provided</scope>&ndash;&gt;
</dependency>-->
</dependencies>
</project>
\ No newline at end of file
package com.dlink.constant;
/**
* FlinkConstant
*
* @author wenmo
* @since 2021/5/25 14:39
**/
public interface FlinkConstant {
/**
* flink端口
*/
Integer FLINK_REST_DEFAULT_PORT = 8081;
/**
* flink会话默认个数
*/
Integer DEFAULT_SESSION_COUNT = 256;
/**
* flink加载因子
*/
Double DEFAULT_FACTOR = 0.75;
/**
* 本地模式host
*/
String LOCAL_HOST = "localhost:8081";
}
package com.dlink.exception;
/**
* FlinkException
*
* @author wenmo
* @since 2021/10/22 11:13
**/
public class FlinkException extends RuntimeException {
public FlinkException(String message, Throwable cause) {
super(message, cause);
}
public FlinkException(String message) {
super(message);
}
}
package com.dlink.executor;
import com.dlink.assertion.Asserts;
/**
* AbstractExecutor
*
* @author wenmo
* @since 2021/10/22 11:19
**/
public abstract class AbstractExecutor implements Executor {
protected EnvironmentSetting environmentSetting;
protected ExecutorSetting executorSetting;
public Executor setEnvironmentSetting(EnvironmentSetting setting) {
this.environmentSetting=setting;
return this;
}
public EnvironmentSetting getEnvironmentSetting() {
return environmentSetting;
}
public ExecutorSetting getExecutorSetting() {
return executorSetting;
}
public void setExecutorSetting(ExecutorSetting executorSetting) {
this.executorSetting = executorSetting;
}
public boolean canHandle(String version) {
return Asserts.isEqualsIgnoreCase(getVersion(),version);
}
}
package com.dlink.executor;
import com.dlink.assertion.Asserts;
import com.dlink.constant.FlinkConstant;
import com.dlink.constant.NetConstant;
import lombok.Getter;
import lombok.Setter;
/**
* EnvironmentSetting
*
* @author wenmo
* @since 2021/5/25 13:45
**/
@Getter
@Setter
public class EnvironmentSetting {
private String host;
private int port;
private boolean useRemote;
private String version;
public static final EnvironmentSetting LOCAL = new EnvironmentSetting(false);
public EnvironmentSetting(boolean useRemote) {
this.useRemote = useRemote;
}
public EnvironmentSetting(String host, int port) {
this.host = host;
this.port = port;
this.useRemote = true;
}
public EnvironmentSetting(String host, int port, boolean useRemote, String version) {
this.host = host;
this.port = port;
this.useRemote = useRemote;
this.version = version;
}
public static EnvironmentSetting build(String address){
Asserts.checkNull(address,"Flink 地址不能为空");
String[] strs = address.split(NetConstant.COLON);
if (strs.length >= 2) {
return new EnvironmentSetting(strs[0],Integer.parseInt(strs[1]));
} else {
return new EnvironmentSetting(strs[0], FlinkConstant.FLINK_REST_DEFAULT_PORT);
}
}
public String getAddress(){
return host + NetConstant.COLON + port;
}
}
package com.dlink.executor;
import com.dlink.assertion.Asserts;
import com.dlink.exception.FlinkException;
import sun.misc.Service;
import java.util.Iterator;
import java.util.Optional;
/**
* Executor
*
* @author wenmo
* @since 2021/10/22 11:01
**/
public interface Executor {
static Optional<Executor> get(EnvironmentSetting setting) {
Asserts.checkNotNull(setting, "Flink 执行配置不能为空");
Iterator<Executor> providers = Service.providers(Executor.class);
while (providers.hasNext()) {
Executor executor = providers.next();
if (executor.canHandle(setting.getVersion())) {
return Optional.of(executor.setEnvironmentSetting(setting));
}
}
return Optional.empty();
}
static Executor build(EnvironmentSetting config) {
Optional<Executor> optionalExecutor = Executor.get(config);
if (!optionalExecutor.isPresent()) {
throw new FlinkException("不支持 Flink 版本【" + config.getVersion() + "】");
}
return optionalExecutor.get();
}
Executor setEnvironmentSetting(EnvironmentSetting setting);
EnvironmentSetting getEnvironmentSetting();
boolean canHandle(String type);
String getVersion();
Executor build();
Executor build(EnvironmentSetting environmentSetting,ExecutorSetting executorSetting);
Executor buildLocalExecutor();
Executor buildRemoteExecutor(EnvironmentSetting environmentSetting,ExecutorSetting executorSetting);
}
package com.dlink.executor;
import lombok.Getter;
import lombok.Setter;
import java.util.Map;
/**
* ExecutorSetting
*
* @author wenmo
* @since 2021/5/25 13:43
**/
@Setter
@Getter
public class ExecutorSetting {
private Integer checkpoint;
private Integer parallelism;
private boolean useSqlFragment;
private String savePointPath;
private String jobName;
private Map<String,String> config;
public static final ExecutorSetting DEFAULT = new ExecutorSetting(0,1,true);
public ExecutorSetting(boolean useSqlFragment) {
this.useSqlFragment = useSqlFragment;
}
public ExecutorSetting(Integer checkpoint) {
this.checkpoint = checkpoint;
}
public ExecutorSetting(Integer checkpoint, boolean useSqlFragment) {
this.checkpoint = checkpoint;
this.useSqlFragment = useSqlFragment;
}
public ExecutorSetting(Integer checkpoint, Integer parallelism, boolean useSqlFragment) {
this.checkpoint = checkpoint;
this.parallelism = parallelism;
this.useSqlFragment = useSqlFragment;
}
public ExecutorSetting(Integer checkpoint, Integer parallelism, boolean useSqlFragment, String savePointPath, String jobName) {
this.checkpoint = checkpoint;
this.parallelism = parallelism;
this.useSqlFragment = useSqlFragment;
this.savePointPath = savePointPath;
this.jobName = jobName;
}
public ExecutorSetting(Integer checkpoint, Integer parallelism, boolean useSqlFragment, String savePointPath) {
this.checkpoint = checkpoint;
this.parallelism = parallelism;
this.useSqlFragment = useSqlFragment;
this.savePointPath = savePointPath;
}
public ExecutorSetting(Integer checkpoint, Integer parallelism, boolean useSqlFragment, String savePointPath, String jobName, Map<String, String> config) {
this.checkpoint = checkpoint;
this.parallelism = parallelism;
this.useSqlFragment = useSqlFragment;
this.savePointPath = savePointPath;
this.jobName = jobName;
this.config = config;
}
}
......@@ -3,7 +3,7 @@
<parent>
<artifactId>dlink</artifactId>
<groupId>com.dlink</groupId>
<version>0.3.2-SANPSHOT</version>
<version>0.3.2</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>dlink-extends</artifactId>
......
......@@ -5,7 +5,7 @@
<parent>
<artifactId>dlink</artifactId>
<groupId>com.dlink</groupId>
<version>0.3.2-SANPSHOT</version>
<version>0.3.2</version>
</parent>
<modelVersion>4.0.0</modelVersion>
......
......@@ -5,7 +5,7 @@
<parent>
<artifactId>dlink</artifactId>
<groupId>com.dlink</groupId>
<version>0.3.2-SANPSHOT</version>
<version>0.3.2</version>
</parent>
<modelVersion>4.0.0</modelVersion>
......
......@@ -5,7 +5,7 @@
<parent>
<artifactId>dlink-metadata</artifactId>
<groupId>com.dlink</groupId>
<version>0.3.2-SANPSHOT</version>
<version>0.3.2</version>
</parent>
<modelVersion>4.0.0</modelVersion>
......
......@@ -5,7 +5,7 @@
<parent>
<artifactId>dlink-metadata</artifactId>
<groupId>com.dlink</groupId>
<version>0.3.2-SANPSHOT</version>
<version>0.3.2</version>
</parent>
<modelVersion>4.0.0</modelVersion>
......
......@@ -5,7 +5,7 @@
<parent>
<artifactId>dlink-metadata</artifactId>
<groupId>com.dlink</groupId>
<version>0.3.2-SANPSHOT</version>
<version>0.3.2</version>
</parent>
<modelVersion>4.0.0</modelVersion>
......
......@@ -5,7 +5,7 @@
<parent>
<artifactId>dlink-metadata</artifactId>
<groupId>com.dlink</groupId>
<version>0.3.2-SANPSHOT</version>
<version>0.3.2</version>
</parent>
<modelVersion>4.0.0</modelVersion>
......
......@@ -5,7 +5,7 @@
<parent>
<artifactId>dlink-metadata</artifactId>
<groupId>com.dlink</groupId>
<version>0.3.2-SANPSHOT</version>
<version>0.3.2</version>
</parent>
<modelVersion>4.0.0</modelVersion>
......
......@@ -5,7 +5,7 @@
<parent>
<artifactId>dlink</artifactId>
<groupId>com.dlink</groupId>
<version>0.3.2-SANPSHOT</version>
<version>0.3.2</version>
</parent>
<modelVersion>4.0.0</modelVersion>
......
......@@ -5,7 +5,7 @@
<parent>
<artifactId>dlink</artifactId>
<groupId>com.dlink</groupId>
<version>0.3.2-SANPSHOT</version>
<version>0.3.2</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<packaging>pom</packaging>
......
import { Tabs,Empty,Tooltip,Button } from "antd";
import { IndentedTreeGraph } from '@ant-design/charts';
import { IndentedTreeGraph,DecompositionTreeGraph } from '@ant-design/charts';
import {SearchOutlined} from "@ant-design/icons";
import {StateType} from "@/pages/FlinkSqlStudio/model";
import {connect} from "umi";
......@@ -48,10 +48,13 @@ const StudioCA = (props:any) => {
* item.source: 获取 source 数据
* item.target: 获取 target 数据
*/
// console.log(graph.findById(item.target).getModel());
/*console.log(item);
console.log(graph);
console.log(graph.findById(item.target.id).getModel());*/
return {
stroke: '#40a9ff',
lineWidth: graph.findById(item.target).getModel().columnSize,
// lineWidth: graph.findById(item.target).getModel().columnSize,
lineWidth: 1,
strokeOpacity: 0.5,
};
},
......@@ -88,7 +91,8 @@ const StudioCA = (props:any) => {
// console.log(graph.findById(item.target).getModel());
return {
stroke: '#40a9ff',
lineWidth: graph.findById(item.target).getModel().columnSize,
// lineWidth: graph.findById(item.target).getModel().columnSize,
lineWidth: 1,
strokeOpacity: 0.5,
};
},
......
......@@ -20,7 +20,7 @@ export default (): React.ReactNode => {
<Alert
message={intl.formatMessage({
id: 'pages.welcome.alertMessage',
defaultMessage: '实时计算平台 Dlink & Apache Flink 即将发布,目前为体验版,版本号为 0.3.1。',
defaultMessage: '实时计算平台 Dlink & Apache Flink 即将发布,目前为体验版,版本号为 0.3.2。',
})}
type="success"
showIcon
......@@ -304,7 +304,7 @@ export default (): React.ReactNode => {
</ul>
</Paragraph>
</Timeline.Item>
<Timeline.Item><Text code>0.3.2</Text> <Text type="secondary">2021-10-?</Text>
<Timeline.Item><Text code>0.3.2</Text> <Text type="secondary">2021-10-22</Text>
<p> </p>
<Paragraph>
<ul>
......@@ -338,6 +338,9 @@ export default (): React.ReactNode => {
<li>
<Link>扩展了 Flink 1.14 的支持</Link>
</li>
<li>
<Link>修复血缘分析缩进树图渲染bug</Link>
</li>
</ul>
</Paragraph>
</Timeline.Item>
......
......@@ -7,11 +7,12 @@
<groupId>com.dlink</groupId>
<artifactId>dlink</artifactId>
<packaging>pom</packaging>
<version>0.3.2-SANPSHOT</version>
<version>0.3.2</version>
<modules>
<module>dlink-core</module>
<module>dlink-connectors</module>
<module>dlink-executor</module>
<module>dlink-client</module>
<module>dlink-function</module>
<module>dlink-common</module>
......
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