Unverified Commit 023b3065 authored by zhu-mingye's avatar zhu-mingye Committed by GitHub

[Feature][sql,docs] Optimize SQL files and differentiate versions by directory (#1132)

* Optimize sql files

* Optimize sql files

* Optimize history-sql file

* Optimize history-sql file

* [Feature][sql,docs] Optimize the SQL files and divide them into directories according to the version

* 1.Format SQL
 2.Unified character set encoding and collation
 3.Package the upgrade folder into the release package

* 1.Format SQL
 2.Unified character set encoding and collation

* Unified character set encoding and collation

* Package the upgrade folder into the release package
parent f53833af
......@@ -92,7 +92,7 @@ Upgrade steps:
(1) Upgrade the app: Replace all dependencies of latest Dinky.
(2) Upgrade the DDL: Execute some of the upgrade statements in dlink_history.sql in the sql directory. It is based on the version number and date to determine where to start the execution. Please do not execute all sql directly.
(2) Upgrade the DDL: Execute the relevant version upgrade statements in the sql/upgrade directory, and execute them in the order of the version numbers.
## Thanks
......
......@@ -92,7 +92,7 @@ Dinky 是一个 `开箱即用` 、`易扩展` ,以 `Apache Flink` 为基础,
(1)升级应用:替换最新 Dinky 所有依赖包;
(2)升级 DDL:执行 sql 目录下的 dlink_history.sql 中的部分升级语句,依据是通过版本号与日期来判断从何处开始执行,请不要直接执行全部 sql
(2)升级 DDL:执行 sql/upgrade 目录下的相关版本升级语句,依次按照版本号顺序执行
## 感谢
......
<!--
~
~ Licensed to the Apache Software Foundation (ASF) under one or more
~ contributor license agreements. See the NOTICE file distributed with
~ this work for additional information regarding copyright ownership.
~ The ASF licenses this file to You under the Apache License, Version 2.0
~ (the "License"); you may not use this file except in compliance with
~ the License. You may obtain a copy of the License at
~
~ http://www.apache.org/licenses/LICENSE-2.0
~
~ Unless required by applicable law or agreed to in writing, software
~ distributed under the License is distributed on an "AS IS" BASIS,
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
~ See the License for the specific language governing permissions and
~ limitations under the License.
~
-->
<assembly>
<id>${project.version}</id>
<formats>
......@@ -35,7 +54,8 @@
<directory>${project.parent.basedir}/dlink-doc/sql</directory>
<outputDirectory>sql</outputDirectory>
<includes>
<include>*.sql</include>
<include>dinky.sql</include>
<include>upgrade/*/*/*.sql</include>
</includes>
</fileSet>
<!--<fileSet>
......
......@@ -67,35 +67,36 @@ Dlink-0.3.2 版本上线了一个非常实用的功能——自动补全。效
​ 由于 Dlink 采用关键依赖外置来管理器功能的支撑,分为自身依赖与 Flink 相关依赖,易混淆,所以在部署包新增了 `plugins` 目录用于存放 Flink 相关依赖,而 libs 下仅存放 Dlink 的自身依赖。此外 `extends` 存放暂不使用的依赖。其包结构如下所示:
```java
config/ -- 配置文件
|- application.yml
extends/ -- 扩展
|- clickhouse-jdbc-0.2.6.jar
|- dlink-client-1.11.jar
|- dlink-client-1.13.jar
|- dlink-client-1.14.jar
|- dlink-flink-shaded-hadoop-3-uber.jar
|- flink-sql-connector-hbase-1.4_2.11-1.12.5.jar
|- flink-sql-connector-hbase-2.2_2.11-1.12.5.jar
|- flink-sql-connector-kafka_2.11-1.12.5.jar
|- ojdbc8-12.2.0.1.jar
lib/ -- 外部依赖及Connector
|- dlink-client-1.12.jar -- 必需
|- dlink-connector-jdbc.jar
|- dlink-function.jar
|- dlink-metadata-clickhouse.jar
|- dlink-metadata-mysql.jar
|- dlink-metadata-oracle.jar
|- dlink-metadata-postgresql.jar
plugins/
|- flink-connector-jdbc_2.11-1.12.5.jar
|- flink-csv-1.12.5.jar
|- flink-json-1.12.5.jar
|- mysql-connector-java-8.0.21.jar
sql/
|- dlink.sql --Mysql初始化脚本
auto.sh --启动停止脚本
dlink-admin.jar --程序包
config/--配置文件
|-application.yml
extends/--扩展
|-clickhouse-jdbc-0.2.6.jar
|-dlink-client-1.11.jar
|-dlink-client-1.13.jar
|-dlink-client-1.14.jar
|-dlink-flink-shaded-hadoop-3-uber.jar
|-flink-sql-connector-hbase-1.4_2.11-1.12.5.jar
|-flink-sql-connector-hbase-2.2_2.11-1.12.5.jar
|-flink-sql-connector-kafka_2.11-1.12.5.jar
|-ojdbc8-12.2.0.1.jar
lib/--外部依赖及Connector
|-dlink-client-1.12.jar--必需
|-dlink-connector-jdbc.jar
|-dlink-function.jar
|-dlink-metadata-clickhouse.jar
|-dlink-metadata-mysql.jar
|-dlink-metadata-oracle.jar
|-dlink-metadata-postgresql.jar
plugins/
|-flink-connector-jdbc_2.11-1.12.5.jar
|-flink-csv-1.12.5.jar
|-flink-json-1.12.5.jar
|-mysql-connector-java-8.0.21.jar
sql/
|-dinky.sql--Mysql初始化脚本
|-upgrade/--各个版本升级SQL脚本
auto.sh--启动停止脚本
dlink-admin.jar--程序包
```
### 2.新增 Nginx 的部署方式
......@@ -156,8 +157,6 @@ dlink-admin.jar --程序包
​ 4.后续只更新前端资源时,不需要重启 Nginx。
## 新改动
### 1.优化 Flink 多版本间的切换问题
......
......@@ -201,7 +201,8 @@ lib/ -- 外部依赖及Connector
|- flink-json-1.12.4.jar
|- mysql-connector-java-8.0.21.jar
sql/
|- dlink.sql -- Mysql初始化脚本
|- dinky.sql --Mysql初始化脚本
|- upgrade/ -- 各个版本升级SQL脚本
auto.sh -- 启动停止脚本
dlink-admin.jar -- 程序包
```
......@@ -219,7 +220,7 @@ spring:
### 初始化数据库
在 Mysql 数据库中执行 dlink.sql 脚本。
在 Mysql 数据库中执行 dinky.sql 脚本。
### 执行与停止
......
......@@ -55,7 +55,7 @@ Dlink 通过已注册的集群配置来获取对应的 YarnClient 实例。对
### 获取安装包
百度网盘链接:https://pan.baidu.com/s/1HNAmpiZMu8IUrUKQgR55qQ
提取码:0400
提取码:0400
### 安装
......@@ -64,29 +64,30 @@ Dlink 通过已注册的集群配置来获取对应的 YarnClient 实例。对
得到以下项目结构:
```java
config/ -- 配置文件
|- application.yml
extends/ -- 扩展文件
html/ -- 前端文件
jar/ -- 扩展 Flink Jar 文件
lib/ -- 外部依赖及Connector
|- dlink-client-1.13.jar
|- dlink-connector-jdbc.jar
|- dlink-function.jar
|- dlink-metadata-clickhouse.jar
|- dlink-metadata-mysql.jar
|- dlink-metadata-oracle.jar
|- dlink-metadata-postgresql.jar
plugins/ -- Flink 相关扩展
|- flink-shaded-hadoop-3-uber.jar
|- flink-connector-jdbc_2.11-1.13.3.jar
|- flink-csv-1.13.3.jar
|- flink-json-1.13.3.jar
|- mysql-connector-java-8.0.21.jar
sql/
|- dlink.sql -- Mysql初始化脚本
auto.sh -- 启动停止脚本
dlink-admin.jar -- 程序包
config/--配置文件
|-application.yml
extends/--扩展文件
html/--前端文件
jar/--扩展 Flink Jar 文件
lib/--外部依赖及Connector
|-dlink-client-1.13.jar
|-dlink-connector-jdbc.jar
|-dlink-function.jar
|-dlink-metadata-clickhouse.jar
|-dlink-metadata-mysql.jar
|-dlink-metadata-oracle.jar
|-dlink-metadata-postgresql.jar
plugins/--Flink 相关扩展
|-flink-shaded-hadoop-3-uber.jar
|-flink-connector-jdbc_2.11-1.13.3.jar
|-flink-csv-1.13.3.jar
|-flink-json-1.13.3.jar
|-mysql-connector-java-8.0.21.jar
sql/
|-dinky.sql--Mysql初始化脚本
|-upgrade/--各个版本升级SQL脚本
auto.sh--启动停止脚本
dlink-admin.jar--程序包
```
### 修改配置文件
......@@ -108,7 +109,7 @@ spring:
### 初始化数据库
在对应数据库下执行 sql 目录下的 dlink.sql 脚本。
在对应数据库下执行 sql 目录下的 dinky.sql 脚本。
执行成功后,可见以下数据表:
......
# Dlink 实时计算平台——部署篇
## 环境准备
以下环境版本实测可用,缺一不可,如有其他版本的测试请告知小编。
......@@ -42,7 +40,7 @@ mvn clean install -Dmaven.test.skip=true
## 直接下载安装包
百度网盘链接:https://pan.baidu.com/s/13Ffhe7QaSsGXfAwqSCFdNg
提取码:0301
提取码:0301
## 应用部署
......@@ -66,7 +64,8 @@ lib/ -- 外部依赖及Connector
|- dlink-metadata-oracle-0.3.1.jar
|- dlink-metadata-postgresql-0.3.1.jar
sql/
|- dlink.sql -- Mysql初始化脚本
|- dinky.sql --Mysql初始化脚本
|- upgrade/ -- 各个版本升级SQL脚本
auto.sh -- 启动停止脚本
dlink-admin-0.3.1.jar -- 程序包
```
......@@ -90,7 +89,7 @@ spring:
### 初始化数据库表
在对应数据库下执行 sql 目录下的 dlink.sql 脚本。
在对应数据库下执行 sql 目录下的 dinky.sql 脚本。
执行成功后,可见以下数据表:
......
# Dlink 概念原理与源码扩展介绍
## Dlink 是什么
​ Dlink 是一个基于 Apache Flink 二次开发的网页版的 FlinkSQL Studio,可以连接多个 Flink 集群实例,并在线开发、执行、提交 FlinkSQL 语句以及预览其运行结果,支持 Flink 官方所有语法并进行了些许增强。
......@@ -43,20 +41,25 @@
#### Sql 片段
```sql
sf:=select * from;tb:=student;
${sf} ${tb}
sf:=
select *
from;
tb:=student;
${sf}
${tb}
## 效果等同于
select * from student
select *
from student
```
#### 表值聚合
```sql
CREATE AGGTABLE aggdemo AS
SELECT myField,value,rank
CREATE
AGGTABLE aggdemo AS
SELECT myField, value, rank
FROM MyTable
GROUP BY myField
AGG BY TOP2(value) as (value,rank);
GROUP BY myField AGG BY TOP2(value) as (value,rank);
```
### 同步执行结果预览
......@@ -116,8 +119,6 @@ Dlink 的临时会话相当于只启动一个 `sql-client` ,执行完语句后
| 远程环境 | 临时会话 | 异步提交 | 快速向集群提交任务,不需要查看运行结果 |
| 远程环境 | 共享会话 | 异步提交 | 共享会话效果无效 |
## 源码扩展
​ Dlink 的源码是非常简单的, Spring Boot 项目轻松上手。
......@@ -125,22 +126,22 @@ Dlink 的临时会话相当于只启动一个 `sql-client` ,执行完语句后
### 项目结构
```java
dlink -- 父项目
|-dlink-admin -- 管理中心
|-dlink-client -- Client 中心
| |-dlink-client-1.12 -- Client-1.12 实现
| |-dlink-client-1.13 -- Client-1.13 实现
|-dlink-connectors -- Connectors 中心
| |-dlink-connector-jdbc -- Jdbc 扩展
|-dlink-core -- 执行中心
|-dlink-doc -- 文档
| |-bin -- 启动脚本
| |-bug -- bug 反馈
| |-config -- 配置文件
| |-doc -- 使用文档
| |-sql -- sql脚本
|-dlink-function -- 函数中心
|-dlink-web -- React 前端
dlink--父项目
|-dlink-admin--管理中心
|-dlink-client--Client 中心
| |-dlink-client-1.12--Client-1.12实现
| |-dlink-client-1.13--Client-1.13实现
|-dlink-connectors--Connectors 中心
| |-dlink-connector-jdbc--Jdbc 扩展
|-dlink-core--执行中心
|-dlink-doc--文档
| |-bin--启动脚本
| |-bug--bug 反馈
| |-config--配置文件
| |-doc--使用文档
| |-sql--sql脚本
|-dlink-function--函数中心
|-dlink-web--React 前端
```
### 模块介绍
......@@ -223,21 +224,22 @@ maven clean install -Dmaven.test.skip=true
### 应用结构
```java
config/ -- 配置文件
|- application.yml
lib/ -- 外部依赖及Connector
|- dlink-client-1.12.jar -- 必需,二选一
|- dlink-client-1.13.jar -- 必需,二选一
|- dlink-connector-jdbc.jar
|- dlink-function-0.2.3.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 -- 程序包
config/--配置文件
|-application.yml
lib/--外部依赖及Connector
|-dlink-client-1.12.jar--必需,二选一
|-dlink-client-1.13.jar--必需,二选一
|-dlink-connector-jdbc.jar
|-dlink-function-0.2.3.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/
|-dinky.sql--Mysql初始化脚本
|-upgrade/--各个版本升级SQL脚本
auto.sh--启动停止脚本
dlink-admin.jar--程序包
```
### 修改配置文件
......
......@@ -27,7 +27,8 @@ lib/ -- 外部依赖及Connector
|- flink-json-1.12.4.jar
|- mysql-connector-java-8.0.21.jar
sql/
|- dlink.sql -- Mysql初始化脚本
|- dinky.sql --Mysql初始化脚本
|- upgrade/ -- 各个版本升级SQL脚本
auto.sh -- 启动停止脚本
dlink-admin.jar -- 程序包
```
......@@ -334,8 +335,6 @@ from aggscore b
![image-20210615120738413](https://mmbiz.qpic.cn/mmbiz_png/dyicwnSlTFTrkkX1Jsib7GxQY7tpiciaNdkGerEdvQLXGNqfm7KZT7ARaNBV0mlrUdah69JAB3miaBFBgUU3iaaowcLg/0?wx_fmt=png)
​ sink 表中只有五条数据,结果是正确的。
## Dlink 远程实现二维成绩单
......
This source diff could not be displayed because it is too large. You can view the blob instead.
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
DROP TABLE IF EXISTS `dlink_udf`;
CREATE TABLE `dlink_udf` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(50) DEFAULT NULL COMMENT 'udf名',
`class_name` varchar(50) DEFAULT NULL COMMENT '完整的类名',
`source_code` text COMMENT '源码',
`compiler_code` binary(255) DEFAULT NULL COMMENT '编译产物',
`version_id` int(11) DEFAULT NULL COMMENT '版本',
`version_description` varchar(50) DEFAULT NULL COMMENT '版本描述',
`is_default` tinyint(1) DEFAULT NULL COMMENT '是否默认',
`document_id` int(11) DEFAULT NULL COMMENT '对应文档id',
`from_version_id` int(11) DEFAULT NULL COMMENT '基于udf版本id',
`code_md5` varchar(50) DEFAULT NULL COMMENT '源码',
`dialect` varchar(50) DEFAULT NULL COMMENT '方言',
`type` varchar(50) DEFAULT NULL COMMENT '类型',
`step` int(255) DEFAULT NULL COMMENT '作业生命周期',
`enable` tinyint(1) DEFAULT NULL COMMENT '是否启用',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- ----------------------------
-- Table structure for dlink_udf_template
-- ----------------------------
DROP TABLE IF EXISTS `dlink_udf_template`;
CREATE TABLE `dlink_udf_template` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(20) DEFAULT NULL COMMENT '模板名称',
`code_type` varchar(10) DEFAULT NULL COMMENT '代码类型',
`function_type` varchar(10) DEFAULT NULL COMMENT '函数类型',
`template_code` text COMMENT '模板代码',
`enabled` tinyint(1) DEFAULT NULL,
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4;
-- ----------------------------
-- Records of dlink_udf_template
-- ----------------------------
BEGIN;
INSERT INTO `dlink_udf_template` (`id`, `name`, `code_type`, `function_type`, `template_code`, `enabled`, `create_time`, `update_time`) VALUES (1, 'java_udf', 'java', 'UDF', 'package ${package};\n\nimport org.apache.flink.table.functions.ScalarFunction;\n\npublic class ${className} extends ScalarFunction {\n public String eval(String s) {\n return null;\n }\n}', NULL, '2022-10-19 09:17:37', '2022-10-19 09:17:37');
INSERT INTO `dlink_udf_template` (`id`, `name`, `code_type`, `function_type`, `template_code`, `enabled`, `create_time`, `update_time`) VALUES (2, 'java_udtf', 'java', 'UDTF', 'package ${package};\n\nimport org.apache.flink.table.functions.ScalarFunction;\n\n@FunctionHint(output = @DataTypeHint(\"ROW<word STRING, length INT>\"))\npublic static class ${className} extends TableFunction<Row> {\n\n public void eval(String str) {\n for (String s : str.split(\" \")) {\n // use collect(...) to emit a row\n collect(Row.of(s, s.length()));\n }\n }\n}', NULL, '2022-10-19 09:22:58', '2022-10-19 10:01:57');
COMMIT;
SET FOREIGN_KEY_CHECKS = 1;
\ No newline at end of file
drop table if exists `metadata_database`;
create table if not exists `metadata_database` (
`id` int(11) not null AUTO_INCREMENT COMMENT '主键',
`database_name` varchar(255) NOT NULL COMMENT '名称',
`description` varchar(255) null comment'描述',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
`create_time` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='元数据对象信息';
drop table if exists `metadata_table`;
create table if not exists `metadata_table` (
`id` int(11) not null AUTO_INCREMENT COMMENT '主键',
`table_name` varchar(255) NOT NULL COMMENT '名称',
`table_type` varchar(255) NOT null comment '对象类型,分为:database 和 table view',
`database_id` int(11) not null COMMENT '数据库主键',
`description` varchar(255) null comment'描述',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
`create_time` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='元数据对象信息';
drop table if exists `metadata_database_property`;
create table if not exists `metadata_database_property` (
`key` varchar(255) NOT NULL COMMENT '属性key',
`value` varchar(255) NULL COMMENT '属性value',
`database_id` int(11) not null COMMENT '数据库主键',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
PRIMARY KEY (`key`, `database_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='元数据属性信息';
drop table if exists `metadata_table_property`;
create table if not exists `metadata_table_property` (
`key` varchar(255) NOT NULL COMMENT '属性key',
`value` varchar(255) NULL COMMENT '属性value',
`table_id` int(11) not null COMMENT '数据表名称',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
PRIMARY KEY (`key`, `table_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='元数据属性信息';
drop table if exists metadata_column;
create table if not exists `metadata_column` (
`column_name` varchar(255) NOT NULL COMMENT '列名',
`column_type` varchar(255) NOT NULL COMMENT '列类型, 有Physical Metadata Computed WATERMARK ',
`data_type` varchar(255) NOT NULL COMMENT '数据类型',
`expr` varchar(255) NULL COMMENT '表达式',
`description` varchar(255) NOT NULL COMMENT '字段描述',
`table_id` int(11) not null COMMENT '数据表名称',
`primary` bit null comment '主键',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
PRIMARY KEY (`table_id`,`column_name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='数据列信息';
drop table if exists `metadata_function`;
create table if not exists `metadata_function` (
`id` int(11) not null AUTO_INCREMENT COMMENT '主键',
`function_name` varchar(255) NOT NULL COMMENT '名称',
`class_name` varchar(255) NOT null comment '类名',
`database_id` int(11) not null COMMENT '数据库主键',
`function_language` varchar(255) null comment'UDF语言',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
`create_time` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='UDF信息';
\ No newline at end of file
This diff is collapsed.
/*
*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*/
-- 0.6.2 2022-04-17
-- ----------------------------
alter table dlink_task alter column fragment set default 0;
alter table dlink_task alter column statement_set set default 0;
alter table dlink_cluster_configuration modify column is_available tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否可用';
/*
*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*/
-- 0.6.5 2022-06-28
-- ----------------------------
alter table dlink_task ADD COLUMN `version_id` INT NULL COMMENT '版本号ID';
-- ----------------------------
-- Table structure for dlink_task_version
-- ----------------------------
CREATE TABLE IF NOT EXISTS `dlink_task_version`(
`id` int NOT NULL AUTO_INCREMENT COMMENT 'ID',
`task_id` int NOT NULL COMMENT '作业ID ',
`version_id` int NOT NULL COMMENT '版本ID ',
`statement` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci COMMENT 'flink sql 内容',
`name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '名称',
`alias` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '别名',
`dialect` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '方言',
`type` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '类型',
`task_configure` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '作业配置',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='作业历史版本';
/*
*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*/
-- 0.6.6 2022-07-23
-- ----------------------------
-- ----------------------------
-- Table structure for metadata_database
-- ----------------------------
CREATE TABLE IF NOT EXISTS `metadata_database` (
`id` int NOT NULL AUTO_INCREMENT COMMENT '主键',
`database_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '名称',
`description` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '描述',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='元数据对象信息';
-- ----------------------------
-- Table structure for metadata_table
-- ----------------------------
CREATE TABLE IF NOT EXISTS `metadata_table` (
`id` int NOT NULL AUTO_INCREMENT COMMENT '主键',
`table_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '名称',
`table_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '对象类型,分为:database 和 table view',
`database_id` int NOT NULL COMMENT '数据库主键',
`description` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '描述',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='元数据对象信息';
-- ----------------------------
-- Table structure for metadata_database_property
-- ----------------------------
CREATE TABLE IF NOT EXISTS `metadata_database_property` (
`key` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '属性key',
`value` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '属性value',
`database_id` int NOT NULL COMMENT '数据库主键',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
PRIMARY KEY (`key`,`database_id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='元数据属性信息';
-- ----------------------------
-- Table structure for metadata_table_property
-- ----------------------------
CREATE TABLE IF NOT EXISTS `metadata_table_property` (
`key` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '属性key',
`value` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '属性value',
`table_id` int NOT NULL COMMENT '数据表名称',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
PRIMARY KEY (`key`,`table_id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='元数据属性信息';
-- ----------------------------
-- Table structure for metadata_column
-- ----------------------------
CREATE TABLE IF NOT EXISTS `metadata_column` (
`column_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '列名',
`column_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '列类型, 有Physical Metadata Computed WATERMARK ',
`data_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '数据类型',
`expr` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '表达式',
`description` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '字段描述',
`table_id` int NOT NULL COMMENT '数据表名称',
`primary` bit(1) DEFAULT NULL COMMENT '主键',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
PRIMARY KEY (`table_id`,`column_name`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='数据列信息';
-- ----------------------------
-- Table structure for dlink_upload_file_record
-- ----------------------------
CREATE TABLE IF NOT EXISTS `metadata_function` (
`id` int NOT NULL AUTO_INCREMENT COMMENT '主键',
`function_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '名称',
`class_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '类名',
`database_id` int NOT NULL COMMENT '数据库主键',
`function_language` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT 'UDF语言',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='UDF信息';
/*
*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*/
-- ----------------------------
-- Table structure for dlink_fragment
-- ----------------------------
CREATE TABLE IF NOT EXISTS `dlink_fragment`(
`id` int NOT NULL AUTO_INCREMENT COMMENT '实例主键',
`name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '唯一名称',
`alias` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '别名',
`fragment_value` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '变量值',
`note` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci COMMENT '说明/描述',
`enabled` tinyint DEFAULT '1' COMMENT '是否启用',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE KEY `un_idx1` (`name`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='全局变量';
-- 0.6.7 2022-09-02
-- -----------------------
-- ----------------------------
-- Table structure for dlink_upload_file_record
-- ----------------------------
CREATE TABLE IF NOT EXISTS `dlink_upload_file_record` (
`id` tinyint NOT NULL AUTO_INCREMENT COMMENT '自增主键',
`name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '上传文件的类型名称,目前有:hadoop-conf(1)、flink-conf(2)、flink-lib(3)、user-jar(4)、dlink-jar(5)',
`enabled` tinyint(1) DEFAULT NULL COMMENT '是否可用',
`file_type` tinyint DEFAULT '-1' COMMENT '上传文件的类型ID,目前有:hadoop-conf(1)、flink-conf(2)、flink-lib(3)、user-jar(4)、dlink-jar(5),默认值-1表示无类型',
`target` tinyint NOT NULL COMMENT '上传文件的目的地,目前有:local(1)、hdfs(2)',
`file_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '文件名称',
`file_parent_path` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '文件父路径',
`file_absolute_path` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '文件完全绝对父路径',
`is_file` tinyint(1) NOT NULL DEFAULT '1' COMMENT '是否为文件',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='上传文件记录';
This diff is collapsed.
/*
*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*/
-- ----------------------------
-- Records of dlink_tenant
-- ----------------------------
INSERT INTO `dlink_tenant`(`id`, `tenant_code`, `is_delete`, `note`, `create_time`, `update_time`)
VALUES (1, 'DefaultTenant', 0, 'DefaultTenant', current_time, current_time);
-- ----------------------------
-- Records of dlink_role
-- ----------------------------
INSERT INTO `dlink_role`(`id`, `tenant_id`, `role_code`, `role_name`, `is_delete`, `note`, `create_time`, `update_time`)
VALUES (1, 1, 'SuperAdmin', '超级管理员', 0, '超级管理员角色', current_time, current_time);
-- ----------------------------
-- Records of dlink_namespace
-- ----------------------------
INSERT INTO `dlink_namespace`(`id`, `tenant_id`, `namespace_code`, `enabled`, `note`, `create_time`, `update_time`)
VALUES (1, 1, 'DefaultNameSpace', 1, '默认命名空间', current_time, current_time);
-- ----------------------------
-- Records of dlink_role_namespace
-- ----------------------------
INSERT INTO `dlink_role_namespace`(`id`, `role_id`, `namespace_id`, `create_time`, `update_time`)
VALUES (1, 1, 1, current_time, current_time);
-- ----------------------------
-- Records of dlink_user_role
-- ----------------------------
INSERT INTO `dlink_user_role`(`id`, `user_id`, `role_id`, `create_time`, `update_time`)
VALUES (1, 1, 1, current_time, current_time);
-- ----------------------------
-- Records of dlink_user_tenant
-- ----------------------------
INSERT INTO `dlink_user_tenant`(`id`, `user_id`, `tenant_id`, `create_time`, `update_time`)
VALUES (1, 1, 1, current_time, current_time);
-- ----------------------------
-- Records of dlink_udf_template
-- ----------------------------
INSERT INTO `dlink_udf_template` (`id`, `name`, `code_type`, `function_type`, `template_code`, `enabled`, `create_time`, `update_time`)
VALUES (1, 'java_udf', 'java', 'UDF', 'package ${package};\n\nimport org.apache.flink.table.functions.ScalarFunction;\n\npublic class ${className} extends ScalarFunction {\n public String eval(String s) {\n return null;\n }\n}', NULL, '2022-10-19 09:17:37', '2022-10-19 09:17:37');
INSERT INTO `dlink_udf_template` (`id`, `name`, `code_type`, `function_type`, `template_code`, `enabled`, `create_time`, `update_time`)
VALUES (2, 'java_udtf', 'java', 'UDTF', 'package ${package};\n\nimport org.apache.flink.table.functions.ScalarFunction;\n\n@FunctionHint(output = @DataTypeHint(\"ROW<word STRING, length INT>\"))\npublic static class ${className} extends TableFunction<Row> {\n\n public void eval(String str) {\n for (String s : str.split(\" \")) {\n // use collect(...) to emit a row\n collect(Row.of(s, s.length()));\n }\n }\n}', NULL, '2022-10-19 09:22:58', '2022-10-19 10:01:57');
......@@ -4,7 +4,6 @@ id: deploy
title: 部署
---
## Linux 单机部署
### 解压到指定目录
......@@ -27,10 +26,13 @@ Dinky 采用 mysql 作为后端的存储库,mysql 支持 5.7+。这里假设
#登录mysql
mysql -uroot -proot@123
#创建数据库
mysql> create database dlink;
mysql>
create database dlink;
#授权
mysql> grant all privileges on dlink.* to 'dlink'@'%' identified by 'dlink' with grant option;
mysql> flush privileges;
mysql>
grant all privileges on dlink.* to 'dlink'@'%' identified by 'dlink' with grant option;
mysql>
flush privileges;
#此处用 dlink 用户登录
mysql -h fdw1 -udlink -pdlink
```
......@@ -41,28 +43,36 @@ mysql -h fdw1 -udlink -pdlink
#登录mysql
mysql -uroot -proot@123
#创建数据库
mysql> CREATE DATABASE dlink;
mysql>
CREATE DATABASE dlink;
#创建用户并允许远程登录
mysql> create user 'dlink'@'%' IDENTIFIED WITH mysql_native_password by 'dlink';
mysql>
create user 'dlink'@'%' IDENTIFIED WITH mysql_native_password by 'dlink';
#授权
mysql> grant ALL PRIVILEGES ON dlink.* to 'dlink'@'%';
mysql> flush privileges;
mysql>
grant ALL PRIVILEGES ON dlink.* to 'dlink'@'%';
mysql>
flush privileges;
```
在 Dinky 根目录 sql 文件夹下有 3 个 sql 文件,分别是 dlink.sql 、 dlink_history.sql 和 dlinkmysqlcatalog.sql。如果第一次部署,可以直接将 dlink.sql 文件在 dlink 数据库下执行。(如果之前已经建立了 dlink 的数据库,那 dlink_history.sql 存放了各版本的升级 sql ,根据版本号及日期按需执行即可)
在 Dinky 根目录 sql 文件夹下分别放置了 dinky.sql 、 upgrade/${version}_schema/mysql/ddl 和 dml。如果第一次部署,可以直接将 sql/dinky.sql 文件在 dlink 数据库下执行。(如果之前已经部署,那 upgrade 目录下 存放了各版本的升级 sql ,根据版本号按需执行即可)
#### 第一次部署
```sql
#首先登录 mysql
mysql -h fdw1 -udlink -pdlink
mysql> use dlink;
mysql> source /opt/dlink/sql/dlink.sql
mysql>
use dlink;
mysql> source /opt/dlink/sql/dinky.sql
```
平台默认有两种 catalog 实现,一种是基于内存的,一种是基于平台 mysql 的,如果想要使用平台内置的 mysql catalog,
需要手动执行一下 dlinkmysqlcatalog.sql 脚本,以初始化平台内置 catalog 数据库表。
#### 升级
```sql
mysql> source /opt/dlink/sql/dlinkmysqlcatalog.sql
-- 注意: 按照版本号依次升级 切不可跨版本升级 ${version} 代表的是你目前的 dinky版本+1 依次往下执行
mysql> source /opt/dlink/sql/upgrade/${version}_schema/mysql/dinky_ddl.sql -- 表的ddl
mysql> source /opt/dlink/sql/upgrade/${version}_schema/mysql/dinky_dml.sql -- 表初始化数据 (部分版本无)
```
### 配置文件
......@@ -231,9 +241,8 @@ plugins/
|- flink-table_2.11-1.13.6.jar
|- mysql-connector-java-8.0.21.jar
sql/
|- dlink.sql -- Mysql初始化脚本
|- dlink_history.sql -- Mysql各版本及时间点升级脚本
|- dlinkmysqlcatalog.sql -- dlink 的 catalog 表 SQL 脚本
|- dinky.sql -- Mysql初始化脚本
|- upgrade/ -- 各个版本的升级 SQL
auto.sh --启动停止脚本
dlink-admin.jar --主程序包
```
......
......@@ -4,13 +4,10 @@ id: local_debug
title: 本地调试
---
# 前言
最近小伙伴们一直追问,如何在 IDEA 里去调试 Dlink。本文将指导大家可以成功地搭建调试环境并可以修改相关功能的代码,当然欢迎大家将相关问题修复及新功能的实现贡献到 dev 分支哦。那一起来看看吧!
# 开发者本地调试手册
## 前置条件
......@@ -33,8 +30,6 @@ title: 本地调试
| lombok | IDEA插件安装 |
| mysql | 5.7+ |
### 代码克隆
请通过 git 管理工具从 GitHub 中拉取 Dinky 源码
......@@ -72,7 +67,6 @@ IDEA 提供了插件设置来安装 Lombok 插件。如果尚未安装,请在
## 前端环境
### 安装 node.js
可用版本 14.17.0 +,安装步骤详情百度。
......@@ -161,11 +155,9 @@ spring:
driver-class-name: com.mysql.cj.jdbc.Driver
```
### 初始化数据库
在MySQL数据库创建 dlink 用户并在 dlink 数据库中执行 dlink-doc/sql/dlink.sql 文件。此外 dlink-doc/sql/dlink_history.sql 标识了各版本的升级 sql
在MySQL数据库创建 dlink 用户并在 dlink 数据库中执行 dlink-doc/sql/dinky.sql 文件。此外 dlink-doc/sql/upgrade 目录下存放了了各版本的升级 sql 请依次按照版本号执行
以上文件修改完成后,就可以启动Dinky。
......@@ -191,7 +183,6 @@ npm start
登录用户/密码: admin/admin
### 本地源码调试示例
在IDEA启动后,等待几分钟,即可看到登录页,如下:
......@@ -209,41 +200,41 @@ npm start
## 源码结构
```java
dlink -- 父项目
|-dlink-admin -- 管理中心
|-dlink-alert -- 告警中心
|-dlink-app -- Application Jar
|-dlink-assembly -- 打包配置
|-dlink-client -- Client 中心
| |-dlink-client-1.11 -- Client-1.11 实现
| |-dlink-client-1.12 -- Client-1.12 实现
| |-dlink-client-1.13 -- Client-1.13 实现
| |-dlink-client-1.14 -- Client-1.14 实现
|-dlink-common -- 通用中心
|-dlink-connectors -- Connectors 中心
| |-dlink-connector-jdbc -- Jdbc 扩展
|-dlink-core -- 执行中心
|-dlink-doc -- 文档
| |-bin -- 启动脚本
| |-bug -- bug 反馈
| |-config -- 配置文件
| |-doc -- 使用文档
| |-sql -- sql脚本
|-dlink-executor -- 执行中心
|-dlink-extends -- 扩展中心
|-dlink-function -- 函数中心
|-dlink-gateway -- Flink 网关中心
|-dlink-metadata -- 元数据中心
| |-dlink-metadata-base -- 元数据基础组件
| |-dlink-metadata-clickhouse -- 元数据- clickhouse 实现
| |-dlink-metadata-mysql -- 元数据- mysql 实现
| |-dlink-metadata-oracle -- 元数据- oracle 实现
| |-dlink-metadata-postgresql -- 元数据- postgresql 实现
| |-dlink-metadata-doris -- 元数据- doris 实现
| |-dlink-metadata-phoenix - 元数据- phoenix 实现
| |-dlink-metadata-sqlserver - 元数据- sqlserver 实现
|-dlink-web -- React 前端
|-docs -- 官网文档
dlink--父项目
|-dlink-admin--管理中心
|-dlink-alert--告警中心
|-dlink-app--Application Jar
|-dlink-assembly--打包配置
|-dlink-client--Client 中心
| |-dlink-client-1.11--Client-1.11实现
| |-dlink-client-1.12--Client-1.12实现
| |-dlink-client-1.13--Client-1.13实现
| |-dlink-client-1.14--Client-1.14实现
|-dlink-common--通用中心
|-dlink-connectors--Connectors 中心
| |-dlink-connector-jdbc--Jdbc 扩展
|-dlink-core--执行中心
|-dlink-doc--文档
| |-bin--启动脚本
| |-bug--bug 反馈
| |-config--配置文件
| |-doc--使用文档
| |-sql--sql脚本
|-dlink-executor--执行中心
|-dlink-extends--扩展中心
|-dlink-function--函数中心
|-dlink-gateway--Flink 网关中心
|-dlink-metadata--元数据中心
| |-dlink-metadata-base--元数据基础组件
| |-dlink-metadata-clickhouse--元数据-clickhouse 实现
| |-dlink-metadata-mysql--元数据-mysql 实现
| |-dlink-metadata-oracle--元数据-oracle 实现
| |-dlink-metadata-postgresql--元数据-postgresql 实现
| |-dlink-metadata-doris--元数据-doris 实现
| |-dlink-metadata-phoenix-元数据-phoenix 实现
| |-dlink-metadata-sqlserver-元数据-sqlserver 实现
|-dlink-web--React 前端
|-docs--官网文档
```
### dlink-admin
......@@ -308,7 +299,6 @@ Dlink 的前端项目,基于 Ant Design Pro 5.0.0。Why Not Vue ? React Who Us
Dlink 的前端架构与开发后续文章会详解,本文略。
## 任务执行路线
同步执行:三角号按钮。
......
......@@ -4,7 +4,6 @@ id: remote_debug
title: 远程调试
---
# 开发者远程调试手册
远程调试适用与服务器已部署如下三种集群的场景
......@@ -44,7 +43,6 @@ git clone https://github.com/DataLinkDC/dlink.git
git checkout dev
```
## 编译
### 命令行编译
......@@ -65,10 +63,9 @@ mvn clean package -Dmaven.test.skip=true
​ 2.如果要分开编译,在后端编译完成后,需要在 dlink-web 下执行 ``npm i --force ``;
:::warning 注意事项
如果不执行 install 生成的 jar安装不到本地 别的依赖就识别不到本地仓库这些包 所以可能导依赖的时候会报错 CustomTableEnvironmentImpl 这个类未定义 。
如果不执行 install 生成的 jar安装不到本地 别的依赖就识别不到本地仓库这些包 所以可能导依赖的时候会报错 CustomTableEnvironmentImpl 这个类未定义 。
:::
## 远程调试环境搭建
### 修改pom文件
......@@ -160,7 +157,7 @@ sa-token:
### 初始化数据库
MySQL 数据库创建 dlink 用户并在 dlink 数据库中执行 **dlink-doc/sql/dlink.sql** 文件。此外 **dlink-doc/sql/dlink_history.sql** 标识了各版本的升级 sql
MySQL数据库创建 dlink 用户并在 dlink 数据库中执行 dlink-doc/sql/dinky.sql 文件。此外 dlink-doc/sql/upgrade 目录下存放了了各版本的升级 sql 请依次按照版本号执行
以上文件修改完成后,就可以启动 Dinky。
......@@ -178,7 +175,7 @@ hive-site.xml 需要使用到 Hive Catalog 时添加
根据 job 的场景自行选择插件依赖 jar, 选择需要的 jars , 右键添加为库,如下所示:
- 选中 jars 添加为库
![jars_add_to_repo](http://www.aiwenmo.com/dinky/docs/zh-CN/developer_guide/remote_debug/jars_add_to_repo.jpg)
![jars_add_to_repo](http://www.aiwenmo.com/dinky/docs/zh-CN/developer_guide/remote_debug/jars_add_to_repo.jpg)
- 弹框中选择信息如图:
......@@ -193,8 +190,6 @@ hive-site.xml 需要使用到 Hive Catalog 时添加
如果是整库同步场景下请将级别设置为全局库 ,模块选中所有
:::
### 启动 Yarn Session 集群
```
......@@ -218,8 +213,6 @@ yarn-session.sh -n 2 -jm 1024 -tm 4096 -s 6 -d
在 Dinky-0.6 版本后,不需要额外启动前端,如需进行前后端联调,详见[方式二](./remote_debug#方式二)
## 远程调试作业示例
以上远程调试环境搭建完成后,就如同在服务器部署上类似,可以对作业远程提交到 Flink 集群。下面以 Flink CDC ==》 Hudi 做为远程调试的作业
......@@ -339,8 +332,6 @@ WITH (
insert into sink_order_mysql_goods_order_pay select * from source_order_mysql_goods_order_pay;
```
### 作业提交检查
**SQL 逻辑语法校验**
......
......@@ -3,23 +3,19 @@ sidebar_position: 91
title: 0.6.6 release
---
| 版本 | 二进制程序 | Source |
|-------|-----------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------|
| 0.6.6 | [dlink-release-0.6.6.tar.gz](https://github.com/DataLinkDC/dlink/releases/download/v0.6.6/dlink-release-0.6.6.tar.gz) | [Source code (zip)](https://github.com/DataLinkDC/dlink/archive/refs/tags/v0.6.6.zip) |
## Dinky发行说明
Dinky 0.6.6 是一个优化修复的版本。
:::warning 注意
此版本有表结构变更 <br/>
需要执行 **sql/dlinkmysqlcatalog.sql** 文件
需要执行 **sql/upgrade/0.6.6_schema/mysql/dinky_ddl.sql** 文件
:::
### 新功能
- 新增 DevOps 的作业历史版本列表
......
......@@ -3,13 +3,10 @@ sidebar_position: 90
title: 0.6.7 release
---
| 版本 | 二进制程序 | Source |
|-------|-----------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------|
| 0.6.7 | [dlink-release-0.6.7.tar.gz](https://github.com/DataLinkDC/dlink/releases/download/v0.6.7/dlink-release-0.6.7.tar.gz) | [Source code (zip)](https://github.com/DataLinkDC/dlink/archive/refs/tags/v0.6.7.zip) |
## Dinky发行说明
Dinky 0.6.7 是一个修复的版本。
......@@ -17,10 +14,9 @@ Dinky 0.6.7 是一个修复的版本。
:::warning 注意
该版本多租户功能暂未开放
此版本有表结构变更 <br/>
需要按需执行 **sql/dlink_history.sql** 文件的增量 DDL
需要按需执行 **sql/upgrade/0.6.7_schema/mysql/dinky_ddl.sql** 文件的增量 DDL
:::
### 新功能
- 添加多租户的实现
......
......@@ -4,7 +4,6 @@ id: deploy
title: 部署
---
## Linux 单机部署
### 解压到指定目录
......@@ -27,10 +26,13 @@ Dinky 采用 mysql 作为后端的存储库,mysql 支持 5.7+。这里假设
#登录mysql
mysql -uroot -proot@123
#创建数据库
mysql> create database dlink;
mysql>
create database dlink;
#授权
mysql> grant all privileges on dlink.* to 'dlink'@'%' identified by 'dlink' with grant option;
mysql> flush privileges;
mysql>
grant all privileges on dlink.* to 'dlink'@'%' identified by 'dlink' with grant option;
mysql>
flush privileges;
#此处用 dlink 用户登录
mysql -h fdw1 -udlink -pdlink
```
......@@ -41,28 +43,36 @@ mysql -h fdw1 -udlink -pdlink
#登录mysql
mysql -uroot -proot@123
#创建数据库
mysql> CREATE DATABASE dlink;
mysql>
CREATE DATABASE dlink;
#创建用户并允许远程登录
mysql> create user 'dlink'@'%' IDENTIFIED WITH mysql_native_password by 'dlink';
mysql>
create user 'dlink'@'%' IDENTIFIED WITH mysql_native_password by 'dlink';
#授权
mysql> grant ALL PRIVILEGES ON dlink.* to 'dlink'@'%';
mysql> flush privileges;
mysql>
grant ALL PRIVILEGES ON dlink.* to 'dlink'@'%';
mysql>
flush privileges;
```
在 Dinky 根目录 sql 文件夹下有 3 个 sql 文件,分别是 dlink.sql 、 dlink_history.sql 和 dlinkmysqlcatalog.sql。如果第一次部署,可以直接将 dlink.sql 文件在 dlink 数据库下执行。(如果之前已经建立了 dlink 的数据库,那 dlink_history.sql 存放了各版本的升级 sql ,根据版本号及日期按需执行即可)
在 Dinky 根目录 sql 文件夹下分别放置了 dinky.sql 、 upgrade/${version}_schema/mysql/ddl 和 dml。如果第一次部署,可以直接将 sql/dinky.sql 文件在 dlink 数据库下执行。(如果之前已经部署,那 upgrade 目录下 存放了各版本的升级 sql ,根据版本号按需执行即可)
#### 第一次部署
```sql
#首先登录 mysql
mysql -h fdw1 -udlink -pdlink
mysql> use dlink;
mysql> source /opt/dlink/sql/dlink.sql
mysql>
use dlink;
mysql> source /opt/dlink/sql/dinky.sql
```
平台默认有两种 catalog 实现,一种是基于内存的,一种是基于平台 mysql 的,如果想要使用平台内置的 mysql catalog,
需要手动执行一下 dlinkmysqlcatalog.sql 脚本,以初始化平台内置 catalog 数据库表。
#### 升级
```sql
mysql> source /opt/dlink/sql/dlinkmysqlcatalog.sql
-- 注意: 按照版本号依次升级 切不可跨版本升级 ${version} 代表的是你目前的 dinky版本+1 依次往下执行
mysql> source /opt/dlink/sql/upgrade/${version}_schema/mysql/dinky_ddl.sql -- 表的ddl
mysql> source /opt/dlink/sql/upgrade/${version}_schema/mysql/dinky_dml.sql -- 表初始化数据 (部分版本无)
```
### 配置文件
......@@ -231,9 +241,8 @@ plugins/
|- flink-table_2.11-1.13.6.jar
|- mysql-connector-java-8.0.21.jar
sql/
|- dlink.sql -- Mysql初始化脚本
|- dlink_history.sql -- Mysql各版本及时间点升级脚本
|- dlinkmysqlcatalog.sql -- dlink 的 catalog 表 SQL 脚本
|- dinky.sql -- Mysql初始化脚本
|- upgrade/ -- 各个版本的升级 SQL
auto.sh --启动停止脚本
dlink-admin.jar --主程序包
```
......@@ -268,9 +277,9 @@ $sh auto.sh status
默认用户名/密码: admin/admin
:::tip 说明
Dinky 部署需要 MySQL5.7 以上版本
Dinky 部署需要 MySQL5.7 以上版本
Dinky 不依赖于 Nginx, Nginx 可选
Dinky 不依赖于 Nginx, Nginx 可选
:::
......
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