diff --git a/dinky-web/src/pages/RegCenter/Document/constans.ts b/dinky-web/src/pages/RegCenter/Document/constans.ts index 7e67c1e7bd..26bf5f4fca 100644 --- a/dinky-web/src/pages/RegCenter/Document/constans.ts +++ b/dinky-web/src/pages/RegCenter/Document/constans.ts @@ -217,10 +217,6 @@ export const DOCUMENT_SUBTYPE_ENUMS = { * versions select options */ export const VERSIONS = [ - { - text: 'Flink-1.13', - value: '1.13' - }, { text: 'Flink-1.14', value: '1.14' @@ -237,6 +233,10 @@ export const VERSIONS = [ text: 'Flink-1.17', value: '1.17' }, + { + text: 'Flink-1.18', + value: '1.18' + }, { text: 'All Versions', value: 'All Versions' diff --git a/docs/docs/developer_guide/contribution/commit_code.md b/docs/docs/developer_guide/contribution/commit_code.md index b694745dbc..5b06f5872d 100644 --- a/docs/docs/developer_guide/contribution/commit_code.md +++ b/docs/docs/developer_guide/contribution/commit_code.md @@ -1,5 +1,6 @@ --- -sidebar_position: 6 +sidebar_position: 3 +position: 3 id: commit_code title: 提交代码须知 --- @@ -10,16 +11,10 @@ title: 提交代码须知 * 首先从远端仓库 *https://github.com/DataLinkDC/dlink.git* fork 一份代码到自己的仓库中 -* 远端仓库中目前有三个分支: - - * master 正常交付分支 - 发布稳定版本以后,将稳定版本分支的代码合并到 master 上。 - - * dev 日常开发分支 - 日常 dev 开发分支,新提交的代码都可以 pull request 到这个分支上。 - - * 0.6.0 发布版本分支 - 发布版本分支,后续会有 1.0... 等版本分支。 +* 远端仓库中分支: + * dev 日常开发分支: 日常 dev 开发分支,新提交的代码都可以 pull request 到这个分支上。 + * 0.7.x 发布版本分支: 0.7.x 发布版本分支,目前仅接受 bugfix + * 1.x.x 发布版本分支 * 把自己仓库 clone 到本地 diff --git a/docs/docs/developer_guide/contribution/commit_message.md b/docs/docs/developer_guide/contribution/commit_message.md index 927190f392..cd87293e5a 100644 --- a/docs/docs/developer_guide/contribution/commit_message.md +++ b/docs/docs/developer_guide/contribution/commit_message.md @@ -1,14 +1,11 @@ --- -sidebar_position: 5 +sidebar_position: 3 +position: 3 id: commit_message title: Commit Message 须知 --- - - - - 一个好的 commit message 是能够帮助其他的开发者(或者未来的开发者)快速理解相关变更的上下文,同时也可以帮助项目管理人员确定该提交是否适合包含在发行版中。但当我们在查看了很多开源项目的 commit log 后,发现一个有趣的问题,一部分开发者,代码质量很不错,但是 commit message 记录却比较混乱,当其他贡献者或者学习者在查看代码的时候,并不能通过 commit log 很直观的了解 该提交前后变更的目的,正如 Peter Hutterer 所言:Re-establishing the context of a piece of code is wasteful. We can’t avoid it completely, so our efforts should go to reducing it as much as possible. Commit messages can do exactly that and as a result, a commit message shows whether a developer is a good collaborator. 因此,DolphinScheduler 结合其他社区以及 Apache 官方文档制定了该规约。 diff --git a/docs/docs/developer_guide/contribution/document.md b/docs/docs/developer_guide/contribution/document.md index 821ba8b316..6b980977ce 100644 --- a/docs/docs/developer_guide/contribution/document.md +++ b/docs/docs/developer_guide/contribution/document.md @@ -1,22 +1,20 @@ --- -sidebar_position: 2 +sidebar_position: 5 +position: 5 id: document title: 文档贡献 --- - - - 良好的使用文档对任何类型的软件都是至关重要的。欢迎任何可以改进 Dinky 文档的贡献。 ### 获取文档项目 -Dinky 项目的文档维护在 [dinky-website](https://github.com/DataLinkDC/dinky-website) 。 +Dinky 项目的文档维护在 [dinky主仓库/docs 下](https://github.com/DataLinkDC/dinky/tree/dev/docs) 。 首先你需要先将源项目 fork 到自己的 github 仓库中,然后将 fork 的文档克隆到本地计算机中。 ```shell -git clone https://github.com//dinky-website +git clone https://github.com//dinky ``` ### 文档环境 diff --git a/docs/docs/developer_guide/contribution/how_contribute.md b/docs/docs/developer_guide/contribution/how_contribute.md index 7e77d255c8..46b12166da 100644 --- a/docs/docs/developer_guide/contribution/how_contribute.md +++ b/docs/docs/developer_guide/contribution/how_contribute.md @@ -1,5 +1,6 @@ --- -sidebar_position: 1 +sidebar_position: 4 +position: 4 id: how_contribute title: 如何贡献 --- diff --git a/docs/docs/developer_guide/contribution/issue.md b/docs/docs/developer_guide/contribution/issue.md index a4f7bc556b..b92d9480ff 100644 --- a/docs/docs/developer_guide/contribution/issue.md +++ b/docs/docs/developer_guide/contribution/issue.md @@ -1,5 +1,6 @@ --- -sidebar_position: 3 +sidebar_position: 1 +position: 1 id: issue title: Issue 须知 --- diff --git a/docs/docs/developer_guide/contribution/pull_request.md b/docs/docs/developer_guide/contribution/pull_request.md index 0ca30dfb91..ad7f2f3d01 100644 --- a/docs/docs/developer_guide/contribution/pull_request.md +++ b/docs/docs/developer_guide/contribution/pull_request.md @@ -1,5 +1,6 @@ --- -sidebar_position: 4 +sidebar_position: 2 +position: 2 id: pull_request title: Pull Request 须知 --- diff --git a/docs/docs/developer_guide/local_debug.md b/docs/docs/developer_guide/local_debug.md index 24162b66e1..8d1bbd6a94 100644 --- a/docs/docs/developer_guide/local_debug.md +++ b/docs/docs/developer_guide/local_debug.md @@ -4,37 +4,43 @@ id: local_debug title: 本地调试 --- -# 前言 - -最近小伙伴们一直追问,如何在 IDEA 里去调试 Dlink。本文将指导大家可以成功地搭建调试环境并可以修改相关功能的代码,当然欢迎大家将相关问题修复及新功能的实现贡献到 dev 分支哦。那一起来看看吧! - # 开发者本地调试手册 +:::tip +前置知识: +- Flink, Java, Maven, Node, React, Ant Design Pro +- MySQL/PostgreSQL/H2 +- IntelliJ IDEA +::: + ## 前置条件 在搭建Dinky开发环境之前请确保你已经安装如下软件 - Git:版本控制软件 -- JDK:后端开发 +- JDK环境:后端开发环境,支持 Java8 和 Java11 - Maven:Java包管理 - Node:前端开发; +- MySQL/PostgreSQL/H2:数据库 +- IntelliJ IDEA:IDEA开发工具(建议使用 2023.2 版本以上,旧版本对 Maven Profile 支持不友好) +- Lombok:IDEA插件,用于简化代码 ### 环境要求 -| 环境 | 版本 | -| :-----: | :----------: | -| npm | 7.19.0 | -| node.js | 14.17.0 | -| jdk | 1.8 | -| maven | 3.6.0+ | -| lombok | IDEA插件安装 | -| mysql | 5.7+ | +| 环境 | 版本 | +|:----------------:|:------------------------:| +| npm | 7.19.0+ | +| node.js | 14.17.0+ | +| jdk | Java8 或者 Java11 | +| maven | 3.8.0+ | +| lombok | IDEA插件安装 | +| MySQL/PostgreSQL | MySQL5.7+ / PostgreSQL15 | ### 代码克隆 -请通过 git 管理工具从 GitHub 中拉取 Dinky 源码 +请通过 git 管理工具/IDEA 进行代码克隆,从 GitHub 中拉取 Dinky 源码 -``` +```shell mkdir workspace cd workspace git clone https://github.com/DataLinkDC/dlink.git @@ -42,22 +48,6 @@ git clone https://github.com/DataLinkDC/dlink.git git clone git://github.com/DataLinkDC/dlink.git ``` -## IntelliJ IDEA - -该指南介绍了关于如何设置 IntelliJ IDEA 来进行 Dlink 前后端开发。Eclipse 不建议使用。 - -以下文档描述了 [IntelliJ IDEA 2021.3](https://www.jetbrains.com/idea/download/) 的设置步骤以及 Dlink 的导入步骤。 - -所以以下简称 IDEA 来表示 IntelliJ IDEA 。 - -### 安装 Lombok 插件 - -IDEA 提供了插件设置来安装 Lombok 插件。如果尚未安装,请在导入 Dlink 之前按照以下说明来进行操作以启用对 Lombok 注解的支持: - -1. 转到 IDEA Settings → Plugins 并选择 Marketplace 。 -2. 选择并安装 Lombok 插件。 -3. 如果出现提示,请重启 IDEA 。 - ### 导入 Dinky 1. 启动 IDEA 并选择 Open。 @@ -67,269 +57,164 @@ IDEA 提供了插件设置来安装 Lombok 插件。如果尚未安装,请在 ## 前端环境 -### 安装 node.js - -可用版本 14.17.0 +,安装步骤详情百度。 - -### 安装 npm - -因 node.js 安装后 npm 版本较高,因此需要可用版本 7.19.0,升级npm命令如下: - -``` -npm install npm@7.19.0 -g -``` - -### 初始化依赖 - -```bash -npm install --force -``` - -## 源码编译 - -### 编译 +推荐使用 nvm 管理 node 版本,安装 nvm 后,执行以下命令安装 node -IDEA 里 Build → Build Project - -### 打包 - -```bash -mvn clean install -Dmaven.test.skip=true - -# 如若修改版本,按以下指定即可。flink可支持多版本(1.11-1.16) -mvn clean install -Dmaven.test.skip=true -P pord,scala-2.11,flink-1.14,flink-1.15 - -# 如若不需要web编译,-P 后面加: `!web` -mvn clean install -Dmaven.test.skip=true -P !web,pord,scala-2.11,flink-1.14,flink-1.15 +```bash +# linux/mac +curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash ``` -打包最终位于根目录 build 下,`dlink-release-x.x.x.tar.gz` 其大小约为 40 M。 +> 在 Windows 上推荐使用 [nvm-desktop](https://github.com/1111mp/nvm-desktop) 管理软件进行安装,安装完成后在界面中选择合适版本的 +> node 版本安装即可 -### 问题 +### 初始化依赖 -如果在打包 dinky-web 过程失败,请先单独打包前端进行问题排查。 +代码 Clone 完成后,进入 `dinky-web` 目录,执行以下命令安装依赖 ```bash -npm build -``` - -## 开发者须知 - -Dinky开发环境配置有两种模式,分别是 provided 环境和 compile 环境 - -- provided:此环境适合已经存在安装包,可进行远程调试,此模式需要外部环境安装Flink; -- compile:此环境适合二次开发或者熟悉源码,此模式不需要额外安装Flink,通过Flink自带的local模式变可调试开发 -> 开发时,在maven 配置文件 ,勾选即可。dev -> compiler 、 prod -> provided - -### Maven Profile须知 -![local_debug_maven_profile_intro.png](http://pic.dinky.org.cn/dinky/docs/zh-CN/developer_guide/local_debug/local_debug_maven_profile_intro.png) -## Dinky本地开发环境 - -### 分支选择 - -开发不同的代码需要不同的分支 - -- 如果要基于二进制包进行开发,需要切换到对应的分支代码,如 0.5.1; -- 如果想要开发新代码,切换到dev分支即可; - -下面说明在启动前如何修改相应的代码,为本地启动做准备。修改 - -### 修改pom文件 - -需要修改 dlink根目录下的pom文件,下面以本地开发为例,修改如下: - -``` - - UTF-8 - ${target.java.version} - ${target.java.version} - - compile - -``` - -#### 修改配置文件 - -修改dlink根目录下/dlink-admin/src/main/resources/application.ym文件 - -配置数据库连接信息: - -```yaml -spring: - datasource: - url: jdbc:mysql://127.0.0.1:3306/dlink?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&useSSL=false&zeroDateTimeBehavior=convertToNull&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true - username: dlink - password: dlink - driver-class-name: com.mysql.cj.jdbc.Driver +npm install --force ``` -### 初始化数据库 - -在MySQL数据库创建 dlink 用户并在 dlink 数据库中执行 script/sql/dinky-mysql.sql 文件。此外 script/sql/upgrade 目录下存放了了各版本的升级 sql 请依次按照版本号执行。 - -以上文件修改完成后,就可以启动Dinky。 - -### 启动后端服务 - -启动 dlink-admin 下的 Dlink 启动类,可见 8888 端口。 +### 启动前端 -稍微等待一会,即可访问 127.0.0.1:8888 可见登录页。 - -登录用户/密码: admin/admin - -**说明:** 在dinky 0.6版本后,不需要额外启动前端,启动后端后便可访问 127.0.0.1:8888 - -### 启动前端服务 - -如你需要对前端做修改 请参考以下: +在 `dinky-web` 目录下执行以下命令启动前端,也可在 IDEA 中打开`dinky-web`下的`package.json`文件,点击`dev`左侧启动按钮启动前端 ```bash -npm start -``` - -稍微等待一会,即可访问 127.0.0.1:8000 可见登录页。 - -登录用户/密码: admin/admin - -### 本地源码调试示例 - -在IDEA启动后,等待几分钟,即可看到登录页,如下: - -![login](http://pic.dinky.org.cn/dinky/docs/zh-CN/developer_guide/local_debug/login.png) - -登录进去后,以配置数据源和查询数据源为例,观察IDEA的日志情况和dinky界面是否互通; - -![test_database_is_success](http://pic.dinky.org.cn/dinky/docs/zh-CN/developer_guide/local_debug/test_database_is_success.png) - -![url_log](http://pic.dinky.org.cn/dinky/docs/zh-CN/developer_guide/local_debug/url_log.png) - -如上,配置的数据源已经成功,IDEA日志也正常,这个时候就可以基于本地做二次开发或者贡献代码了。 - -## 源码结构 - -```java -dlink--父项目 - |-dlink-admin--管理中心 - |-dlink-alert--告警中心 - |-dlink-app--Application Jar - |-dlink-assembly--打包配置 - |-dlink-client--Client 中心 - | |-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 实现 - |-dinky-web--React 前端 - |-docs--官网文档 +npm run dev ``` -### dlink-admin +## 后端环境 -Dlink 的管理中心,标准的 SpringBoot 应用,负责与前端 react 交互。 +:::warning 注意 +在此默认将使用 IDEA 进行后端代码调试. 所有操作都基于 IDEA 进行界面化操作.不再进行命令行操作. -### dlink-alert +由于目前 Dinky 各个模块未发布到 Maven 中央仓库,所以需要先进行 Install 编译。从而在本地仓库中生成相应的依赖。 -Dinky的告警中心,当前已完成: 钉钉 、企业微信 、飞书 、邮箱。 +如果你是第一次编译 Dinky,那么请勾选以下 Maven Profile,然后下图中的`生命周期 -> Install`进行编译。 +::: -### dlink-app +![localdebug_profile](http://pic.dinky.org.cn/dinky/docs/zh-CN/developer_guide/local_debug/localdebug_profile.png) -Dlink 在 Yarn Application 模式所使用的简化解析包。 +### Profile 说明 -### dlink-assembly +| Profile | 说明 | +|:-------------:|:-------------------------------------------------------------------------------------------------------------------------:| +| dev | 开发环境/本地调试,默认不选中,此功能主要用于本地调试或者二次开发,用于加载相关依赖 | +| aliyun | 加速依赖下载 | +| fast | 主要用于跳过代码检查和代码格式化
注意:如果 JDK 环境为 1.8/8 需要勾选此 profile,否则会报错
如果 JDK 环境为 11 无需勾选 | +| flink-1.14 | 用于指定 Flink 版本为 1.14,dev 下只能单选,prod 下可以多选,如需单独勾选此版本,需要勾选 flink-single-version | +| flink-1.15 | 用于指定 Flink 版本为 1.15,dev 下只能单选,prod 下可以多选,如需单独勾选此版本,需要勾选 flink-single-version | +| flink-1.16 | 用于指定 Flink 版本为 1.16,dev 下只能单选,prod 下可以多选,如需单独勾选此版本,需要勾选 flink-single-version | +| flink-1.17 | 用于指定 Flink 版本为 1.17,dev 下只能单选,prod 下可以多选,如需单独勾选此版本,需要勾选 flink-single-version | +| flink-1.18 | 用于指定 Flink 版本为 1.18,dev 下只能单选,prod 下可以多选,如需单独勾选此版本,需要勾选 flink-single-version | +| jdk 11 | 用于指定 JDK 版本为 11,前提是本地已经安装了 JDK 11 | +| mac | 用于适配在 mac 系统上进行调试 | +| maven-central | 用于指定 maven 仓库为中央仓库 | +| prod | 生产环境,默认选中,此功能主要用于编译打包,此 profile 会将部分依赖排除掉,不会打进最终 tar.gz 包内 | +| scala-2.11 | 用于指定 Scala 版本为 2.11,只能单选 | +| scala-2.12 | 用于指定 Scala 版本为 2.12,只能单选 | +| web | 默认情况下不勾选,同样会进行打包,此种方式适用于前后端不分离场景
如需前后端分离部署,请勾选此 profile ,会将前端编译产物打包进最终的 tar.gz 包内,目录为 html ,分离后如需 Nginx 代理,请在配置文件自行配置 | -项目打包配置,管理了最终 tar.gz 的打包内容。 +> 注意: -### dlink-client +- 其他差异化配置为自己的 Maven 的 settings.xml 文件中的 profile 配置,请忽略 +- 如果无JDK11环境, 默认使用JDK8,如果需要使用JDK11,请在IDEA中配置JDK11环境 +- 注意 Profile 之间的冲突,如 flink-1.14 和 flink-1.15 不能同时勾选,否则会报错 +- 注意 Profile 是否是灰色,如果是灰色,说明此 Profile 被默认选中了,请根据自己的需求进行勾选或者取消勾选 -Dlink 定制的 Flink 运行环境的实现。用来桥接 Dlink 与不同版本的 Flink 运行环境。 +### 开发者须知 -### dlink-common - -Dlink 的子项目的公用类及实现项目。 +Dinky开发环境配置有两种模式,分别是 provided 环境和 compile 环境 -### dlink-connectors +- provided:即上述 Profile 中的 `prod` ,此环境适合打包部署,或者二次开发后打包部署 +- compile: 即上述 Profile 中的 `dev`,此环境适合二次开发或者熟悉源码,此模式不需要额外安装Flink,通过Flink自带的local模式变可调试开发 -Dlink 的 Connectors,目前实现了 Oracle、Clickhouse、SQLServer ...。此外 Dlink 可以直接使用 Flink 的所有连接器,在确保依赖不冲突的情况下。 +### 本地调试 Profile -### dlink-core +![localdebug_dev_profile](http://pic.dinky.org.cn/dinky/docs/zh-CN/developer_guide/local_debug/localdebug_dev_profile.png) -Dlink 的核心模块,内包含 Flink RestAPI 、集群、SQL解释器、Job统一调度器(JobManager)、会话管理等实现。 +### 打包部署 Profile -### dlink-doc +#### 全版本 Profile -此模块为打包所需的资源模块,包含启动脚本、sql脚本、配置文件等。 +![localdebug_package_all_profile](http://pic.dinky.org.cn/dinky/docs/zh-CN/developer_guide/local_debug/localdebug_package_all_profile.png) -### dlink-executor +#### 单版本 Profile -Dlink 的执行模块,是从 dlink-core 中拆分出来,内含最核心的 Executor、Interceptor、Operation 等实现。 +![locadenug_single_package_profile](http://pic.dinky.org.cn/dinky/docs/zh-CN/developer_guide/local_debug/locadenug_single_package_profile.png) -### dlink-extends +### 非全版本 Profile 多选 -存放 Dlink 扩展其他生态的组件。 +![localdebug_not_all_profile_package](http://pic.dinky.org.cn/dinky/docs/zh-CN/developer_guide/local_debug/localdebug_not_all_profile_package.png) -### dlink-function +## Dinky 本地开发环境搭建 -Dlink 所额外提供的 Flink 各种自定义函数。 +### 分支选择 -### dlink-gateway +开发不同的代码需要不同的分支 -Dlink 的任务网关,负责把实现不同执行模式的任务提交与管理,目前主要包含 Yarn PerJob 和 Application。 +- 如果要基于二进制包进行开发,需要切换到对应的分支代码,如 `0.7` 分支; +- 如果想要开发新代码,切换到dev分支即可; -### dlink-metadata +下面说明在启动前如何修改相应的代码,为本地启动做准备。修改 -Dlink 的元数据中心,用于实现各种外部数据源对接到 Dlink,以此使用其各种查询、执行等能力。未来用于 Flink Catalog 的预装载等。 +### 修改配置文件 -### dinky-web +> 以 MySQL 为例, 如果使用 PostgreSQL/H2 请自行修改,注意: 使用 H2 数据库时无需修改如下配置,直接进行 [启动后端服务](#启动后端服务) -Dlink 的前端项目,基于 Ant Design Pro 5.0.0。Why Not Vue ? React Who Use Who Know。(中式英语 =。=) +- 修改 dinky-admin/src/main/resources/application-mysql.yml 文件,配置相应的数据库连接信息 -Dlink 的前端架构与开发后续文章会详解,本文略。 +```yaml +spring: + datasource: + url: jdbc:mysql://${MYSQL_ADDR:192.168.1.22:3306}/${MYSQL_DATABASE:dinky}?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&useSSL=false&zeroDateTimeBehavior=convertToNull&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true + username: ${MYSQL_USERNAME:root} + password: ${MYSQL_PASSWORD:root} + driver-class-name: com.mysql.cj.jdbc.Driver +``` -## 任务执行路线 +- 修改 dinky-admin/src/main/resources/application.yml 文件,将`spring.profiles.active` 设置为 mysql -同步执行:三角号按钮。 +```yaml +spring: + # Dinky application name + application: + name: Dinky + profiles: + # The h2 database is used by default. If you need to use other databases, please set the configuration active to: mysql, currently supports [mysql, pgsql, h2] + # If you use mysql database, please configure mysql database connection information in application-mysql.yml + # If you use pgsql database, please configure pgsql database connection information in application-pgsql.yml + # If you use the h2 database, please configure the h2 database connection information in application-h2.yml, + # note: the h2 database is only for experience use, and the related data that has been created cannot be migrated, please use it with caution + active: mysql #[h2,mysql,pgsql] + include: jmx +``` -### Local +### 初始化数据库 -同步执行/异步提交 ==> StudioService ==> JobManager ==> Executor ==> LocalStreamExecutor ==> CustomTableEnvironmentImpl ==> LocalEnvironment +在 MySQL 数据库自行创建用户/使用默认 root 用户,并创建 dinky 数据库,在 dinky 数据库中执行 script/sql/dinky-mysql.sql +文件。此外 script/sql/upgrade 目录下存放了了各版本的升级 sql ,如需执行:请依次按照版本号执行。 -### Standalone +以上文件修改完成后,就可以启动Dinky。 -注册集群实例 ==> 同步执行/异步提交 ==> StudioService ==> JobManager ==> Executor ==> RemoteStreamExecutor ==> CustomTableEnvironmentImpl ==> RemoteEnvironment ==> JobGraph ==> Flink Standalone Cluster +### 启动后端服务 -### Yarn Session +启动 dinky-admin/src/main/java/org/dinky/ 下的 Dinky 启动类,可见如下信息: -注册集群实例 ==> 同步执行/异步提交 ==> StudioService ==> JobManager ==> Executor ==> RemoteStreamExecutor ==> CustomTableEnvironmentImpl ==> RemoteEnvironment ==> JobGraph ==> Flink Yarn Session Cluster +![localdebug_idea_console_log](http://pic.dinky.org.cn/dinky/docs/zh-CN/developer_guide/local_debug/localdebug_idea_console_log.png) -### Yarn Per-Job +:::warning 注意 -注册集群配置 ==> 异步提交 ==> StudioService ==> JobManager ==> Executor ==> JobGraph ==> Gateway ==> YarnPerJobGateway==> YarnClient ==> Flink Yarn Per-Job Cluster +上述地址全为后端端口,前端端口为 8000, 如果在 [启动前端](#启动前端) 已经成功启动, 则直接访问 127.0.0.1:8000 即可 -### Yarn Application +如果在 [启动前端](#启动前端) 未成功启动, 则需要先启动前端, 再访问 127.0.0.1:8000 -注册集群配置 ==> 异步提交 ==> StudioService ==> JobManager ==> Executor ==> TaskId & JDBC ==> Gateway ==> YarnApplicationGateway==> YarnClient ==> dlink-app.jar ==> Executor ==> AppStreamExecutor ==> CustomTableEnvironmentImpl ==> LocalEnvironmentFlink Yarn Application Cluster +注意: 默认用户名/密码为 admin/admin +::: -## 说明 -以为内容是 Dinky在IDEA 部署调试步骤,并简单介绍了各模块的作用,也清晰的描述了各执行模式下 FlinkSQL 实现免 Jar 提交的代码思路。在了解以上内容后,可以动手改造 Dinky。 +:::tip 说明 +以上内容是 Dinky 在 IDEA 本地环境搭建步骤,并简单介绍了如何在本地配置/启动 Dinky。在了解上述步骤后,可以动手改造 Dinky。 +如果你在 Dinky 的基础上进行了二次开发,并有意向将代码贡献给 Dinky,请参考 [代码贡献](./contribution/how_contribute) 文档。 +::: diff --git a/docs/docs/user_guide/auth_center/menu.md b/docs/docs/user_guide/auth_center/menu.md index 931ccd0471..f6faae2a9b 100644 --- a/docs/docs/user_guide/auth_center/menu.md +++ b/docs/docs/user_guide/auth_center/menu.md @@ -8,6 +8,8 @@ title: 菜单 :::info 简介 菜单模块提供了菜单的新增、修改、删除等功能,新增的菜单需要二次开发相对应的后台功能. +此功能菜单在执行系统初始化 sql 时 会自动创建. + 此功能建议由系统管理员操作,不建议将此功能开放给普通用户. ::: @@ -31,6 +33,10 @@ title: 菜单 ### 菜单删除 选择菜单,右键可进行菜单的删除操作。 +:::warning 注意 +一般情况下,不建议普通用户执行此操作,建议由系统管理员操作. +::: + **认证中心 > 菜单 > 编辑** ![menu_delete](http://pic.dinky.org.cn/dinky/docs/test/menu_delete.png) diff --git a/docs/docs/user_guide/auth_center/role.md b/docs/docs/user_guide/auth_center/role.md index ed49eb6c63..2ba24c97cc 100644 --- a/docs/docs/user_guide/auth_center/role.md +++ b/docs/docs/user_guide/auth_center/role.md @@ -6,20 +6,17 @@ title: 角色 --- :::info 简介 - 角色模块提供了角色的新增、编辑及角色菜单的分配等功能。 -::: - - -:::warning 注意 - 系统初始化时,默认创建了一个超级管理员角色,角色编码为: `SuperAdmin`, 角色名称为: `SuperAdmin`, 该角色拥有系统所有权限, 无法删除。 -目前分配完成菜单权限后, 需要该角色下的用户重新登录, 才能生效。 +此功能建议由系统管理员操作,不建议将此功能开放给普通用户. + +注意: 目前分配完成菜单权限后, 需要该角色下的用户重新登录, 才能生效。 ::: + ### 新建 点击新建按钮,输入角色编码、角色名称等相关信息,完成角色的新建。 @@ -41,3 +38,7 @@ title: 角色 ![role_distribute](http://pic.dinky.org.cn/dinky/docs/test/role_distribute.png) +:::tip 提示 +1. 分配完成后,需要用户重新登录才能生效。 +2. 点击`角色编码`可以查看角色下的用户。 +::: \ No newline at end of file diff --git a/docs/docs/user_guide/auth_center/tenant.md b/docs/docs/user_guide/auth_center/tenant.md index efa39f70d8..77a4e5cd7d 100644 --- a/docs/docs/user_guide/auth_center/tenant.md +++ b/docs/docs/user_guide/auth_center/tenant.md @@ -10,6 +10,9 @@ title: 租户 租户模块提供了租户的新增、编辑及用户的分配功能。 +系统初始化时,默认创建了一个超级管理员租户,租户编码为: `DefaultTenant`, 租户名称为: `DefaultTenant`, 该租户拥有系统所有权限, 无法删除。 + +此功能建议由系统管理员操作,不建议将此功能开放给普通用户. ::: ### 新建 @@ -26,3 +29,7 @@ title: 租户 ![tenant_allocation](http://pic.dinky.org.cn/dinky/docs/test/tenant_allocation.png) +:::tip 提示 +1. 分配完成后,需要用户重新登录才能生效。 +2. 点击`租户编码`可以查看租户下的用户。 +:: \ No newline at end of file diff --git a/docs/docs/user_guide/auth_center/token.md b/docs/docs/user_guide/auth_center/token.md index bfe84d146c..7d00f9ac8b 100644 --- a/docs/docs/user_guide/auth_center/token.md +++ b/docs/docs/user_guide/auth_center/token.md @@ -14,6 +14,14 @@ title: 令牌 > 注意: 选择时必须依次选择 会触发级联查询操作, 选择用户后, 角色会自动刷新, 选择角色后, 租户会自动刷新。 +:::tip 提示 +过期策略: +1. 永不过期: 令牌永不过期, 除非手动删除 +2. 指定过期时间: 令牌在指定的时间点过期 +3. 指定过期时间区间: 令牌在指定的时间区间内有效, 区间内的任意时间点都可以访问, 区间外的时间点都无法访问 +::: + + **认证中心 > 令牌 > 新建** ![token_add](http://pic.dinky.org.cn/dinky/docs/test/token_add.png) diff --git a/docs/docs/user_guide/auth_center/user.md b/docs/docs/user_guide/auth_center/user.md index 4fc42541c2..b7c037ecea 100644 --- a/docs/docs/user_guide/auth_center/user.md +++ b/docs/docs/user_guide/auth_center/user.md @@ -9,10 +9,19 @@ title: 用户 用户模块提供了用户的新增、删除、编辑、角色分配、密码修改及重置等功能。 +系统初始化 sql 时 会自动创建 admin 用户. + +此功能建议由系统管理员操作,不建议将此功能开放给普通用户. ::: +:::warning 注意事项 + **系统初始化默认用户名/密码:** admin/admin +admin 用户在 Dinky 是最高权限用户,无法删除,只能修改密码 +::: + + ### 新建 点击新建按钮,输入用户名等相关信息,完成用户的新建。 @@ -82,8 +91,3 @@ title: 用户 | 是否启用 | 已启用
已禁用 | | 操作 | 对用户信息做编辑、删除、修改密码操作 | -:::warning 注意事项 - -admin 用户在 Dinky 是最高权限用户,无法删除,只能修改密码 - -::: \ No newline at end of file diff --git a/docs/docs/user_guide/register_center/alert/alert_template.md b/docs/docs/user_guide/register_center/alert/alert_template.md index fd75fc7c95..dfc17e3f9d 100644 --- a/docs/docs/user_guide/register_center/alert/alert_template.md +++ b/docs/docs/user_guide/register_center/alert/alert_template.md @@ -39,7 +39,7 @@ eg: | duration | 作业持续时间/耗时 | 45s | | jobName | 作业名称 | demo | | jobId | 作业ID | fe00e413b7bd3888e8906f2a42e2124f | -| jobStatus | 作业状态 | FAILD | +| jobStatus | 作业状态 | FAILED | | taskId | 任务ID | 1 | | jobInstanceId | 作业实例ID | 2 | | taskUrl | 任务详情地址 | http://localhost:8000/#/devops/job-detail?id=29 | diff --git a/docs/docs/user_guide/register_center/cluster_manage.md b/docs/docs/user_guide/register_center/cluster_manage.md index ea4643d10d..a55522692f 100644 --- a/docs/docs/user_guide/register_center/cluster_manage.md +++ b/docs/docs/user_guide/register_center/cluster_manage.md @@ -7,7 +7,7 @@ title: 集群 # 集群管理 -:::warning 注意 +:::tip 提示 在 Dinky 中,将 Flink 运行模式拆分为了 `Flink实例` 和 `集群配置` 两个概念。请按需选择使用。 diff --git a/docs/docs/user_guide/register_center/datasource_manage.md b/docs/docs/user_guide/register_center/datasource_manage.md index ac4c5d5db2..653b9d9773 100644 --- a/docs/docs/user_guide/register_center/datasource_manage.md +++ b/docs/docs/user_guide/register_center/datasource_manage.md @@ -6,6 +6,17 @@ title: 数据源 --- + +:::tip 简介 + +数据源管理是 Dinky 管理系统中重要的功能之一,主要用于管理数据源,包括数据源的创建、编辑、删除、查看元数据、可支持自动构建 +FlinkDDL 等。 + +目前支持的数据源类型包括:MySQL、Oracle、PostgreSQL、SQLServer、Phoenix、ClickHouse、Doris、StartRocks、Presto、Hive。 + +如果需要扩展其他数据源类型,可以参考 [数据源扩展](../../extend/function_expansion/datasource)。 +::: + ## 数据源管理 ![database_manager_list](http://pic.dinky.org.cn/dinky/docs/test/datasource00.png) @@ -18,38 +29,26 @@ title: 数据源 ![create_database](http://pic.dinky.org.cn/dinky/docs/test/datasource1.png) -**名称:** 唯一标识,自定义 - -**分组类型:** 包括来源、数仓、应用、备份、其他,不选默认Default - -**数据源类型:** 目前支持以下多种数据源 -- OLTP:MySQL,Oracle,PostgreSQL,SQLServer,Phoenix -- OLAP:ClickHouse,Doris,StartRocks,Presto -- DataWarehouse/DataLake:Hive - -**url:** 数据库连接地址,如 jdbc:mysql://127.0.0.1:3306/dinky,点击输入框有常用的数据库URL示例 -![create_database](http://pic.dinky.org.cn/dinky/docs/test/datasource2.png) - -**用户名:** 连接数据库的用户名 - -**密码:** 连接数据库的密码 - -**备注:** 自定义 - -**Flink 连接配置:** 避免私密信息泄露,同时作为全局变量复用连接配置,在FlinkSQL中可使用`${数据源名称}` 来加载连接配置,如`${MySQL}`。说明:名称指的是英文唯一标识,即如图所示的名称。注意需要开启全局变量(原片段机制)。更多参数请参考[全局变量](./global_var) - -**Flink 连接模板:** Flink 连接模板作用是为生成 FlinkSQL DDL 而扩展的功能。其中`#{schemaName}`动态获取数据库,`#{tableName}` 动态获取表名称。其他flink相关参数请参考[Flink 官网](https://nightlies.apache.org/flink/flink-docs-master/docs/connectors/table/overview/) +### 参数解读 +| 参数名称 | 参数说明 | 是否必填 | 默认值 | +|------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------|-------| +| 名称 | 数据源名称,自定义,建议使用英文,不超过 20 个字符,建议使用全小写. | 是 | 无 | +| 分组类型 | 数据源分组类型,包括来源、数仓、应用、备份、其他 | 否 | 无 | +| 数据源类型 | 数据源类型,目前支持以下多种数据源:
MySQL、Oracle、PostgreSQL、SQLServer、Phoenix、ClickHouse、Doris、StartRocks
Presto、Hive。 | 是 | MySQL | +| url | 数据库连接地址,如 jdbc:mysql://127.0.0.1:3306/dinky,点击输入框即可触发常用的数据库URL示例,选中后自动填充,根据实际情况填写 | 是 | 无 | +| 用户名 | 连接数据库的用户名 | 是 | 无 | +| 密码 | 连接数据库的密码 | 是 | 无 | +| 备注 | 自定义 | 否 | 无 | +| Flink 连接配置 | 避免私密信息泄露,同时作为全局变量复用连接配置:在 FlinkSQL 中可使用 `${数据源名称}` 来加载连接配置,如 `${MySQL}`。说明:名称指的是英文唯一标识,即如图所示的名称。注意需要开启全局变量。请参考[全局变量](./global_var) | 否 | 无 | +| Flink 连接模板 | Flink 连接模板作用是为生成 FlinkSQL DDL 而扩展的功能。其中`#{schemaName}`动态获取数据库,`#{tableName}` 动态获取表名称。其他flink相关参数请参考[Flink 官网](https://nightlies.apache.org/flink/flink-docs-master/docs/connectors/table/overview/) | 否 | 无 | --- -填完之后点击测试链接: +配置完成之后点击测试链接: ![create_database_jdbc_mysql](http://pic.dinky.org.cn/dinky/docs/test/datasource3.png) +## Flink 连接配置 && Flink 连接模板 Demo - - - -## Flink 连接配置 && Flink 连接模板 Demo 以上图创建的数据源为例。 **FLink链接配置:**将一些固定参数如数据库的地址、端口、账号、密码等填在此处 @@ -61,12 +60,14 @@ title: 数据源 ![create_database_jdbc_mysql](http://pic.dinky.org.cn/dinky/docs/test/datasource55.png) ### 两种配置方式: -#### 第一种方式: + +#### 第一种方式: + ![create_database_jdbc_mysql](http://pic.dinky.org.cn/dinky/docs/test/datasource4.png) ```sql -- Flink 连接配置: (可以放入公共参数,及敏感信息参数) - 'hostname' = 'localhost' + 'hostname' = 'localhost' ,'port' = '3306' ,'username' = 'root' ,'password' = '123456' @@ -85,16 +86,17 @@ title: 数据源 ,'table-name' = '#{tableName}' ``` -##### 生成flinksql效果: +##### 生成 FlinkSQL DDL 效果: + ![create_database_jdbc_mysql](http://pic.dinky.org.cn/dinky/docs/test/datasource5.png) +#### 第二种方式: -#### 第二种方式: ![create_database_jdbc_mysql](http://pic.dinky.org.cn/dinky/docs/test/datasource44.png) ```sql -- Flink 连接配置,同第一种方式的连接配置: - 'hostname' = 'localhost' + 'hostname' = 'localhost' ,'port' = '3306' ,'username' = 'root' ,'password' = '123456' @@ -110,14 +112,22 @@ title: 数据源 ``` -##### 生成flinksql效果: +##### 生成 FlinkSQL DDL 效果: + ![create_database_jdbc_mysql](http://pic.dinky.org.cn/dinky/docs/test/datasource555.png) :::tip 说明 -此处为避免与全局变量冲突,动态获取表名的变量格式为'#{schemaName}' 和 '#{tableName}'! +在 Dinky 1.0.0 之前的版本,动态获取库名和表名的变量格式为'${schemaName}' 和 '${tableName}',其主要场景应用于 FlinkSQL DDL 中的 with 配置中和整库同步的场景。 + +在 Dinky 1.0.0 之后,此处为避免与全局变量冲突,动态获取表名的变量格式为'#{schemaName}' 和 '#{tableName}',此不兼容变更对 FlinkSQL DDL 中的 with 配置无影响, 但是对于整库同步的场景需要注意修改为新的变量格式'#{schemaName}' 和 '#{tableName}' ,与此同时,在整库同步的场景下,也可以支持使用全局变量了. ::: +## 获取数据源元数据信息 + +在数据源管理页面,点击某一数据源的 Logo ,即可进入该数据源的详情页面 + +![datssource_detail](http://pic.dinky.org.cn/dinky/docs/zh-CN/user_guide/register_center/datasource/datssource_detail.png) -## 查询数据 +可以以表格式查询某一表数据 -dinky除了可以开发flink任务之外,也支持常见的数据库任务,在数据开发页面选择创建相对应的数据库任务,右侧选定数据源即可查询数据库数据。 +![datasource_search](http://pic.dinky.org.cn/dinky/docs/zh-CN/user_guide/register_center/datasource/datasource_search.png) diff --git a/docs/docs/user_guide/register_center/document_manager.md b/docs/docs/user_guide/register_center/document_manager.md index 2a040259ec..86661ce66a 100644 --- a/docs/docs/user_guide/register_center/document_manager.md +++ b/docs/docs/user_guide/register_center/document_manager.md @@ -5,6 +5,13 @@ id: document_manager title: 文档管理 --- +:::tip 简介 +文档管理是 Dinky 系统中重要的功能之一,主要用于数据开发编辑器内的函数快捷提示,自动补全,以及常用 SQL 模版语句的快捷输入等功能. + +Dinky 管理系统中的文档管理功能,可以对文档进行新增、编辑、删除等操作。新增/更新完成后,即可在数据开发中使用. + +在系统初始化时,默认插入了一些常用的函数文档, 以供参考. +::: ## 文档管理列表 @@ -18,21 +25,22 @@ title: 文档管理 ![create_document](http://pic.dinky.org.cn/dinky/docs/test/zczx03.jpg) -## 维护文档 +## 修改文档 ![update_document](http://pic.dinky.org.cn/dinky/docs/test/zczx04.jpg) -**参数配置说明:** +## 参数解读 -- **名称:** 文档名称 (必填) 此处定义可在数据开发中使用触发快捷提示 ; -- **文档类型:** 文档类型 (必填) ; -- **类型:** 定义函数类型 (必填) ; -- **子类型:** 定义函数子类型 (必填) ; -- **描述:** 该文档描述 ; -- **填充值:** - - 如果希望在函数 _`LTRIM(parms)`_ 中输入参数 则此处填充值语法为: _`LTRIM(${1:})`_ 此时的1代表第一个光标 ; 如需多个 数字+1即可 tab键切换光标 ; - - 如不需要参数则直接输入期望填充值 ; -- **版本:** 文档版本 (必填) ; +| 参数名称 | 参数说明 | 是否必填 | 默认值 | +|:-----|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:-----|:----| +| 名称 | 文档名称,用于触发快捷提示 | 是 | 无 | +| 文档类型 | 文档类型,主要用于管理文档分类,从而在编辑器内实现不同的提示/补全效果 | 是 | 无 | +| 类型 | 定义函数类型 | 是 | 无 | +| 子类型 | 定义函数子类型 | 是 | 无 | +| 描述 | 该文档描述 | 否 | 无 | +| 填充值 | 填充值 ,由 名称触发快捷提示时,回车后将自动补全该值
如: _`SELECT * FROM table WHERE name = ${1:}`_ ;
如果希望在函数 _`LTRIM(parms)`_ 中输入参数 则此处填充值语法为: _`LTRIM(${1:})`_ 此时的1代表第一个光标 ; 如需多个数字+1即可 tab键切换光标,如不需要参数则直接输入期望填充值即可 | 是 | 无 | +| 版本 | 文档版本
Flink1.14
Flink1.15
Flink1.16
Flink1.17
Flink1.18
All Version | 是 | 无 | +| 是否启用 | 是否启用 , 只有启用的文档才会在数据开发中使用触发快捷提示 | 是 | 不启用 | **填充值提示效果:** -![show_hotkey_tips](http://pic.dinky.org.cn/dinky/docs/zh-CN/administrator_guide/register_center/document_manager/show_hotkey_tips.png) +![ducument_fill_style](http://pic.dinky.org.cn/dinky/docs/zh-CN/user_guide/register_center/document/ducument_fill_style.png) \ No newline at end of file diff --git a/docs/docs/user_guide/register_center/resource.md b/docs/docs/user_guide/register_center/resource.md index 4ce5dd5196..8660e6a3a5 100644 --- a/docs/docs/user_guide/register_center/resource.md +++ b/docs/docs/user_guide/register_center/resource.md @@ -47,5 +47,4 @@ rs:/app.jar # 假设基于以上配置, 在资源中心 Root 根目录 新建了一个目录 test,并在 test 目录下上传了一个 app.jar 文件,那么可以通过以下方式访问 rs:/test/app.jar - ```