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
......@@ -16,7 +16,7 @@ Dinky is an out of the box one-stop real-time computing platform dedicated to th
Its main feature are as follows:
- Immersive Flink SQL Data Development: Automatic prompt completion, syntax highlighting, statement beautification, online debugging, syntax verification, execution plan, MetaStore, lineage, version comparison, etc.
- Support FlinkSQL multi-version development and execution modes: Local,Standalone,Yarn/Kubernetes Session,Yarn Per-Job,Yarn/Kubernetes Application.
- Support FlinkSQL multi-version development and execution modes: Local,Standalone,Yarn/Kubernetes Session,Yarn Per-Job,Yarn/Kubernetes Application.
- Support Apache Flink ecology: Connector,FlinkCDC,Table Store,etc.
- Support FlinkSQL syntax enhancement: Table-valued aggregate functions, global variables, execution environments, statement merging, database synchronization, shared sessions, etc.
- Supports real-time warehousing and lake entry of the entire FlinkCDC database, multi-database output, and automatic table creation.
......@@ -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>
......
This diff is collapsed.
......@@ -147,9 +147,9 @@ Dlink 提供了数据源的元数据查询功能。
### 下载地址
链接:https://pan.baidu.com/s/1-2qIE01gj7v51GdqWw5rhw
链接:https://pan.baidu.com/s/1-2qIE01gj7v51GdqWw5rhw
提取码:0300
提取码:0300
### 从源码编译
......@@ -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 脚本。
### 执行与停止
......
......@@ -24,7 +24,7 @@ Interceptor 是 Dlink 的 Flink 执行拦截器,负责对其进行片段解析
### Gateway
Gateway 并非是开源项目 flink-sql-gateway,而是 Dlink 自己定制的 Gateway,负责进行基于 Yarn 环境的任务提交与管理,主要有Yarn-Per-Job 和 Yarn-Application 的 FlinkSQL 提交、停止、SavePoint 以及配置测试,而 User Jar 目前只开放了 Yarn-Application 的提交。
Gateway 并非是开源项目 flink-sql-gateway,而是 Dlink 自己定制的 Gateway,负责进行基于 Yarn 环境的任务提交与管理,主要有Yarn-Per-Job 和 Yarn-Application 的 FlinkSQL 提交、停止、SavePoint 以及配置测试,而 User Jar 目前只开放了 Yarn-Application 的提交。
### Flink SDK
......@@ -54,8 +54,8 @@ Dlink 通过已注册的集群配置来获取对应的 YarnClient 实例。对
### 获取安装包
百度网盘链接:https://pan.baidu.com/s/1HNAmpiZMu8IUrUKQgR55qQ
提取码:0400
百度网盘链接:https://pan.baidu.com/s/1HNAmpiZMu8IUrUKQgR55qQ
提取码: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 脚本。
执行成功后,可见以下数据表:
......@@ -198,13 +199,13 @@ sh auto.sh status
}
```
1.server.listen 填写前端访问端口
1.server.listen 填写前端访问端口
2.proxy_pass 填写后端地址如 http://127.0.0.1:8888
2.proxy_pass 填写后端地址如 http://127.0.0.1:8888
3.重启 Nginx。
3.重启 Nginx。
4.后续只更新前端资源时,不需要重启 Nginx。
4.后续只更新前端资源时,不需要重启 Nginx。
### 打开主页
......@@ -228,7 +229,7 @@ sh auto.sh status
注意:只有具备 JobManager 实例的 Flink 集群才可以被成功注册到 dlink 中。( Yarn-Per-Job 和 Yarn-Application 也具有 JobManager,当然也可以手动注册,但无法提交任务)
如状态异常时,请检查被注册的 Flink 集群地址是否能正常访问,默认端口号为8081,可能更改配置后发生了变化,查看位置为 Flink Web 的 JobManager 的 Configuration 中的 rest 相关属性。
如状态异常时,请检查被注册的 Flink 集群地址是否能正常访问,默认端口号为8081,可能更改配置后发生了变化,查看位置为 Flink Web 的 JobManager 的 Configuration 中的 rest 相关属性。
### 执行 Hello World
......
# Dlink 实时计算平台——部署篇
## 环境准备
以下环境版本实测可用,缺一不可,如有其他版本的测试请告知小编。
......@@ -41,8 +39,8 @@ mvn clean install -Dmaven.test.skip=true
## 直接下载安装包
百度网盘链接:https://pan.baidu.com/s/13Ffhe7QaSsGXfAwqSCFdNg
提取码:0301
百度网盘链接:https://pan.baidu.com/s/13Ffhe7QaSsGXfAwqSCFdNg
提取码: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 脚本。
执行成功后,可见以下数据表:
......@@ -165,7 +164,7 @@ sh auto.sh status
注意:只有具备 JobManager 实例的 Flink 集群才可以被成功注册到 dlink 中。
如状态异常时,请检查被注册的 Flink 集群地址是否能正常访问,默认端口号为8081,可能更改配置后发生了变化,查看位置为 Flink Web 的 JobManager 的 Configuration 中的 rest 相关属性。
如状态异常时,请检查被注册的 Flink 集群地址是否能正常访问,默认端口号为8081,可能更改配置后发生了变化,查看位置为 Flink Web 的 JobManager 的 Configuration 中的 rest 相关属性。
### 执行 Hello World
......
......@@ -10,8 +10,8 @@
#### 获取安装包
百度网盘链接:https://pan.baidu.com/s/1gHZPGMhYUcpZZgOHta3Csw
提取码:0202
百度网盘链接:https://pan.baidu.com/s/1gHZPGMhYUcpZZgOHta3Csw
提取码:0202
#### 应用结构
......@@ -26,8 +26,9 @@ lib/ -- 外部依赖及Connector
|- flink-csv-1.12.4.jar
|- flink-json-1.12.4.jar
|- mysql-connector-java-8.0.21.jar
sql/
|- dlink.sql -- Mysql初始化脚本
sql/
|- dinky.sql --Mysql初始化脚本
|- upgrade/ -- 各个版本升级SQL脚本
auto.sh -- 启动停止脚本
dlink-admin.jar -- 程序包
```
......@@ -133,11 +134,11 @@ CREATE TABLE `studentscore` (
要求将一维成绩表转化为二维成绩单,其中不存在的成绩得分为0,并输出至studentscore表中。
## Dlink 的 AGGTABLE
## Dlink 的 AGGTABLE
本文以 Flink 官方的 Table Aggregate Functions 示例 Top2 为例进行比较说明,传送门 https://ci.apache.org/projects/flink/flink-docs-release-1.13/docs/dev/table/functions/udfs/#table-aggregate-functions
本文以 Flink 官方的 Table Aggregate Functions 示例 Top2 为例进行比较说明,传送门 https://ci.apache.org/projects/flink/flink-docs-release-1.13/docs/dev/table/functions/udfs/#table-aggregate-functions
### 官方 Table API 实现
### 官方 Table API 实现
```java
import org.apache.flink.api.java.tuple.Tuple2;
......@@ -234,21 +235,21 @@ AGG BY TOP2(value) as (value,rank);
#### 优势
可以通过 FlinkSql 来实现表值聚合的需求,降低了开发与维护成本。
可以通过 FlinkSql 来实现表值聚合的需求,降低了开发与维护成本。
#### 缺点
语法固定,示例关键字必须存在并进行描述,where 可以加在 FROM 和 GROUP BY 之间。
语法固定,示例关键字必须存在并进行描述,where 可以加在 FROM 和 GROUP BY 之间。
## Dlink 本地实现各科成绩前二
本示例通过 Dlink 的本地环境进行演示实现。
本示例通过 Dlink 的本地环境进行演示实现。
### 进入Dlink
![image-20210615115042539](https://mmbiz.qpic.cn/mmbiz_png/dyicwnSlTFTrkkX1Jsib7GxQY7tpiciaNdkGIAFicLZ3bwSawOianJQnNWuKAvZJ3Bb00DiaBxtxvnXgToGibPAwMFhs6A/0?wx_fmt=png)
只有版本号大于等于 0.2.2-rc1 的 Dlink 才支持本文 AGGTABLE 的使用。
只有版本号大于等于 0.2.2-rc1 的 Dlink 才支持本文 AGGTABLE 的使用。
### 编写 FlinkSQL
......@@ -296,53 +297,51 @@ b.cls,b.score,b.`rank`
from aggscore b
```
本 Sql 使用了 Dlink 的增强特性 Fragment 机制,对 jdbc的配置进行了定义。
本 Sql 使用了 Dlink 的增强特性 Fragment 机制,对 jdbc的配置进行了定义。
### 维护 FlinkSQL 及配置
![image-20210615115521967](https://mmbiz.qpic.cn/mmbiz_png/dyicwnSlTFTrkkX1Jsib7GxQY7tpiciaNdkGeibmfcst4hHVTqzFmX6LvBXqgPTFcCOWHuIxEcbNHgfnUc0mhPm1eFw/0?wx_fmt=png)
编写 FlinkSQL ,配置开启 Fragment 机制,设置 Flink 集群为本地执行。点击保存。
编写 FlinkSQL ,配置开启 Fragment 机制,设置 Flink 集群为本地执行。点击保存。
### 同步执行INSERT
![image-20210615115714713](https://mmbiz.qpic.cn/mmbiz_png/dyicwnSlTFTrkkX1Jsib7GxQY7tpiciaNdkGApFiacyxkKERLE9FhsteTeTovcjTQHiaPKcxY6YqSukkVYZWVFGxPJibQ/0?wx_fmt=png)
点击同步执行按钮运行当前编辑器中的 FlinkSQL 语句集。弹出提示信息,等待执行完成后自动关闭并刷新信息和结果。
点击同步执行按钮运行当前编辑器中的 FlinkSQL 语句集。弹出提示信息,等待执行完成后自动关闭并刷新信息和结果。
当前版本使用异步提交功能将直接提交任务到集群,Studio 不负责执行结果的记录。提交任务前请保存 FlinkSQL 和配置,否则将提交旧的语句和配置。
当前版本使用异步提交功能将直接提交任务到集群,Studio 不负责执行结果的记录。提交任务前请保存 FlinkSQL 和配置,否则将提交旧的语句和配置。
### 执行反馈
![image-20210615115913647](https://mmbiz.qpic.cn/mmbiz_png/dyicwnSlTFTrkkX1Jsib7GxQY7tpiciaNdkGL7Wv8Tefsn0h1USWf2VLXB2Tb3yx4K2QksiaFplehnrvz25cE0nQnlA/0?wx_fmt=png)
本地执行成功,“0_admin” 为本地会话,里面存储了 Catalog。
本地执行成功,“0_admin” 为本地会话,里面存储了 Catalog。
### 同步执行SELECT查看中间过程
![image-20210615120129426](https://mmbiz.qpic.cn/mmbiz_png/dyicwnSlTFTrkkX1Jsib7GxQY7tpiciaNdkGXkEXFib5ic21kOemq6ib8kWAdLCBicicjBxU9oibmaSs4Hru8EccxKe5z0dg/0?wx_fmt=png)
由于当前会话中已经存储了表的定义,此时直接选中 select 语句点击同步执行可以重新计算并展示其计算过程中产生的结果,由于 Flink 表值聚合操作机制,该结果非最终结果。
由于当前会话中已经存储了表的定义,此时直接选中 select 语句点击同步执行可以重新计算并展示其计算过程中产生的结果,由于 Flink 表值聚合操作机制,该结果非最终结果。
### 同步执行SELECT查看最终结果
![image-20210615121542233](https://mmbiz.qpic.cn/mmbiz_png/dyicwnSlTFTrkkX1Jsib7GxQY7tpiciaNdkG5mNQFZp4YIuwIrh6cJteFIwsbomibSk32hWbFqlt887F9lee9NYT8fQ/0?wx_fmt=png)
在草稿的页面使用相同的会话可以共享 Catalog,此时只需要执行 select 查询 sink 表就可以预览最终的统计结果。
在草稿的页面使用相同的会话可以共享 Catalog,此时只需要执行 select 查询 sink 表就可以预览最终的统计结果。
### 查看Mysql表的数据
![image-20210615120738413](https://mmbiz.qpic.cn/mmbiz_png/dyicwnSlTFTrkkX1Jsib7GxQY7tpiciaNdkGerEdvQLXGNqfm7KZT7ARaNBV0mlrUdah69JAB3miaBFBgUU3iaaowcLg/0?wx_fmt=png)
​ sink 表中只有五条数据,结果是正确的。
​ sink 表中只有五条数据,结果是正确的。
## Dlink 远程实现二维成绩单
本示例通过 Dlink 控制远程集群来实现。
本示例通过 Dlink 控制远程集群来实现。
远程集群的 lib 中需要上传 dlink-function.jar 。
远程集群的 lib 中需要上传 dlink-function.jar 。
### 编写FlinkSQL
......@@ -396,23 +395,23 @@ from student a
left join aggscore2 b on a.sid=b.sid
```
本实例通过表值聚合将分组后的多行转单列然后通过 GET_KEY 取值的思路来实现。同时,也使用了 Fragment 机制。
本实例通过表值聚合将分组后的多行转单列然后通过 GET_KEY 取值的思路来实现。同时,也使用了 Fragment 机制。
### 同步执行
![image-20210615131731449](https://mmbiz.qpic.cn/mmbiz_png/dyicwnSlTFTrkkX1Jsib7GxQY7tpiciaNdkGxHX5T3C2vr2CF9LicZicBnGZOYmpXVq343zYFPjXsae0icQ1mTVWcsugQ/0?wx_fmt=png)
与示例一相似,不同点在于需要更改集群配置为 远程集群。远程集群的注册在集群中心注册,Hosts 需要填写 JobManager 的地址,HA模式则使用英文逗号分割可能出现的地址,如“127.0.0.1:8081,127.0.0.2:8081,127.0.0.3:8081”。心跳监测正常的集群实例即可用于任务执行或提交。
与示例一相似,不同点在于需要更改集群配置为 远程集群。远程集群的注册在集群中心注册,Hosts 需要填写 JobManager 的地址,HA模式则使用英文逗号分割可能出现的地址,如“127.0.0.1:8081,127.0.0.2:8081,127.0.0.3:8081”。心跳监测正常的集群实例即可用于任务执行或提交。
### Flink UI
![image-20210615131931183](https://mmbiz.qpic.cn/mmbiz_png/dyicwnSlTFTrkkX1Jsib7GxQY7tpiciaNdkGCSGp5fSGaRz0PgvFlEmWSRdiaZZHbmicvYWXnLzoNL3HWEc3mL1W2jPA/0?wx_fmt=png)
打开集群的 Flink UI 可以发现刚刚提交的批任务,此时可以发现集群版本号为 1.12.2 ,而 Dlink 默认版本为 1.12.4 ,所以一般大版本内可以互相兼容。
打开集群的 Flink UI 可以发现刚刚提交的批任务,此时可以发现集群版本号为 1.12.2 ,而 Dlink 默认版本为 1.12.4 ,所以一般大版本内可以互相兼容。
### 查看Mysql表的数据
![image-20210615132004925](https://mmbiz.qpic.cn/mmbiz_png/dyicwnSlTFTrkkX1Jsib7GxQY7tpiciaNdkGc9NX5IzQ6Kog5oYPiaaELmCYzh3vpdUaK40hNuFPrlAWY1jlZd7QbtQ/0?wx_fmt=png)
查看 Mysql 表的最终数据,发现存在四条结果,且也符合问题的要求。
查看 Mysql 表的最终数据,发现存在四条结果,且也符合问题的要求。
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 -- 表初始化数据 (部分版本无)
```
### 配置文件
......@@ -147,9 +157,9 @@ vim /etc/nginx/nginx.conf 打开配置文件,修改 server 中的内容,其
修改内容:
- listen 监听端口;
- 存放html路径;
- location / 这里可以指定为绝对路径
- listen 监听端口;
- 存放html路径;
- location / 这里可以指定为绝对路径
配置完成后,保存退出。并重启 nginx 并重新加载生效
......@@ -165,7 +175,7 @@ $nginx -s reload
Dinky 需要具备自身的 Flink 环境,该 Flink 环境的实现需要用户自己在 Dinky 根目录下创建 plugins 文件夹并上传相关的 Flink 依赖,如 flink-dist, flink-table 等,具体见下文。当然也可在启动文件中指定 FLINK_HOME,但不建议这样做。
:::warning 注意事项
:::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 包,
:::
......@@ -176,7 +186,7 @@ cd /opt/dlink/
mkdir plugins
```
将 flink-shade-hadoop 上传到到 plugins 文件目录下,使用 flink-shade-hadoop-3 地址如下:
将 flink-shade-hadoop 上传到到 plugins 文件目录下,使用 flink-shade-hadoop-3 地址如下:
```
https://mvnrepository.com/artifact/org.apache.flink/flink-shaded-hadoop-3-uber?repo=cloudera-repos
......@@ -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 分支哦。那一起来看看吧!
# 开发者本地调试手册
## 前置条件
......@@ -20,7 +17,7 @@ title: 本地调试
- Git:版本控制软件
- JDK:后端开发
- Maven:Java包管理
- Node:前端开发;
- Node:前端开发;
### 环境要求
......@@ -33,9 +30,7 @@ title: 本地调试
| lombok | IDEA插件安装 |
| mysql | 5.7+ |
### 代码克隆
### 代码克隆
请通过 git 管理工具从 GitHub 中拉取 Dinky 源码
......@@ -47,7 +42,7 @@ git clone https://github.com/DataLinkDC/dlink.git
git clone git://github.com/DataLinkDC/dlink.git
```
## IntelliJ IDEA
## IntelliJ IDEA
该指南介绍了关于如何设置 IntelliJ IDEA 来进行 Dlink 前后端开发。Eclipse 不建议使用。
......@@ -72,7 +67,6 @@ IDEA 提供了插件设置来安装 Lombok 插件。如果尚未安装,请在
## 前端环境
### 安装 node.js
可用版本 14.17.0 +,安装步骤详情百度。
......@@ -95,7 +89,7 @@ npm install --force
### 编译
IDEA 里 Build → Build Project
IDEA 里 Build → Build Project
### 打包
......@@ -118,7 +112,7 @@ npm build
Dinky开发环境配置有两种模式,分别是 provided 环境和 compile 环境
- provided:此环境适合已经存在安装包,可进行远程调试,此模式需要外部环境安装Flink;
- compile:此环境适合二次开发或者熟悉源码,此模式不需要额外安装Flink,通过Flink自带的local模式变可调试开发
- compile:此环境适合二次开发或者熟悉源码,此模式不需要额外安装Flink,通过Flink自带的local模式变可调试开发
## Dinky本地开发环境
......@@ -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。
......@@ -173,7 +165,7 @@ spring:
启动 dlink-admin 下的 Dlink 启动类,可见 8888 端口。
稍微等待一会,即可访问 127.0.0.1:8888 可见登录页。
稍微等待一会,即可访问 127.0.0.1:8888 可见登录页。
登录用户/密码: admin/admin
......@@ -187,11 +179,10 @@ spring:
npm start
```
稍微等待一会,即可访问 127.0.0.1:8000 可见登录页。
稍微等待一会,即可访问 127.0.0.1:8000 可见登录页。
登录用户/密码: 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
......@@ -276,7 +267,7 @@ Dlink 的 Connectors,目前实现了 Oracle、Clickhouse、SQLServer ...。此
### dlink-core
Dlink 的核心模块,内包含 Flink RestAPI 、集群、SQL解释器、Job统一调度器(JobManager)、会话管理等实现。
Dlink 的核心模块,内包含 Flink RestAPI 、集群、SQL解释器、Job统一调度器(JobManager)、会话管理等实现。
### dlink-doc
......@@ -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
```
## 编译
### 命令行编译
......@@ -60,15 +58,14 @@ mvn clean package -Dmaven.test.skip=true
**说明:**
1.如果不想单独编译前端,在 dlink-web 模块的 pom 下有``frontend-maven-plugins``,可直接前后端编译;
​ 1.如果不想单独编译前端,在 dlink-web 模块的 pom 下有``frontend-maven-plugins``,可直接前后端编译;
2.如果要分开编译,在后端编译完成后,需要在 dlink-web 下执行 ``npm i --force ``;
​ 2.如果要分开编译,在后端编译完成后,需要在 dlink-web 下执行 ``npm i --force ``;
:::warning 注意事项
如果不执行 install 生成的 jar安装不到本地 别的依赖就识别不到本地仓库这些包 所以可能导依赖的时候会报错 CustomTableEnvironmentImpl 这个类未定义 。
如果不执行 install 生成的 jar安装不到本地 别的依赖就识别不到本地仓库这些包 所以可能导依赖的时候会报错 CustomTableEnvironmentImpl 这个类未定义 。
:::
## 远程调试环境搭建
### 修改pom文件
......@@ -160,13 +157,13 @@ 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。
### 集群配置文件
- **hadoop配置文件:** core-site.xml hdfs-site.xml yarn-site.xml hive-site.xml;
- **hadoop配置文件:** core-site.xml hdfs-site.xml yarn-site.xml hive-site.xml;
- **Flink配置文件:** flink-conf.yaml;
:::warning 注意事项
......@@ -178,23 +175,21 @@ 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)
- 弹框中选择信息如图:
- 名称: 自定义
- 级别: 项目库
- 添加到模块: dlink-admin
- 名称: 自定义
- 级别: 项目库
- 添加到模块: dlink-admin
![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 集群
```
......@@ -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 的作业历史版本列表
......@@ -42,7 +38,7 @@ Dinky 0.6.6 是一个优化修复的版本。
- 修复 catalog SPI bug 和 sql bug
- 修复运维中心检查点等信息获取错误
- 修复在 SQLSinkBuilder 中捕获 tranateToPlan 异常
- 修复 application 模式提交失败
- 修复 application 模式提交失败
- 修复删除告警实例后,告警组下实例仍存在 导致告警错误的问题
- 修复循环依赖问题
- 修复删除未引用的类
......
......@@ -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 -- 表初始化数据 (部分版本无)
```
### 配置文件
......@@ -147,9 +157,9 @@ vim /etc/nginx/nginx.conf 打开配置文件,修改 server 中的内容,其
修改内容:
- listen 监听端口;
- 存放html路径;
- location / 这里可以指定为绝对路径
- listen 监听端口;
- 存放html路径;
- location / 这里可以指定为绝对路径
配置完成后,保存退出。并重启 nginx 并重新加载生效
......@@ -163,9 +173,9 @@ $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 注意事项
:::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 包,
:::
......@@ -176,7 +186,7 @@ cd /opt/dlink/
mkdir plugins
```
将 flink-shade-hadoop 上传到到 plugins 文件目录下,使用 flink-shade-hadoop-3 地址如下:
将 flink-shade-hadoop 上传到到 plugins 文件目录下,使用 flink-shade-hadoop-3 地址如下:
```
https://mvnrepository.com/artifact/org.apache.flink/flink-shaded-hadoop-3-uber?repo=cloudera-repos
......@@ -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 不依赖于 Nginx, Nginx 可选
Dinky 部署需要 MySQL5.7 以上版本
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