Unverified Commit 1f134dde authored by walkhan's avatar walkhan Committed by GitHub

Merge pull request #342 from walkhan/dev

Modify the document file to lower case
parents ab23fc2c a8b5b52b
* [首页](/introduce.md) * [首页](/introduce.md)
* 文档 * 文档
* [master](/introduce.md) * [master](/introduce.md)
* [下载](/quick_start/download.md) * [下载](/deploy/download.md)
* 开发者 * 开发者
* [参与贡献](/zh-CN/developer-guide/how_contribute.md) * [参与贡献](/zh-CN/developer_guide/how_contribute.md)
* [本地调试](/zh-CN/developer-guide/local_debug.md) * [本地调试](/zh-CN/developer_guide/local_debug.md)
* [远程调试](/zh-CN/developer-guide/remote_debug.md) * [远程调试](/zh-CN/developer_guide/remote_debug.md)
* 用户案例 * 用户案例
* 语言 * 语言
* [:cn: 中文](/) * [:cn: 中文](/)
......
...@@ -71,9 +71,9 @@ ...@@ -71,9 +71,9 @@
function pageFooter(hook, vm) { function pageFooter(hook, vm) {
var footer = [ var footer = [
'<footer class="footer" style="text-align: center">', '<footer class="footer" style="text-align: center">',
'<span ><a href="https://github.com/DataLinkDC/dlink">Dinky</a></span>&nbsp;&nbsp;&nbsp;&nbsp;<a href="https://github.com/DataLinkDC/dlink.git"><image src="_media/github.png"></image></a><br><br>', '<span ><a href="https://github.com/DataLinkDC/dlink" target="_blank">Dinky &nbsp;&nbsp;<svg t="1649119584479" class="icon" viewBox="0 0 1049 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1300" width="20" height="20"><path d="M524.979332 0C234.676191 0 0 234.676191 0 524.979332c0 232.068678 150.366597 428.501342 358.967656 498.035028 26.075132 5.215026 35.636014-11.299224 35.636014-25.205961 0-12.168395-0.869171-53.888607-0.869171-97.347161-146.020741 31.290159-176.441729-62.580318-176.441729-62.580318-23.467619-60.841976-58.234462-76.487055-58.234463-76.487055-47.804409-32.15933 3.476684-32.15933 3.476685-32.15933 53.019436 3.476684 80.83291 53.888607 80.83291 53.888607 46.935238 79.963739 122.553122 57.365291 152.97411 43.458554 4.345855-33.897672 18.252593-57.365291 33.028501-70.402857-116.468925-12.168395-239.022047-57.365291-239.022047-259.012982 0-57.365291 20.860106-104.300529 53.888607-140.805715-5.215026-13.037566-23.467619-66.926173 5.215027-139.067372 0 0 44.327725-13.906737 144.282399 53.888607 41.720212-11.299224 86.917108-17.383422 131.244833-17.383422s89.524621 6.084198 131.244833 17.383422C756.178839 203.386032 800.506564 217.29277 800.506564 217.29277c28.682646 72.1412 10.430053 126.029806 5.215026 139.067372 33.897672 36.505185 53.888607 83.440424 53.888607 140.805715 0 201.64769-122.553122 245.975415-239.891218 259.012982 19.121764 16.514251 35.636014 47.804409 35.636015 97.347161 0 70.402857-0.869171 126.898978-0.869172 144.282399 0 13.906737 9.560882 30.420988 35.636015 25.205961 208.601059-69.533686 358.967656-265.96635 358.967655-498.035028C1049.958663 234.676191 814.413301 0 524.979332 0z" fill="#1296db" p-id="1301"></path><path d="M199.040177 753.571326c-0.869171 2.607513-5.215026 3.476684-8.691711 1.738342s-6.084198-5.215026-4.345855-7.82254c0.869171-2.607513 5.215026-3.476684 8.691711-1.738342s5.215026 5.215026 4.345855 7.82254z m-6.953369-4.345856M219.900283 777.038945c-2.607513 2.607513-7.82254 0.869171-10.430053-2.607514-3.476684-3.476684-4.345855-8.691711-1.738342-11.299224 2.607513-2.607513 6.953369-0.869171 10.430053 2.607514 3.476684 4.345855 4.345855 9.560882 1.738342 11.299224z m-5.215026-5.215027M240.760389 807.459932c-3.476684 2.607513-8.691711 0-11.299224-4.345855-3.476684-4.345855-3.476684-10.430053 0-12.168395 3.476684-2.607513 8.691711 0 11.299224 4.345855 3.476684 4.345855 3.476684 9.560882 0 12.168395z m0 0M269.443034 837.011749c-2.607513 3.476684-8.691711 2.607513-13.906737-1.738342-4.345855-4.345855-6.084198-10.430053-2.607513-13.037566 2.607513-3.476684 8.691711-2.607513 13.906737 1.738342 4.345855 3.476684 5.215026 9.560882 2.607513 13.037566z m0 0M308.555733 853.526c-0.869171 4.345855-6.953369 6.084198-13.037566 4.345855-6.084198-1.738342-9.560882-6.953369-8.691711-10.430053 0.869171-4.345855 6.953369-6.084198 13.037566-4.345855 6.084198 1.738342 9.560882 6.084198 8.691711 10.430053z m0 0M351.145116 857.002684c0 4.345855-5.215026 7.82254-11.299224 7.82254-6.084198 0-11.299224-3.476684-11.299224-7.82254s5.215026-7.82254 11.299224-7.82254c6.084198 0 11.299224 3.476684 11.299224 7.82254z m0 0M391.126986 850.049315c0.869171 4.345855-3.476684 8.691711-9.560882 9.560882-6.084198 0.869171-11.299224-1.738342-12.168395-6.084197-0.869171-4.345855 3.476684-8.691711 9.560881-9.560882 6.084198-0.869171 11.299224 1.738342 12.168396 6.084197z m0 0" fill="#1296db" p-id="1302"></path></svg></a><br>',
'<span>&copy;2022 Produced by DataLink Community .</span>', '<span>&copy; 2022 Produced by DataLink Community .</span>',
'</footer>', '</footer>',,
].join(''); ].join('');
hook.afterEach(function (html) { hook.afterEach(function (html) {
return html + footer; return html + footer;
......
* [首页](/zh-CN/introduce.md) * [首页](/zh-CN/introduce.md)
* 文档 * 文档
* [master](/zh-CN/introduce.md) * [master](/zh-CN/introduce.md)
* [下载](/zh-CN/quick_start/download.md) * [下载](/zh-CN/deploy/download.md)
* 开发者 * 开发者
* [参与贡献](/zh-CN/developer-guide/how_contribute.md) * [参与贡献](/zh-CN/developer_guide/how_contribute.md)
* [本地调试](/zh-CN/developer-guide/local_debug.md) * [本地调试](/zh-CN/developer_guide/local_debug.md)
* [远程调试](/zh-CN/developer-guide/remote_debug.md) * [远程调试](/zh-CN/developer_guide/remote_debug.md)
* 用户案例 * 用户案例
* 语言 * 语言
* [:cn: 中文](/) * [:cn: 中文](/)
......
...@@ -7,8 +7,8 @@ ...@@ -7,8 +7,8 @@
- [基本概念](/zh-CN/concept.md) - [基本概念](/zh-CN/concept.md)
- [功能](/zh-CN/feature.md) - [功能](/zh-CN/feature.md)
- 编译与部署 - 编译与部署
- [编译](/zh-CN/quick_start/build.md) - [编译](/zh-CN/deploy/build.md)
- [部署](/zh-CN/quick_start/deploy.md) - [部署](/zh-CN/deploy/deploy.md)
- [Dinky 概览](/zh-CN/dinky_overview.md) - [Dinky 概览](/zh-CN/dinky_overview.md)
- 快速入门指南 - 快速入门指南
- FlinkSQL作业快速入门 - FlinkSQL作业快速入门
...@@ -19,19 +19,19 @@ ...@@ -19,19 +19,19 @@
- 权限管理 - 权限管理
- 数据开发 - 数据开发
- 基本介绍 - 基本介绍
- [功能介绍](/zh-CN/administrator-guide/Studio/development_control/function_introduce.md) - [功能介绍](/zh-CN/administrator_guide/studio/development_control/function_introduce.md)
- [方言介绍](/zh-CN/administrator-guide/Studio/development_control/component_introduce.md) - [方言介绍](/zh-CN/administrator_guide/studio/development_control/component_introduce.md)
- 作业开发 - 作业开发
- [作业概述](/zh-CN/administrator-guide/Studio/job_dev/job_hosting.md) - [作业概述](/zh-CN/administrator_guide/studio/job_dev/job_hosting.md)
- [环境配置](/zh-CN/administrator-guide/Studio/job_dev/env_config.md) - [环境配置](/zh-CN/administrator_guide/studio/job_dev/env_config.md)
- FlinkSQL开发指南 - FlinkSQL开发指南
- [概述](/zh-CN/administrator-guide/Studio/job_dev/flinksql_guide/summary.md) - [概述](/zh-CN/administrator_guide/studio/job_dev/flinksql_guide/summary.md)
- [作业开发](/zh-CN/administrator-guide/Studio/job_dev/flinksql_guide/flinksql_job_dev.md) - [作业开发](/zh-CN/administrator_guide/studio/job_dev/flinksql_guide/flinksql_job_dev.md)
- [作业提交](/zh-CN/administrator-guide/Studio/job_dev/flinksql_guide/flinksql_job_submit.md) - [作业提交](/zh-CN/administrator_guide/studio/job_dev/flinksql_guide/flinksql_job_submit.md)
- [作业调试](/zh-CN/administrator-guide/Studio/job_dev/flinksql_guide/job_debug.md) - [作业调试](/zh-CN/administrator_guide/studio/job_dev/flinksql_guide/job_debug.md)
- 其他数据源开发指南 - 其他数据源开发指南
- 作业运维 - 作业运维
- [作业管理](/zh-CN/administrator-guide/Studio/job_ops/job_manage.md) - [作业管理](/zh-CN/administrator_guide/studio/job_ops/job_manage.md)
- 作业配置 - 作业配置
- 作业提交 - 作业提交
- 作业日志 - 作业日志
...@@ -39,16 +39,16 @@ ...@@ -39,16 +39,16 @@
- 上下游存储 - 上下游存储
- FlinkSQL参考 - FlinkSQL参考
- 注册中心 - 注册中心
- [集群管理](/zh-CN/administrator-guide/registerCenter/cluster_manage.md) - [集群管理](/zh-CN/administrator_guide/register_center/cluster_manage.md)
- [数据源管理](/zh-CN/administrator-guide/registerCenter/datasource_manage.md) - [数据源管理](/zh-CN/administrator_guide/register_center/datasource_manage.md)
- [告警管理](/zh-CN/administrator-guide/registerCenter/warning.md) - [告警管理](/zh-CN/administrator_guide/register_center/warning.md)
- [jar管理](/zh-CN/administrator-guide/registerCenter/jar_manager.md) - [jar管理](/zh-CN/administrator_guide/register_center/jar_manager.md)
- 文档管理 - 文档管理
- [元数据管理](/zh-CN/administrator-guide/metadata.md) - [元数据管理](/zh-CN/administrator_guide/metadata.md)
- [快速使用快捷键](/zh-CN/administrator-guide/Hotkey.md) - [快速使用快捷键](/zh-CN/administrator_guide/hotkey.md)
- 系统设置 - 系统设置
- [用户管理](/zh-CN/administrator-guide/system_setting/user_management.md) - [用户管理](/zh-CN/administrator_guide/system_setting/user_management.md)
- [Flink设置](/zh-CN/administrator-guide/system_setting/Flink_Setting.md) - [Flink设置](/zh-CN/administrator_guide/system_setting/Flink_Setting.md)
- 运维中心 - 运维中心
- 生命周期管理 - 生命周期管理
- 作业监控 - 作业监控
...@@ -77,14 +77,14 @@ ...@@ -77,14 +77,14 @@
- [DataSphereStudio集成](/zh-CN/extend/dataspherestudio.md) - [DataSphereStudio集成](/zh-CN/extend/dataspherestudio.md)
- 开发者指南 - 开发者指南
- 参与贡献 - 参与贡献
- [如何贡献](/zh-CN/developer-guide/how_contribute.md) - [如何贡献](/zh-CN/developer_guide/how_contribute.md)
- [文档贡献](/zh-CN/developer-guide/document.md) - [文档贡献](/zh-CN/developer_guide/document.md)
- [Issue 须知](/zh-CN/developer-guide/issue.md) - [Issue 须知](/zh-CN/developer_guide/issue.md)
- [Pull Request 须知](/zh-CN/developer-guide/pull_request.md) - [Pull Request 须知](/zh-CN/developer_guide/pull_request.md)
- [Commit Message 须知](/zh-CN/developer-guide/commit_message.md) - [Commit Message 须知](/zh-CN/developer_guide/commit_message.md)
- [提交代码须知](/zh-CN/developer-guide/commit_code.md) - [提交代码须知](/zh-CN/developer_guide/commit_code.md)
- [本地调试](/zh-CN/developer-guide/local_debug.md) - [本地调试](/zh-CN/developer_guide/local_debug.md)
- [远程调试](/zh-CN/developer-guide/remote_debug.md) - [远程调试](/zh-CN/developer_guide/remote_debug.md)
- [常见问题](/zh-CN/FAQ.md) - [常见问题](/zh-CN/FAQ.md)
- [致谢](/zh-CN/others/thanks.md) - [致谢](/zh-CN/others/thanks.md)
- [交流与贡献](/zh-CN/others/comminicate.md) - [交流与贡献](/zh-CN/others/comminicate.md)
......
**在数据开发编辑器内可使用以下快捷键** **在数据开发编辑器内可使用以下快捷键**
| 功能描述 | 快捷键 | 备注 | | 功能描述 | 快捷键 | 备注 |
| ---------------- | -------------------------- | ------ | | ---------------- | -------------------------- | ------ |
| 全屏开发 | `F2` | | | 全屏开发 | `F2` | |
| 关闭弹框及全屏 | `Esc` | | | 关闭弹框及全屏 | `Esc` | |
| 保存 | `Ctrl + S` | | | 保存 | `Ctrl + S` | |
| 校验 | `Alt + 2` | | | 校验 | `Alt + 2` | |
| 美化 | `Alt + 3` | | | 美化 | `Alt + 3` | |
| 搜索 | `Ctrl + F` | | | 搜索 | `Ctrl + F` | |
| 替换 | `Ctrl + H` | | | 替换 | `Ctrl + H` | |
| 撤销 | `Ctrl + Z` | | | 撤销 | `Ctrl + Z` | |
| 重做 | `Ctrl + Y` | | | 重做 | `Ctrl + Y` | |
| 注释 | `Ctrl + /` | | | 注释 | `Ctrl + /` | |
| 缩进 | `选中 + Tab` | | | 缩进 | `选中 + Tab` | |
| 取消缩进 | `选中 + Shift + Tab` | | | 取消缩进 | `选中 + Shift + Tab` | |
| 选中后续 | `Shift + Alt + Right` | | | 选中后续 | `Shift + Alt + Right` | |
| 格式化 | `Shift + Alt + F` | | | 格式化 | `Shift + Alt + F` | |
| 编辑多行 | `Ctrl + Shift + Up/Down` | | | 编辑多行 | `Ctrl + Shift + Up/Down` | |
| 复制一行 | `Shift + Alt + Up/Down` | | | 复制一行 | `Shift + Alt + Up/Down` | |
| 删除一行 | `Ctrl + Shift + K` | | | 删除一行 | `Ctrl + Shift + K` | |
| 匹配下一个 | `Ctrl + F3` | | | 匹配下一个 | `Ctrl + F3` | |
| 匹配上一个 | `Ctrl + Shift + F3` | | | 匹配上一个 | `Ctrl + Shift + F3` | |
| 前往下一个高亮 | `F7` | | | 前往下一个高亮 | `F7` | |
| 前往上一个高亮 | `Shift +F7` | | | 前往上一个高亮 | `Shift +F7` | |
| 前面追加换行 | `Ctrl + Shift + End` | | | 前面追加换行 | `Ctrl + Shift + End` | |
| 追加换行 | `Ctrl + End` | | | 追加换行 | `Ctrl + End` | |
| 上下换位 | `Alt + Up/Down` | | | 上下换位 | `Alt + Up/Down` | |
| 折叠/展开 | `Ctrl + Shift + [/]` | | | 折叠/展开 | `Ctrl + Shift + [/]` | |
| 更多快捷键 | `F1` | | | 更多快捷键 | `F1` | |
当用户查看或者使用数据源中的 DDL 或者 DML ,可通过元数据中心获取数据源中的相关 DDL 或者 DML。目前元数据中心包含: 当用户查看或者使用数据源中的 DDL 或者 DML ,可通过元数据中心获取数据源中的相关 DDL 或者 DML。目前元数据中心包含:
- **表信息** - **表信息**
- **字段信息** - **字段信息**
- **SQL 生成** - **SQL 生成**
其中在SQL生成中又包括: 其中在SQL生成中又包括:
- **FlinkDDL 语句** - **FlinkDDL 语句**
- **SELECT 语句** - **SELECT 语句**
- **SQLDDL 语句** - **SQLDDL 语句**
首先进入**数据开发**中的**元数据**,选择已经配置好的数据源,会出现数据源对应的schema。 首先进入**数据开发**中的**元数据**,选择已经配置好的数据源,会出现数据源对应的schema。
![metadata_page](http://www.aiwenmo.com/dinky/docs/zh-CN/administrator-guide/metadata/metadata_page.png) ![metadata_page](http://www.aiwenmo.com/dinky/docs/zh-CN/administrator-guide/metadata/metadata_page.png)
出现以上 schema 后,查看 schema 下的表,**右键单击 schema 下的表**即可看到表信息,字段信息及 SQL 生成。 出现以上 schema 后,查看 schema 下的表,**右键单击 schema 下的表**即可看到表信息,字段信息及 SQL 生成。
### 表信息 ### 表信息
![metadata_table_info](http://www.aiwenmo.com/dinky/docs/zh-CN/administrator-guide/metadata/metadata_table_info.png) ![metadata_table_info](http://www.aiwenmo.com/dinky/docs/zh-CN/administrator-guide/metadata/metadata_table_info.png)
### 字段信息 ### 字段信息
![metadata_columns_info](http://www.aiwenmo.com/dinky/docs/zh-CN/administrator-guide/metadata/metadata_columns_info.png) ![metadata_columns_info](http://www.aiwenmo.com/dinky/docs/zh-CN/administrator-guide/metadata/metadata_columns_info.png)
### SQL生成 ### SQL生成
![metadata_gen_flinkddl](http://www.aiwenmo.com/dinky/docs/zh-CN/administrator-guide/metadata/metadata_gen_flinkddl.png) ![metadata_gen_flinkddl](http://www.aiwenmo.com/dinky/docs/zh-CN/administrator-guide/metadata/metadata_gen_flinkddl.png)
![metadata_gen_selectsql](http://www.aiwenmo.com/dinky/docs/zh-CN/administrator-guide/metadata/metadata_gen_selectsql.png) ![metadata_gen_selectsql](http://www.aiwenmo.com/dinky/docs/zh-CN/administrator-guide/metadata/metadata_gen_selectsql.png)
![metadata_gen_createtable_sql](http://www.aiwenmo.com/dinky/docs/zh-CN/administrator-guide/metadata/metadata_gen_createtable_sql.png) ![metadata_gen_createtable_sql](http://www.aiwenmo.com/dinky/docs/zh-CN/administrator-guide/metadata/metadata_gen_createtable_sql.png)
**如何配置数据源请参考** [数据源管理](/zh-CN/administrator-guide/registerCenter/datasource_manage.md) **如何配置数据源请参考** [数据源管理](/zh-CN/administrator-guide/registerCenter/datasource_manage.md)
提交 FlinkSQL 作业时,首先要保证安装了 Flink 集群。Flink 当前支持的集群模式包括: 提交 FlinkSQL 作业时,首先要保证安装了 Flink 集群。Flink 当前支持的集群模式包括:
- Standalone 集群 - Standalone 集群
- Yarn 集群 - Yarn 集群
- Kubernetes 集群 - Kubernetes 集群
对于以上的三种集群而言,Dinky 为用户提供了两种集群管理方式,一种是集群实例管理,一种是集群配置管理。 对于以上的三种集群而言,Dinky 为用户提供了两种集群管理方式,一种是集群实例管理,一种是集群配置管理。
**需要说明的是:** **需要说明的是:**
- Standalone 集群适用于既可以做为查询使用,又可以将作业异步提交到远程集群 - Standalone 集群适用于既可以做为查询使用,又可以将作业异步提交到远程集群
- Yarn Session 和 Kubernetes Session 适用于既可以做为查询使用,又可以将作业异步提交到远程集群 - Yarn Session 和 Kubernetes Session 适用于既可以做为查询使用,又可以将作业异步提交到远程集群
- Yarn Per-job,Yarn Application 和 Kubernetes Application 适用于异步提交 - Yarn Per-job,Yarn Application 和 Kubernetes Application 适用于异步提交
## 集群实例管理 ## 集群实例管理
集群实例管理适用于 Standalone,Yarn Session 和 Kubernetes Session 这三种集群实例的注册。 集群实例管理适用于 Standalone,Yarn Session 和 Kubernetes Session 这三种集群实例的注册。
### 注册集群实例 ### 注册集群实例
**注册中心 > 集群管理 > 集群实例管理 > 新建** **注册中心 > 集群管理 > 集群实例管理 > 新建**
![cluster_manager_list](http://www.aiwenmo.com/dinky/docs/zh-CN/administrator-guide/registerCenter/cluster_manager/cluster_manager_list.png) ![cluster_manager_list](http://www.aiwenmo.com/dinky/docs/zh-CN/administrator-guide/registerCenter/cluster_manager/cluster_manager_list.png)
![create_flink_cluster](http://www.aiwenmo.com/dinky/docs/zh-CN/administrator-guide/registerCenter/cluster_manager/create_flink_cluster.png) ![create_flink_cluster](http://www.aiwenmo.com/dinky/docs/zh-CN/administrator-guide/registerCenter/cluster_manager/create_flink_cluster.png)
**参数配置说明:** **参数配置说明:**
- **名称:** 自定义(必填) - **名称:** 自定义(必填)
- **别名:** 自定义,默认同名称 - **别名:** 自定义,默认同名称
- **类型:** 支持 Standalone,Yarn Session 和 Kubernetes Session 三种类型的集群提交任务,其他类型的集群只能查看作业信息 - **类型:** 支持 Standalone,Yarn Session 和 Kubernetes Session 三种类型的集群提交任务,其他类型的集群只能查看作业信息
- **JobManager HA地址:** JobManager 的 RestAPI 地址,当 HA 部署时,将可能出现的多个 RestAPI 地址均写入,且采用英文逗号隔开 - **JobManager HA地址:** JobManager 的 RestAPI 地址,当 HA 部署时,将可能出现的多个 RestAPI 地址均写入,且采用英文逗号隔开
- **注释:** 自定义 - **注释:** 自定义
当集群实例配置完成后,点击**心跳**,会更新最新的集群实例信息 当集群实例配置完成后,点击**心跳**,会更新最新的集群实例信息
![心跳检查](http://www.aiwenmo.com/dinky/dev/docs/%E5%BF%83%E8%B7%B3%E6%A3%80%E6%9F%A5.png) ![心跳检查](http://www.aiwenmo.com/dinky/dev/docs/%E5%BF%83%E8%B7%B3%E6%A3%80%E6%9F%A5.png)
点击**回收**,会将提交 Per-Job 和 Application 任务时自动注册且已经注销的集群实例进行回收 点击**回收**,会将提交 Per-Job 和 Application 任务时自动注册且已经注销的集群实例进行回收
![回收](http://www.aiwenmo.com/dinky/dev/docs/%E5%9B%9E%E6%94%B6.png) ![回收](http://www.aiwenmo.com/dinky/dev/docs/%E5%9B%9E%E6%94%B6.png)
**注意:** 心跳与回收需要手动触发 **注意:** 心跳与回收需要手动触发
### 集群实例编辑 ### 集群实例编辑
当集群配置完成后,用户可以对集群实例做编辑修改。 当集群配置完成后,用户可以对集群实例做编辑修改。
首先进入 **注册中心 > 集群实例管理**,在列表中找到对应的集群实例,点击 **编辑**,编辑集群 首先进入 **注册中心 > 集群实例管理**,在列表中找到对应的集群实例,点击 **编辑**,编辑集群
![集群实例编辑](http://www.aiwenmo.com/dinky/dev/docs/%E9%9B%86%E7%BE%A4%E5%AE%9E%E4%BE%8B%E7%BC%96%E8%BE%91.png) ![集群实例编辑](http://www.aiwenmo.com/dinky/dev/docs/%E9%9B%86%E7%BE%A4%E5%AE%9E%E4%BE%8B%E7%BC%96%E8%BE%91.png)
![编辑集群](http://www.aiwenmo.com/dinky/dev/docs/%E7%BC%96%E8%BE%91%E9%9B%86%E7%BE%A4.png) ![编辑集群](http://www.aiwenmo.com/dinky/dev/docs/%E7%BC%96%E8%BE%91%E9%9B%86%E7%BE%A4.png)
### 集群实例删除 ### 集群实例删除
用户可以对所添加的集群实例进行删除。 用户可以对所添加的集群实例进行删除。
首先进入 **注册中心 > 集群实例管理**,在列表中找到对应的集群实例,点击 **删除**,删除集群! 首先进入 **注册中心 > 集群实例管理**,在列表中找到对应的集群实例,点击 **删除**,删除集群!
![集群实例删除](http://www.aiwenmo.com/dinky/dev/docs/%E9%9B%86%E7%BE%A4%E5%AE%9E%E4%BE%8B%E5%88%A0%E9%99%A4.png) ![集群实例删除](http://www.aiwenmo.com/dinky/dev/docs/%E9%9B%86%E7%BE%A4%E5%AE%9E%E4%BE%8B%E5%88%A0%E9%99%A4.png)
![集群删除](http://www.aiwenmo.com/dinky/dev/docs/%E9%9B%86%E7%BE%A4%E5%88%A0%E9%99%A4.png) ![集群删除](http://www.aiwenmo.com/dinky/dev/docs/%E9%9B%86%E7%BE%A4%E5%88%A0%E9%99%A4.png)
### 搜索 ### 搜索
当用户集群实例配置完成后,配置的信息会显示在列表中,用户可以通过名称,别名,创建时间对配置的作业进行查找。 当用户集群实例配置完成后,配置的信息会显示在列表中,用户可以通过名称,别名,创建时间对配置的作业进行查找。
![搜索](http://www.aiwenmo.com/dinky/dev/docs/%E6%90%9C%E7%B4%A2.png) ![搜索](http://www.aiwenmo.com/dinky/dev/docs/%E6%90%9C%E7%B4%A2.png)
## 集群配置管理 ## 集群配置管理
集群配置管理适用于 Yarn Per-job,Yarn Application 和 Kubernetes Application 这三种类型配置。 集群配置管理适用于 Yarn Per-job,Yarn Application 和 Kubernetes Application 这三种类型配置。
### 集群配置 ### 集群配置
首先进入**注册中心 > 集群管理 > 集群配置管理**,点击 **新建** 后,可以创建集群配置,参数配置完成后,点击 **测试****完成** 即可。 首先进入**注册中心 > 集群管理 > 集群配置管理**,点击 **新建** 后,可以创建集群配置,参数配置完成后,点击 **测试****完成** 即可。
![创建集群配置1](http://www.aiwenmo.com/dinky/dev/docs/%E5%88%9B%E5%BB%BA%E9%9B%86%E7%BE%A4%E9%85%8D%E7%BD%AE1.png) ![创建集群配置1](http://www.aiwenmo.com/dinky/dev/docs/%E5%88%9B%E5%BB%BA%E9%9B%86%E7%BE%A4%E9%85%8D%E7%BD%AE1.png)
![创建集群配置2](http://www.aiwenmo.com/dinky/dev/docs/%E5%88%9B%E5%BB%BA%E9%9B%86%E7%BE%A4%E9%85%8D%E7%BD%AE2.png) ![创建集群配置2](http://www.aiwenmo.com/dinky/dev/docs/%E5%88%9B%E5%BB%BA%E9%9B%86%E7%BE%A4%E9%85%8D%E7%BD%AE2.png)
**参数配置说明:** **参数配置说明:**
- **类型:** 支持 Flink on Yarn 和 Flink on Kubernetes - **类型:** 支持 Flink on Yarn 和 Flink on Kubernetes
- **hadoop 配置** - **hadoop 配置**
- **配置文件路径:** hadoop 配置文件路径,指定配置文件路径(末尾无/),需要包含以下文件:core-site.xml,hdfs-site.xml,yarn-site.xml - **配置文件路径:** hadoop 配置文件路径,指定配置文件路径(末尾无/),需要包含以下文件:core-site.xml,hdfs-site.xml,yarn-site.xml
- **自定义配置(高优先级,目前不生效,请跳过)** - **自定义配置(高优先级,目前不生效,请跳过)**
- **ha.zookeeper.quorum:** zookeeper 访问地址 - **ha.zookeeper.quorum:** zookeeper 访问地址
- **其他配置:** hadoop 的其他参数配置(默认不填写) - **其他配置:** hadoop 的其他参数配置(默认不填写)
- **Flink 配置** - **Flink 配置**
- **lib 路径:** 指定 lib 的 hdfs 路径(末尾无/),需要包含 Flink 运行时的依赖 - **lib 路径:** 指定 lib 的 hdfs 路径(末尾无/),需要包含 Flink 运行时的依赖
- **配置文件路径:** 指定 flink-conf.yaml 的具体路径(末尾无/),必填 - **配置文件路径:** 指定 flink-conf.yaml 的具体路径(末尾无/),必填
- **自定义配置(高优先级):** Flink参数配置 - **自定义配置(高优先级):** Flink参数配置
- **基本配置** - **基本配置**
- **标识:** 唯一英文标识(必填) - **标识:** 唯一英文标识(必填)
- **名称:** 自定义,默认同标识 - **名称:** 自定义,默认同标识
- **注释:** 自定义 - **注释:** 自定义
- **是否启用:** 默认禁用,需要开启 - **是否启用:** 默认禁用,需要开启
参数配置完成后,点击 **测试**,会显示测试连接成功。 参数配置完成后,点击 **测试**,会显示测试连接成功。
![集群测试](http://www.aiwenmo.com/dinky/dev/docs/%E9%9B%86%E7%BE%A4%E6%B5%8B%E8%AF%95.png) ![集群测试](http://www.aiwenmo.com/dinky/dev/docs/%E9%9B%86%E7%BE%A4%E6%B5%8B%E8%AF%95.png)
待测试连接成功后,选择完成即可。至此集群配置成功,可连接远程集群进行作业提交。 待测试连接成功后,选择完成即可。至此集群配置成功,可连接远程集群进行作业提交。
### 集群编辑 ### 集群编辑
当集群配置完成后,用户可以对集群配置做编辑修改。 当集群配置完成后,用户可以对集群配置做编辑修改。
首先进入 **注册中心 > 集群配置管理**,在列表中找到对应的集群名称,点击 **编辑** 后,维护集群配置 首先进入 **注册中心 > 集群配置管理**,在列表中找到对应的集群名称,点击 **编辑** 后,维护集群配置
![集群配置编辑](http://www.aiwenmo.com/dinky/dev/docs/%E9%9B%86%E7%BE%A4%E9%85%8D%E7%BD%AE%E7%BC%96%E8%BE%91.png) ![集群配置编辑](http://www.aiwenmo.com/dinky/dev/docs/%E9%9B%86%E7%BE%A4%E9%85%8D%E7%BD%AE%E7%BC%96%E8%BE%91.png)
![维护集群配置](http://www.aiwenmo.com/dinky/dev/docs/%E7%BB%B4%E6%8A%A4%E9%9B%86%E7%BE%A4%E9%85%8D%E7%BD%AE.png) ![维护集群配置](http://www.aiwenmo.com/dinky/dev/docs/%E7%BB%B4%E6%8A%A4%E9%9B%86%E7%BE%A4%E9%85%8D%E7%BD%AE.png)
### 集群删除 ### 集群删除
用户可以对所添加的集群配置进行删除。 用户可以对所添加的集群配置进行删除。
首先进入 **注册中心 > 集群配置管理**,在列表中找到对应的集群,点击 **删除** 后,删除集群 首先进入 **注册中心 > 集群配置管理**,在列表中找到对应的集群,点击 **删除** 后,删除集群
![集群配置删除](http://www.aiwenmo.com/dinky/dev/docs/%E9%9B%86%E7%BE%A4%E9%85%8D%E7%BD%AE%E5%88%A0%E9%99%A4.png) ![集群配置删除](http://www.aiwenmo.com/dinky/dev/docs/%E9%9B%86%E7%BE%A4%E9%85%8D%E7%BD%AE%E5%88%A0%E9%99%A4.png)
![删除集群配置](http://www.aiwenmo.com/dinky/dev/docs/%E5%88%A0%E9%99%A4%E9%9B%86%E7%BE%A4%E9%85%8D%E7%BD%AE.png) ![删除集群配置](http://www.aiwenmo.com/dinky/dev/docs/%E5%88%A0%E9%99%A4%E9%9B%86%E7%BE%A4%E9%85%8D%E7%BD%AE.png)
### 搜索 ### 搜索
当用户集群配置完成后,配置的信息会显示在列表中,用户可以通过名称,别名,创建时间对配置的作业进行查找。 当用户集群配置完成后,配置的信息会显示在列表中,用户可以通过名称,别名,创建时间对配置的作业进行查找。
![搜索](http://www.aiwenmo.com/dinky/dev/docs/%E6%90%9C%E7%B4%A2.png) ![搜索](http://www.aiwenmo.com/dinky/dev/docs/%E6%90%9C%E7%B4%A2.png)
**说明:** 当集群配置的作业异步提交成功,可以看到所作业提交后的实例。同集群实例一样,可以对所在的集群实例进行回收,删除,编辑等操作。集群实例的操作步骤请查看集群实例管理部分。 **说明:** 当集群配置的作业异步提交成功,可以看到所作业提交后的实例。同集群实例一样,可以对所在的集群实例进行回收,删除,编辑等操作。集群实例的操作步骤请查看集群实例管理部分。
## 数据源管理列表 ## 数据源管理列表
![database_manager_list](http://www.aiwenmo.com/dinky/docs/zh-CN/administrator-guide/registerCenter/database_manager/database_manager_list.png) ![database_manager_list](http://www.aiwenmo.com/dinky/docs/zh-CN/administrator-guide/registerCenter/database_manager/database_manager_list.png)
## 创建数据源 ## 创建数据源
当用户使用 Dinky 做为数据开发工具时,用户首先需要进入 **注册中心 > 数据源管理**,点击 **新建** 即可。 当用户使用 Dinky 做为数据开发工具时,用户首先需要进入 **注册中心 > 数据源管理**,点击 **新建** 即可。
![create_database_jdbc](http://www.aiwenmo.com/dinky/docs/zh-CN/administrator-guide/registerCenter/database_manager/create_database_jdbc.png) ![create_database_jdbc](http://www.aiwenmo.com/dinky/docs/zh-CN/administrator-guide/registerCenter/database_manager/create_database_jdbc.png)
![create_database_jdbc_mysql](http://www.aiwenmo.com/dinky/docs/zh-CN/administrator-guide/registerCenter/database_manager/create_database_jdbc_mysql.png) ![create_database_jdbc_mysql](http://www.aiwenmo.com/dinky/docs/zh-CN/administrator-guide/registerCenter/database_manager/create_database_jdbc_mysql.png)
**名称:** 输入英文唯一标识 **名称:** 输入英文唯一标识
**别名:** 自定义,默认同名称 **别名:** 自定义,默认同名称
**分组类型:** 包括来源、数仓、应用、备份、其他 **分组类型:** 包括来源、数仓、应用、备份、其他
**url:** 数据库连接地址,如 jdbc:mysql://127.0.0.1:3306/dlink **url:** 数据库连接地址,如 jdbc:mysql://127.0.0.1:3306/dlink
**用户名:** 连接数据库的用户名 **用户名:** 连接数据库的用户名
**密码:** 连接数据库的密码 **密码:** 连接数据库的密码
**Flink 连接配置:** 避免私密信息泄露,同时作为全局变量复用连接配置,在FlinkSQL中可使用 **${名称}** 来加载连接配置,如 **${ods}**。说明:名称指的是英文唯一标识,即如图所示的名称。注意需要开启全局变量(原片段机制) **Flink 连接配置:** 避免私密信息泄露,同时作为全局变量复用连接配置,在FlinkSQL中可使用 **${名称}** 来加载连接配置,如 **${ods}**。说明:名称指的是英文唯一标识,即如图所示的名称。注意需要开启全局变量(原片段机制)
**Flink 连接模板:** Flink 连接模板作用是为生成 FlinkSQL DDL 而扩展的功能。其中 **${schemaName}** 动态获取数据库,**${tableName}** 动态获取表名称。更多参数请参考[Flink 官网](https://nightlies.apache.org/flink/flink-docs-master/docs/connectors/table/overview/) **Flink 连接模板:** Flink 连接模板作用是为生成 FlinkSQL DDL 而扩展的功能。其中 **${schemaName}** 动态获取数据库,**${tableName}** 动态获取表名称。更多参数请参考[Flink 官网](https://nightlies.apache.org/flink/flink-docs-master/docs/connectors/table/overview/)
**注释:** 自定义 **注释:** 自定义
**是否启用:** 默认禁用,需要开启 **是否启用:** 默认禁用,需要开启
当前数据库统一使用如上定义的参数名称配置数据源连接。当前支持的数据源可参考 [扩展数据源](/zh-CN/extend/datasource.md)章节。 当前数据库统一使用如上定义的参数名称配置数据源连接。当前支持的数据源可参考 [扩展数据源](/zh-CN/extend/datasource.md)章节。
当用户使用 jar 包提交 Flink 应用时,可以在 j**ar管理**中对所需程序进行管理。 当用户使用 jar 包提交 Flink 应用时,可以在 j**ar管理**中对所需程序进行管理。
## Jar包配置 ## Jar包配置
首先进入**注册中心** > **jar管理**,点击 **新建**,进入**创建Jar配置**界面。 首先进入**注册中心** > **jar管理**,点击 **新建**,进入**创建Jar配置**界面。
![新建](http://www.aiwenmo.com/dinky/dev/docs/%E6%96%B0%E5%BB%BA.png) ![新建](http://www.aiwenmo.com/dinky/dev/docs/%E6%96%B0%E5%BB%BA.png)
![创建jar配置](http://www.aiwenmo.com/dinky/dev/docs/%E5%88%9B%E5%BB%BAjar%E9%85%8D%E7%BD%AE.png) ![创建jar配置](http://www.aiwenmo.com/dinky/dev/docs/%E5%88%9B%E5%BB%BAjar%E9%85%8D%E7%BD%AE.png)
**参数配置说明:** **参数配置说明:**
- **Jar配置:** - **Jar配置:**
- 默认:** User App - 默认:** User App
- **文件路径:** 指定 HDFS 上的文件路径,即Flink提交的jar包程序 - **文件路径:** 指定 HDFS 上的文件路径,即Flink提交的jar包程序
- **启动类:** 指定可执行 Jar 的启动类,(可选) - **启动类:** 指定可执行 Jar 的启动类,(可选)
- **执行参数:** 指定可执行 Jar 的启动类入参,(可选) - **执行参数:** 指定可执行 Jar 的启动类入参,(可选)
- **基本配置:** - **基本配置:**
- **标识:** 英文唯一标识(必选) - **标识:** 英文唯一标识(必选)
- **名称:** 自定义 - **名称:** 自定义
- **注释:** 自定义 - **注释:** 自定义
- **是否启用:** 默认启用 - **是否启用:** 默认启用
Jar包配置完成后,就可以正常提交运行。 Jar包配置完成后,就可以正常提交运行。
如果可行性jar包出错,用户可以对其进行编辑修改。 如果可行性jar包出错,用户可以对其进行编辑修改。
## Jar包编辑 ## Jar包编辑
用户可以对所添加的可执行Jar包配置做编辑修改。 用户可以对所添加的可执行Jar包配置做编辑修改。
首先进入**注册中心** > **jar管理**,点击**编辑**,即可对可执行Jar配置进行修改。 首先进入**注册中心** > **jar管理**,点击**编辑**,即可对可执行Jar配置进行修改。
![jar编辑](http://www.aiwenmo.com/dinky/dev/docs/jar%E7%BC%96%E8%BE%91.png) ![jar编辑](http://www.aiwenmo.com/dinky/dev/docs/jar%E7%BC%96%E8%BE%91.png)
![维护jar包配置](http://www.aiwenmo.com/dinky/dev/docs/%E7%BB%B4%E6%8A%A4jar%E5%8C%85%E9%85%8D%E7%BD%AE.png) ![维护jar包配置](http://www.aiwenmo.com/dinky/dev/docs/%E7%BB%B4%E6%8A%A4jar%E5%8C%85%E9%85%8D%E7%BD%AE.png)
## Jar删除 ## Jar删除
用户可以对所添加的可执行Jar包配置做删除。 用户可以对所添加的可执行Jar包配置做删除。
首先进入**注册中心** > **jar管理**,点击**删除**,即可对可执行Jar配置进行删除。 首先进入**注册中心** > **jar管理**,点击**删除**,即可对可执行Jar配置进行删除。
![jar配置删除](http://www.aiwenmo.com/dinky/dev/docs/jar%E9%85%8D%E7%BD%AE%E5%88%A0%E9%99%A4.png) ![jar配置删除](http://www.aiwenmo.com/dinky/dev/docs/jar%E9%85%8D%E7%BD%AE%E5%88%A0%E9%99%A4.png)
![删除jar](http://www.aiwenmo.com/dinky/dev/docs/%E5%88%A0%E9%99%A4jar.png) ![删除jar](http://www.aiwenmo.com/dinky/dev/docs/%E5%88%A0%E9%99%A4jar.png)
**说明:** 目前jar包提交的方式还尚在开发阶段,不适合在生产使用。用户只能跑一些demo **说明:** 目前jar包提交的方式还尚在开发阶段,不适合在生产使用。用户只能跑一些demo
\ No newline at end of file
如何创建报警实例及报警组,在0.6版本以后,用户可以创建报警实例及报警组,监控 FlinkSQL 作业。一个报警组可以使用多个报警实例,用户就可以进一步收到报警通知。收到的报警通知如下: 如何创建报警实例及报警组,在0.6版本以后,用户可以创建报警实例及报警组,监控 FlinkSQL 作业。一个报警组可以使用多个报警实例,用户就可以进一步收到报警通知。收到的报警通知如下:
- unknown - unknown
- stop - stop
- cancel - cancel
- finished - finished
首先要进入**注册中心** > **报警管理**,然后选择左侧的报警实例管理,创建一个告警实例。然后选择对应的报警插件。然后选择报警组管理,创建一个报警组。 首先要进入**注册中心** > **报警管理**,然后选择左侧的报警实例管理,创建一个告警实例。然后选择对应的报警插件。然后选择报警组管理,创建一个报警组。
目前Dinky支持的报警插件有: 目前Dinky支持的报警插件有:
- **[钉钉](#钉钉)方式告警 :** WebHook - **[钉钉](#钉钉)方式告警 :** WebHook
- **[企业微信](#企业微信)方式告警 :** 包含 **应用** **群聊** - **[企业微信](#企业微信)方式告警 :** 包含 **应用** **群聊**
- **[飞书](#飞书)方式告警 :** WebHook - **[飞书](#飞书)方式告警 :** WebHook
- **[邮箱](#邮箱)方式告警 :** 通过邮件发送报警通知 - **[邮箱](#邮箱)方式告警 :** 通过邮件发送报警通知
## 报警实例管理 ## 报警实例管理
### 告警实例列表 ### 告警实例列表
![alert_instance_list](http://www.aiwenmo.com/dinky/docs/zh-CN/administrator-guide/registerCenter/warning/alert_instance_list.png) ![alert_instance_list](http://www.aiwenmo.com/dinky/docs/zh-CN/administrator-guide/registerCenter/warning/alert_instance_list.png)
### 创建告警实例 ### 创建告警实例
**注册中心** > **报警管理**,选择**新建** **注册中心** > **报警管理**,选择**新建**
![create_alert_instance](http://www.aiwenmo.com/dinky/docs/zh-CN/administrator-guide/registerCenter/warning/create_alert_instance.png) ![create_alert_instance](http://www.aiwenmo.com/dinky/docs/zh-CN/administrator-guide/registerCenter/warning/create_alert_instance.png)
点击以上告警实例类型,创建报警实例配置。报警实例配置完成,就可以创建报警组。 点击以上告警实例类型,创建报警实例配置。报警实例配置完成,就可以创建报警组。
## 报警组管理 ## 报警组管理
新建一个报警组,选择新建 新建一个报警组,选择新建
![alert_group_list](http://www.aiwenmo.com/dinky/docs/zh-CN/administrator-guide/registerCenter/warning/alert_group_list.png) ![alert_group_list](http://www.aiwenmo.com/dinky/docs/zh-CN/administrator-guide/registerCenter/warning/alert_group_list.png)
![create_alert_group](http://www.aiwenmo.com/dinky/docs/zh-CN/administrator-guide/registerCenter/warning/create_alert_group.jpg) ![create_alert_group](http://www.aiwenmo.com/dinky/docs/zh-CN/administrator-guide/registerCenter/warning/create_alert_group.jpg)
## 钉钉 ## 钉钉
如果用户使用钉钉进行报警,请进入**注册中心** > **报警管理** > **报警实例管理**,点击**新建** 选择**钉钉**报警实例。 如果用户使用钉钉进行报警,请进入**注册中心** > **报警管理** > **报警实例管理**,点击**新建** 选择**钉钉**报警实例。
![create_dingdingtalk_alert](http://www.aiwenmo.com/dinky/docs/zh-CN/administrator-guide/registerCenter/warning/create_dingdingtalk_alert.png) ![create_dingdingtalk_alert](http://www.aiwenmo.com/dinky/docs/zh-CN/administrator-guide/registerCenter/warning/create_dingdingtalk_alert.png)
**参数配置:** **参数配置:**
- **名称:** 自定义; - **名称:** 自定义;
- **地址:** Webhook,格式如下:https://oapi.dingtalk.com/robot/send?access_token=??????? - **地址:** Webhook,格式如下:https://oapi.dingtalk.com/robot/send?access_token=???????
- **关键字:** 安全设置的自定义关键词,钉钉关键字和 Dinky 中的关键字保持一致即可; - **关键字:** 安全设置的自定义关键词,钉钉关键字和 Dinky 中的关键字保持一致即可;
- **密令:** 安全设置的加签; - **密令:** 安全设置的加签;
- **开启代理:** 默认否(一般默认) - **开启代理:** 默认否(一般默认)
- **@所有人:** 默认禁用,需要开启; - **@所有人:** 默认禁用,需要开启;
- **是否启用:** 默认禁用,需要开启; - **是否启用:** 默认禁用,需要开启;
- **展示方式类型:** 支持 MarkDown 和文本; - **展示方式类型:** 支持 MarkDown 和文本;
**说明:** 自定义机器人发送消息时,在“被@人列表”里面的人员收到该消息时,会有@消息提醒。 **说明:** 自定义机器人发送消息时,在“被@人列表”里面的人员收到该消息时,会有@消息提醒。
[钉钉-开发者文档](https://open.dingtalk.com/document/robots/custom-robot-access) [钉钉-开发者文档](https://open.dingtalk.com/document/robots/custom-robot-access)
## 企业微信 ## 企业微信
如果用户使用企业微信进行报警,请进入**注册中心** > **报警管理** > **报警实例管理**,点击**新建** 选择**企业微信**报警实例。 如果用户使用企业微信进行报警,请进入**注册中心** > **报警管理** > **报警实例管理**,点击**新建** 选择**企业微信**报警实例。
### 微信企业应用配置 ### 微信企业应用配置
![create_wechat_alert](http://www.aiwenmo.com/dinky/docs/zh-CN/administrator-guide/registerCenter/warning/create_wechat_app_alert.png) ![create_wechat_alert](http://www.aiwenmo.com/dinky/docs/zh-CN/administrator-guide/registerCenter/warning/create_wechat_app_alert.png)
**参数配置:** **参数配置:**
- **名称:** 自定义; - **名称:** 自定义;
- **企业id:** 询问企业微信管理员即可; - **企业id:** 询问企业微信管理员即可;
- **密令:** 安全设置的加签; - **密令:** 安全设置的加签;
- **用户:** 企业微信联系人中可添加; - **用户:** 企业微信联系人中可添加;
- **发送消息:** 接口中定义的msg,如{"touser":"{toUser}","agentid":{agentId}","msgtype":"{showType}","{showType}":{"content":"{msg}"}} - **发送消息:** 接口中定义的msg,如{"touser":"{toUser}","agentid":{agentId}","msgtype":"{showType}","{showType}":{"content":"{msg}"}}
- **代理ID:**询问企业微信管理员即可; - **代理ID:**询问企业微信管理员即可;
- **发送方式:** 应用; - **发送方式:** 应用;
- **展示方式类型:** 支持 MarkDown 和文本; - **展示方式类型:** 支持 MarkDown 和文本;
- **是否启用:** 默认禁用,需要开启; - **是否启用:** 默认禁用,需要开启;
### 微信企业群聊配置 ### 微信企业群聊配置
![create_wechat_chat_alert](http://www.aiwenmo.com/dinky/docs/zh-CN/administrator-guide/registerCenter/warning/create_wechat_chat_alert.png) ![create_wechat_chat_alert](http://www.aiwenmo.com/dinky/docs/zh-CN/administrator-guide/registerCenter/warning/create_wechat_chat_alert.png)
**参数配置:** **参数配置:**
- **名称:** 自定义; - **名称:** 自定义;
- **发送方式:** 群聊; - **发送方式:** 群聊;
- **WebHook地址:** Webhook地址,如https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=xxxxxx - **WebHook地址:** Webhook地址,如https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=xxxxxx
- **关键字:** 作为发送信息的title 标记; - **关键字:** 作为发送信息的title 标记;
- **用户:** 企业微信联系人中可添加; - **用户:** 企业微信联系人中可添加;
- **@所有人:** 默认禁用,如果@所有人需要开启; - **@所有人:** 默认禁用,如果@所有人需要开启;
- **被@用户:**企业微信用户名全拼; - **被@用户:**企业微信用户名全拼;
- **是否启用:** 默认禁用,需要开启; - **是否启用:** 默认禁用,需要开启;
**说明:** @所有人与被@用户可相互切换 **说明:** @所有人与被@用户可相互切换
其中发送方式分别对应企微文档: 其中发送方式分别对应企微文档:
[应用-开发者文档](https://work.weixin.qq.com/api/doc/90000/90135/90236) [应用-开发者文档](https://work.weixin.qq.com/api/doc/90000/90135/90236)
[群聊-开发者文档](https://work.weixin.qq.com/api/doc/90000/90135/90248) [群聊-开发者文档](https://work.weixin.qq.com/api/doc/90000/90135/90248)
发送消息对应文档中的 content,与此相对应的值的变量为 {msg} 发送消息对应文档中的 content,与此相对应的值的变量为 {msg}
## 飞书 ## 飞书
如果用户使用飞书进行报警,请进入**注册中心** > **报警管理** > **报警实例管理**,点击**新建** 选择**飞书**报警实例。 如果用户使用飞书进行报警,请进入**注册中心** > **报警管理** > **报警实例管理**,点击**新建** 选择**飞书**报警实例。
![create_feishu_alert](http://www.aiwenmo.com/dinky/docs/zh-CN/administrator-guide/registerCenter/warning/create_feishu_alert.png) ![create_feishu_alert](http://www.aiwenmo.com/dinky/docs/zh-CN/administrator-guide/registerCenter/warning/create_feishu_alert.png)
**参数配置:** **参数配置:**
- **名称:** 自定义; - **名称:** 自定义;
- **发送方式:** 群聊; - **发送方式:** 群聊;
- **WebHook地址:** Webhook 地址,如https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=xxxxxx - **WebHook地址:** Webhook 地址,如https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=xxxxxx
- **关键字:** 作为发送信息的title 标记; - **关键字:** 作为发送信息的title 标记;
- **@所有人:** 默认禁用,如果@所有人需要开启; - **@所有人:** 默认禁用,如果@所有人需要开启;
- **被@用户:**飞书的用户ID; - **被@用户:**飞书的用户ID;
- **是否启用:** 默认禁用,需要开启; - **是否启用:** 默认禁用,需要开启;
- **展示方式类型:** 支持富文本和纯文本; - **展示方式类型:** 支持富文本和纯文本;
**说明:** @所有人与被@用户可相互切换 **说明:** @所有人与被@用户可相互切换
[飞书-自定义机器人接入开发文档](https://open.feishu.cn/document/ukTMukTMukTM/ucTM5YjL3ETO24yNxkjN) [飞书-自定义机器人接入开发文档](https://open.feishu.cn/document/ukTMukTMukTM/ucTM5YjL3ETO24yNxkjN)
## 邮箱 ## 邮箱
如果用户使用邮箱进行报警,请进入**注册中心** > **报警管理** > **报警实例管理**,点击**新建** 选择**邮箱**报警实例。 如果用户使用邮箱进行报警,请进入**注册中心** > **报警管理** > **报警实例管理**,点击**新建** 选择**邮箱**报警实例。
![create_email_alert](http://www.aiwenmo.com/dinky/docs/zh-CN/administrator-guide/registerCenter/warning/create_email_alert.png) ![create_email_alert](http://www.aiwenmo.com/dinky/docs/zh-CN/administrator-guide/registerCenter/warning/create_email_alert.png)
**参数配置:** **参数配置:**
- **名称:** 自定义; - **名称:** 自定义;
- **发送方式:** 邮件发送; - **发送方式:** 邮件发送;
- **收件人:** 收件人邮箱,多个使用逗号分开; - **收件人:** 收件人邮箱,多个使用逗号分开;
- **抄送人:** 抄送人邮箱,多个使用逗号分开; - **抄送人:** 抄送人邮箱,多个使用逗号分开;
- **邮件服务器Host:** 邮件服务器主机; - **邮件服务器Host:** 邮件服务器主机;
- **邮件服务器Port:** 邮件服务器端口; - **邮件服务器Port:** 邮件服务器端口;
- **发送者sender昵称:** 发送者到目标邮箱的显示昵称; - **发送者sender昵称:** 发送者到目标邮箱的显示昵称;
- **是否开启邮箱验证:** - **是否开启邮箱验证:**
- -
- **邮箱用户名:** 邮箱; - **邮箱用户名:** 邮箱;
- **邮箱密码:** 邮箱密码; - **邮箱密码:** 邮箱密码;
- -
- 表单无显示 - 表单无显示
- **是否开启tls证书验证:** 是/否; - **是否开启tls证书验证:** 是/否;
- **是否开启SSL验证:** - **是否开启SSL验证:**
- -
- **受信任域:** 自行设置 可设置为* - **受信任域:** 自行设置 可设置为*
- -
- 表单无显示 - 表单无显示
- **是否启用:** 默认禁用,需要开启; - **是否启用:** 默认禁用,需要开启;
- **展示方式类型:** - **展示方式类型:**
- 支持文本 表格 附件 附件+表格; - 支持文本 表格 附件 附件+表格;
- PS: 需要注意的是 当选择 附件 || 附件+表格 时: - PS: 需要注意的是 当选择 附件 || 附件+表格 时:
- **XLS存放目录:** 非必填 默认路径为: /tmp/xls - **XLS存放目录:** 非必填 默认路径为: /tmp/xls
\ No newline at end of file
FlinkSQL Studio是基于React JavaScript库开发的SQL交互式界面工具。目前在Dinky中支持的方言有: FlinkSQL Studio是基于React JavaScript库开发的SQL交互式界面工具。目前在Dinky中支持的方言有:
- FlinkSQL - FlinkSQL
- MySQL - MySQL
- PostgreSQL - PostgreSQL
- Oracle - Oracle
- SQLServer - SQLServer
- Phoenix - Phoenix
- Doris - Doris
- Clickhouse - Clickhouse
- java - java
在FlinkSQL Studio除支持以上方言外,还可以在上面创建作业,提交作业及配置作业等。在作业提交后,可以通过OpenAPI对所在作业进行调度。 在FlinkSQL Studio除支持以上方言外,还可以在上面创建作业,提交作业及配置作业等。在作业提交后,可以通过OpenAPI对所在作业进行调度。
**FlinkSQL支持** **FlinkSQL支持**
FlinkSQL作为Flink上的SQL计算引擎,结合Dinky中的Studio。使得FlinkSQL开发更加简化,不需要写一行Java或者Scala代码。 FlinkSQL作为Flink上的SQL计算引擎,结合Dinky中的Studio。使得FlinkSQL开发更加简化,不需要写一行Java或者Scala代码。
只要FlinkSQL本身支持的语法,SQL-Client支持的语法,Dinky Studio上也完全支持。 只要FlinkSQL本身支持的语法,SQL-Client支持的语法,Dinky Studio上也完全支持。
**Java支持** **Java支持**
当写一些UDF及UDTF函数时,可以在Studio上编写代码,并可以在local模式下测试,并最终发布。当前Java只适合一些UDF及UDTF函数。 当写一些UDF及UDTF函数时,可以在Studio上编写代码,并可以在local模式下测试,并最终发布。当前Java只适合一些UDF及UDTF函数。
**数据库支持** **数据库支持**
目前支持的数据库,都可以在Studio上做ETL及通过OpenAPI做周期性调度。 目前支持的数据库,都可以在Studio上做ETL及通过OpenAPI做周期性调度。
\ No newline at end of file
系统设置中的用户管理功能,包含添加或删除用户、修改密码等。此用户管理中的用户仅限于登录 Dinky 界面。 系统设置中的用户管理功能,包含添加或删除用户、修改密码等。此用户管理中的用户仅限于登录 Dinky 界面。
**默认用户名/密码:** admin/admin **默认用户名/密码:** admin/admin
## 用户管理 ## 用户管理
![user_manager](http://www.aiwenmo.com/dinky/docs/zh-CN/administrator-guide/system_setting/user_management/user_manager.png) ![user_manager](http://www.aiwenmo.com/dinky/docs/zh-CN/administrator-guide/system_setting/user_management/user_manager.png)
## 添加用户 ## 添加用户
当用户使用非admin用户登录时,可以添加一个新用户,通过新用户登录Dinky。 当用户使用非admin用户登录时,可以添加一个新用户,通过新用户登录Dinky。
- **普通用户**创建好后,**默认密码****123456** - **普通用户**创建好后,**默认密码****123456**
- 如果需要修改密码,请查看[修改密码](#密码修改) - 如果需要修改密码,请查看[修改密码](#密码修改)
进入 **系统设置**,选择 **用户管理****新建** 进入 **系统设置**,选择 **用户管理****新建**
![create_user](http://www.aiwenmo.com/dinky/docs/zh-CN/administrator-guide/system_setting/user_management/create_user.png) ![create_user](http://www.aiwenmo.com/dinky/docs/zh-CN/administrator-guide/system_setting/user_management/create_user.png)
**参数配置:** **参数配置:**
- **用户名:** 自定义; - **用户名:** 自定义;
- **昵称:** 自定义; - **昵称:** 自定义;
- **工号:** 可定义一个唯一值; - **工号:** 可定义一个唯一值;
- **手机号:** 用户使用的手机号; - **手机号:** 用户使用的手机号;
- **是否启用:** 默认禁用,需要开启; - **是否启用:** 默认禁用,需要开启;
## 删除用户 ## 删除用户
但用户不使用某个创建的普通用户时,可以进行删除。首先进入 **系统设置**,选择 **用户管理**,点击对应用户的**删除**即可。 但用户不使用某个创建的普通用户时,可以进行删除。首先进入 **系统设置**,选择 **用户管理**,点击对应用户的**删除**即可。
![delete_user](http://www.aiwenmo.com/dinky/docs/zh-CN/administrator-guide/system_setting/user_management/delete_user.png) ![delete_user](http://www.aiwenmo.com/dinky/docs/zh-CN/administrator-guide/system_setting/user_management/delete_user.png)
![delete_user_ok](http://www.aiwenmo.com/dinky/docs/zh-CN/administrator-guide/system_setting/user_management/delete_user_ok.png) ![delete_user_ok](http://www.aiwenmo.com/dinky/docs/zh-CN/administrator-guide/system_setting/user_management/delete_user_ok.png)
**说明:** admin 用户在 Dinky 是最高权限用户,无法删除,只能修改密码 **说明:** admin 用户在 Dinky 是最高权限用户,无法删除,只能修改密码
## 用户配置及编辑 ## 用户配置及编辑
用户配置或者编辑是为了用户修改用户的基本信息,首先进入 **系统设置**,选择 **用户管理**,点击对应用户的**配置**或者**编辑**。接下来就可以维护用户信息。 用户配置或者编辑是为了用户修改用户的基本信息,首先进入 **系统设置**,选择 **用户管理**,点击对应用户的**配置**或者**编辑**。接下来就可以维护用户信息。
![update_user](http://www.aiwenmo.com/dinky/docs/zh-CN/administrator-guide/system_setting/user_management/update_user.png) ![update_user](http://www.aiwenmo.com/dinky/docs/zh-CN/administrator-guide/system_setting/user_management/update_user.png)
## 密码修改 ## 密码修改
- 普通用户创建好后,**默认密码****123456** - 普通用户创建好后,**默认密码****123456**
- **admin 用户**密码是 **admin** 。为避免信息泄露,**在生产环境建议用户修改密码** - **admin 用户**密码是 **admin** 。为避免信息泄露,**在生产环境建议用户修改密码**
首先进入 **系统设置**,选择 **用户管理**,点击对应用户的密码修改即可。 首先进入 **系统设置**,选择 **用户管理**,点击对应用户的密码修改即可。
![update_passwd](http://www.aiwenmo.com/dinky/docs/zh-CN/administrator-guide/system_setting/user_management/update_passwd.png) ![update_passwd](http://www.aiwenmo.com/dinky/docs/zh-CN/administrator-guide/system_setting/user_management/update_passwd.png)
![update_passwd_ok](http://www.aiwenmo.com/dinky/docs/zh-CN/administrator-guide/system_setting/user_management/update_passwd_ok.png) ![update_passwd_ok](http://www.aiwenmo.com/dinky/docs/zh-CN/administrator-guide/system_setting/user_management/update_passwd_ok.png)
当密码修改成功后,用户可以选择界面**右上角****退出登录**,既可通过新密码登录 Dinky。 当密码修改成功后,用户可以选择界面**右上角****退出登录**,既可通过新密码登录 Dinky。
![loginout](http://www.aiwenmo.com/dinky/docs/zh-CN/administrator-guide/system_setting/user_management/loginout.png) ![loginout](http://www.aiwenmo.com/dinky/docs/zh-CN/administrator-guide/system_setting/user_management/loginout.png)
![login](http://www.aiwenmo.com/dinky/docs/zh-CN/administrator-guide/system_setting/user_management/login.png) ![login](http://www.aiwenmo.com/dinky/docs/zh-CN/administrator-guide/system_setting/user_management/login.png)
## 环境准备
| **环境** | **版本** | 备注 |
| -------- | --------- | --------------------------------- |
| npm | 7.19.0 | |
| node.js | 14.19.0 | |
| jdk | 1.8.0_201 | |
| maven | 3.6.3 | |
| lombok | 1.18.16 | 如果在idea编译,需要自行安装 插件 |
| mysql | 5.6+ | |
## NodeJS 安装部署
### Windows版本
[下载地址]( <https://registry.npmmirror.com/-/binary/node/v14.19.0/node-v14.19.0-x64.msi>)
下载完成后,双击傻瓜式安装即可
由于Dinky编译NPM最低版本为7.19.0,因此需要把NPM版本升级到7.19.0。具体操作如下
```
npm install -g npm@7.19.0
```
### Linux 版本
[下载地址](https://nodejs.org/download/release/v14.19.1/node-v14.19.1-linux-x64.tar.gz)
下载完成后,安装配置即可,操作如下:
```
tar xf node-v14.19.0.tar.gz -C /opt/module/
vim /etc/profile
export NODEJS_HOME=/opt/module/node-v14.19.0
export PATH=$NODEJS_HOME/bin:$PATH
#保存退出
source /etc/profile #刷新环境变量
```
由于Dinky编译NPM最低版本为7.19.0,因此需要把NPM版本升级到7.19.0。具体操作如下:
```
npm install -g npm@7.19.0
```
## MySQL部署
MySQL版本选择5.6+
### Windows版本
[下载地址](<https://dev.mysql.com/downloads/file/?id=510038>)
下载完成后,双击傻瓜式安装即可
### Linux 版本
[下载地址]( [http://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm](http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm))
下载完成后,安装配置即可,操作如下:
```
#如果没有wget命令
yum install wget
#下载mysql 5.7
wget http://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
#安装yum repository
yum -y install mysql57-community-release-el7-11.noarch.rpm
#在线安装
yum -y install mysql-community-server
#修改配置文件
vi /etc/my.cnf
skip-grant-tables #末尾添加这句话,这时候登入mysql就不需要密码
#开启mysql服务
service mysqld start
#空密码登录mysql
mysql -u root -p
#设置root密码
flush privileges;
set password for root@localhost = password('123456');
#恢复mysql配置
service mysqld stop #停止mysql服务
vi /etc/my.cnf #修改配置文件
# skip-grant-tables # 注释掉这句话
service mysqld start # 启动mysql服务
#设置开机自启动
systemctl enable mysqld
-------------------------------修改密码策略-------------------------
vi /etc/my.cnf
在 [mysqld]下面添加
validate_password=off
collation_server = utf8mb4_general_ci
character_set_server = utf8mb4
#重启服务
service mysqld restart 或者 systemctl restart mysqld.service
#卸载自动更新
yum -y remove mysql57-community-release-el7-11.noarch
------------------------------------远程连接----------------------------
#输入mysql -uroot -p123456 进入到mysql命令行
#授权
grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;
#刷新权限
flush privileges;
---------------------------------修改默认编码-------------------------------------------
#root用户
vi /etc/my.cnf
#添加如下内容
[client]
default_character_set=utf8mb4
#重启mysql服务
service mysqld restart
#查看修改结果
mysql -u root -p
SHOW VARIABLES LIKE 'char%'; 字符编码
SHOW VARIABLES LIKE 'collation_%'; 排序规则
#显示为utf-8
#已存在的表编码不变
#改变的是新建的表
```
## Maven 安装部署
### Windows版本
[下载地址](<https://dlcdn.apache.org/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.zip>)
下载完成后后,解压到对应目录
```
1.将安装包解压到某目录,这里解压到C:\Program Files\apache-maven-3.6.3
3.设置系统变量MAVEN_HOME,值为C:\Program Files\apache-maven-3.6.3
4. 更新 PATH 变量,添加 Maven bin 文件夹到 PATH 的最后,%MAVEN_HOME%\bin
完成,以验证它,执行 mvn –v 在命令提示符
```
### Linux 版本
[下载地址](<https://dlcdn.apache.org/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz>)
下载完成后后,解压到对应目录
解压安装
```
tar xf apache-maven-3.6.3-bin.tar.gz -C /opt/module/
cd /opt/module/
mv apache-maven-3.6.3-bin maven-3.6.3
#添加环境变量
vim /etc/profile
export MAVEN_HOME=/opt/module/maven-3.6.3
export PATH=$MAVEN_HOME/bin:$PATH
#保存退出,刷新环境变量
source /etc/profile
```
以上环境准备就绪后,接下来就可以开始Dinky的编译。
## Dinky编译
### Windows编译
#### 直接编译
如果在window直接编译,首先将源码包解压到相应目录下,其次切换到Dinky根目录,编译命令如下:
```
mvn clean install -Dmaven.test.skip=true
```
切换到Dinky根目录下得build文件夹下,即可出现编译后的安装包
#### IDEA编译
```
创建 远程克隆项目
maven ->> dlink->> 生命周期->> 跳过测试 ->> 双击install
打包完成后 安装包见项目根下 build 文件夹下
```
说明:如果要对dinky做二次开发,请参考[开发调试](/zh-CN/developer-guide/debug.md)
### Linux编译
```
yum -y install git
git clone https://github.com/DataLinkDC/dlink.git
cd dlink
mvn clean install -Dmaven.test.skip=true
```
切换到Dinky根目录下得build文件夹下,即可出现编译后的安装包。
以上就是Dinky源码编译的详细步骤,Dinky如何安装部署,请查看下一章节[Dinky部署](/zh-CN/quick_start/deploy.md)
## 单机部署
### 解压到指定目录
Dinky 不依赖任何外部的 Hadoop 或者 Flink 环境,可以单独部署在 flink、 hadoop 和 K8S 集群之外,完全解耦,支持同时连接多个不同的集群实例进行运维。
```
tar -zxvf dlink-release-0.6.1.tar.gz
mv dlink-release-0.6.1 dlink
cd dlink
```
### 初始化数据库
Dinky 采用 mysql 作为后端的存储库,mysql 支持 5.6+。这里假设你已经安装了 mysql 。首先需要创建 Dinky 的后端数据库,这里以配置文件中默认库创建。
```
#登录mysql
mysql -uroot -proot@123
#授权并创建数据库
mysql> grant all privileges on *.* to 'dlink'@'%' identified by 'dlink' with grant option;
mysql> grant all privileges on *.* to 'dlink'@'fdw1' identified by 'dlink' with grant option;
mysql> flush privileges;
#此处用 dlink 用户登录
mysql -h fdw1 -udlink -pdlink
mysql> create database dlink;
```
在 Dinky 根目录 sql 文件夹下有 2 个 sql 文件,分别是 dlink.sql 和 dlink_history.sql。如果第一次部署,可以直接将 dlink.sql 文件在 dlink 数据库下执行。(如果之前已经建立了 dlink 的数据库,那 dlink_history.sql 存放了各版本的升级 sql ,根据版本号及日期按需执行即可)
```
#首先登录 mysql
mysql -h fdw1 -udlink -pdlink
mysql> use dlink;
mysql> source /opt/dlink/sql/dlink.sql
```
### 配置文件
创建好数据库后,修改 Dinky 连接 mysql 的配置文件。
```
#切换目录
cd /opt/dlink/config/
vim application.yml
```
### 部署 nginx(可选)
在 linux,首先要配置好相应的 yum 库,因为在安装过程中没有配置,这里可以大概讲述下步骤,可以选择连接网络或者本地 yum 源都可以,这里选择连接网络方式配置。
```
#下载yum源
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
#清除缓存
yum makecache
#接下来安装nginx
yum -y install epel-release
yum -y install nginx
sudo systemctl enable nginx
sudo service nginx start
sudo service nginx reload
nginx -v
#最后查看进程看是否正常启动
ps -ef|grep nginx
```
说明: Dinky-0.5.0 以上版本部署 nginx 为可选
### nginx中配置 Dinky(可选)
如果是 yum 源安装的 nginx,配置文件在 etc 下,如果是源码包安装,请自行找到配置文件
```
#切换到nginx配置目录
cd /etc/nginx/
```
vim /etc/nginx/nginx.conf 打开配置文件,修改 server 中的内容,其内容按照如下配置即可。
```
server {
listen 9999;
#listen [::]:80;
server_name bigdata3;
root /usr/share/nginx/html;
gzip on;
gzip_min_length 1k;
gzip_comp_level 9;
gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
gzip_vary on;
gzip_disable "MSIE [1-6]\.";
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
location / {
root html;
index index.html index.htm;
try_files $uri $uri/ /index.html;
}
error_page 404 /404.html;
location = /404.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
location ^~ /api {
proxy_pass http://192.168.0.0:8888;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
}
}
```
修改内容:
- listen 监听端口;
- 存放html路径;
- location / 这里可以指定为绝对路径
配置完成后,保存退出。并重启 nginx 并重新加载生效
```
$systemctl restart nginx.service
$systemctl reload nginx.service
#查看nginx是否配置成功
nginx -t
$nginx -s reload
```
### 加载依赖
Dinky 需要具备自身的 Flink 环境,该 Flink 环境的实现需要用户自己在 Dinky 根目录下创建 plugins 文件夹并上传相关的 Flink 依赖,如 flink-dist, flink-table 等,具体见下文。当然也可在启动文件中指定 FLINK_HOME,但不建议这样做。
Dinky 当前版本的 yarn 的 perjob 与 application 执行模式依赖 flink-shade-hadoop ,如果你的 Hadoop 版本为 2+ 或 3+,需要额外添加 flink-shade-hadoop-uber-3 包,请手动删除该包内部的 javax.servlet 等冲突内容。
当然如果你的 Hadoop 为 3+ 也可以自行编译对于版本的 dlink-client-hadoop.jar 以替代 uber 包,
```
#创建目录
cd /opt/dlink/
mkdir plugins
```
将 flink-shade-hadoop 上传到到 plugins 文件目录下,使用 flink-shade-hadoop-3 地址如下:
```
https://mvnrepository.com/artifact/org.apache.flink/flink-shaded-hadoop-3-uber?repo=cloudera-repos
```
如果是 CDH 及 HDP 使用开源 flink-shade 对 Dinky 没有任何影响,其他用到的依赖取决于 CDH 或者 HDP 与开源版本的兼容性,需要自行根据兼容性添加依赖即可正常使用 Dinky 的所有功能。
最终项目根目录如下,仅供参考:
```shell
config/ -- 配置文件
|- application.yml
extends/ -- 扩展
|- dlink-client-1.11.jar
|- dlink-client-1.12.jar
|- dlink-client-1.14.jar
html/ -- 前端编译产物
jar/ -- dlink application 模式提交 sql 用到的 jar
lib/ -- 内部组件
|- dlink-alert-dingtalk.jar
|- dlink-alert-wechat.jar
|- dlink-client-1.13.jar
|- dlink-connector-jdbc.jar
|- dlink-function.jar
|- dlink-metadata-clickhouse.jar
|- dlink-metadata-doris.jar
|- dlink-metadata-hive.jar
|- dlink-metadata-mysql.jar
|- dlink-metadata-oracle.jar
|- dlink-metadata-phoenix.jar
|- dlink-metadata-postgresql.jar
|- dlink-metadata-sqlserver.jar
plugins/
|- flink-connector-jdbc_2.11-1.13.6.jar
|- flink-csv-1.13.6.jar
|- flink-dist_2.11-1.13.6.jar
|- flink-json-1.13.6.jar
|- flink-shaded-hadoop-3-uber-3.1.1.7.2.1.0-327-9.0.jar
|- flink-shaded-zookeeper-3.4.14.jar
|- flink-table-blink_2.11-1.13.6.jar
|- flink-table_2.11-1.13.6.jar
|- mysql-connector-java-8.0.21.jar
sql/
|- dlink.sql -- Mysql初始化脚本
|- dlink_history.sql -- Mysql各版本及时间点升级脚本
auto.sh --启动停止脚本
dlink-admin.jar --主程序包
```
### 启动 Dinky
```
#启动
$sh auto.sh start
#停止
$sh auto.sh stop
#重启
$sh auto.sh restart
#查看状态
$sh auto.sh status
```
默认用户名/密码: admin/admin
## 高可用部署
敬请期待
## Dinky 下载
### 发行说明
Dinky 版本的[发行说明](/zh-CN/release_notes/dinky-0.6.1.md)
### 当前稳定版本 0.6.1
| 发布版 | 链接 | |
| ---------- |----------------------------------------------------------------------------------------------------------------------| ---- |
| 二进制程序 | [dlink-release-0.6.1.tar.gz](https://github.com/DataLinkDC/dlink/releases/download/0.6.1/dlink-release-0.6.1.tar.gz) | |
| source | [Source code (zip)](https://github.com/DataLinkDC/dlink/archive/refs/tags/0.6.1.zip) | |
### 历史版本
| 发布版 | 二进制程序 | Source | 发行说明 |
|-------|----------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------|---------------------------------------------|
| 0.6.0 | [dlink-release-0.6.0.tar.gz](https://github.com/DataLinkDC/dlink/releases/download/0.6.0/dlink-release-0.6.0.tar.gz) | [Source code (zip)](https://github.com/DataLinkDC/dlink/archive/refs/tags/0.6.0.zip) | [发行说明](/zh-CN/release_notes/dinky-0.6.0.md) |
| 0.5.1 | [dlink-release-0.5.1.tar.gz](https://github.com/DataLinkDC/dlink/releases/download/0.5.1/dlink-release-0.5.1.tar.gz) | [Source code (zip)](https://github.com/DataLinkDC/dlink/archive/refs/tags/0.5.1.zip) | [发行说明](/zh-CN/release_notes/dinky-0.5.1.md) |
| 0.5.0 | [dlink-release-0.5.0.tar.gz](https://github.com/DataLinkDC/dlink/releases/download/0.5.0/dlink-release-0.5.0.tar.gz) | [Source code (zip)](https://github.com/DataLinkDC/dlink/archive/refs/tags/0.5.0.zip) | [发行说明](/zh-CN/release_notes/dinky-0.5.0.md) |
| 0.4.0 | [dlink-release-0.4.0.tar.gz](https://github.com/DataLinkDC/dlink/releases/download/0.4.0/dlink-release-0.4.0.tar.gz) | [Source code (zip)](https://github.com/DataLinkDC/dlink/archive/refs/tags/0.4.0.zip) | [发行说明](/zh-CN/release_notes/dinky-0.4.0.md) |
## 如何贡献 ## 如何贡献
首先非常感谢大家选择和使用 Dinky & Apache Flink,真诚地欢迎大家加入 Dinky 社区与 Apache Flink 中文社区,融入开源世界,打造新一代实时计算框架与平台,共建共赢! 首先非常感谢大家选择和使用 Dinky & Apache Flink,真诚地欢迎大家加入 Dinky 社区与 Apache Flink 中文社区,融入开源世界,打造新一代实时计算框架与平台,共建共赢!
我们鼓励任何形式的参与社区,如: 我们鼓励任何形式的参与社区,如:
- 将遇到的问题通过 github 上 [issue](https://github.com/DataLinkDC/dlink/issues) 的形式反馈出来 - 将遇到的问题通过 github 上 [issue](https://github.com/DataLinkDC/dlink/issues) 的形式反馈出来
- 回答别人遇到的 [issue](https://github.com/DataLinkDC/dlink/issues) 问题 - 回答别人遇到的 [issue](https://github.com/DataLinkDC/dlink/issues) 问题
- 讨论新 Feature 的实现方案 - 讨论新 Feature 的实现方案
- 帮助完善文档及官网 - 帮助完善文档及官网
- 帮助项目增加测试用例 - 帮助项目增加测试用例
- 为代码添加注释 - 为代码添加注释
- 为代码添加国际化 - 为代码添加国际化
- 提交修复 Bug 或者 Feature 的 PR - 提交修复 Bug 或者 Feature 的 PR
- 发表应用案例实践、扩展组件分享或者与 Flink SQL 相关的技术文章 - 发表应用案例实践、扩展组件分享或者与 Flink SQL 相关的技术文章
- 帮助推广 Dinky,基于 Dinky 实践参与其他社区文章发表、技术大会或者 meetup 的分享等 - 帮助推广 Dinky,基于 Dinky 实践参与其他社区文章发表、技术大会或者 meetup 的分享等
- 提供或赞助云服务器资源搭建云 Dinky 学习环境 - 提供或赞助云服务器资源搭建云 Dinky 学习环境
欢迎加入贡献的队伍,加入开源从提交第一个 PR 开始 欢迎加入贡献的队伍,加入开源从提交第一个 PR 开始
- 比如添加代码注释或找到带有 ”easy to fix” 标记或一些非常简单的 issue(拼写错误等)等等,先通过第一个简单的 PR 熟悉提交流程 - 比如添加代码注释或找到带有 ”easy to fix” 标记或一些非常简单的 issue(拼写错误等)等等,先通过第一个简单的 PR 熟悉提交流程
注:贡献不仅仅限于 PR,对促进项目发展的都是贡献 注:贡献不仅仅限于 PR,对促进项目发展的都是贡献
相信参与 Dinky,一定会让您从开源中受益匪浅! 相信参与 Dinky,一定会让您从开源中受益匪浅!
## 参与文档贡献 ## 参与文档贡献
请查阅 [文档贡献](/zh-CN/developer-guide/document.md) 请查阅 [文档贡献](/zh-CN/developer-guide/document.md)
## 参与代码贡献 ## 参与代码贡献
IDEA 调试请查阅 [本地调试](/zh-CN/developer-guide/local_debug.md)[远程调试](/zh-CN/developer-guide/remote_debug.md) IDEA 调试请查阅 [本地调试](/zh-CN/developer-guide/local_debug.md)[远程调试](/zh-CN/developer-guide/remote_debug.md)
贡献请查阅 [Issue 需知](/zh-CN/developer-guide/issue.md)[Pull Request 需知](/zh-CN/developer-guide/pull_request.md)[Commit Message 需知](/zh-CN/developer-guide/commit_message.md) 贡献请查阅 [Issue 需知](/zh-CN/developer-guide/issue.md)[Pull Request 需知](/zh-CN/developer-guide/pull_request.md)[Commit Message 需知](/zh-CN/developer-guide/commit_message.md)
## 如何领取 Issue,提交 Pull Request ## 如何领取 Issue,提交 Pull Request
如果你想实现某个 Feature 或者修复某个 Bug。请参考以下内容: 如果你想实现某个 Feature 或者修复某个 Bug。请参考以下内容:
- 所有的 Bug 与新 Feature 建议使用 Issues Page 进行管理。 - 所有的 Bug 与新 Feature 建议使用 Issues Page 进行管理。
- 如果想要开发实现某个 Feature 功能,请先回复该功能所关联的 Issue,表明你当前正在这个 Issue 上工作。 并在回复的时候为自己设置一个最后期限,并添加到回复内容中。 - 如果想要开发实现某个 Feature 功能,请先回复该功能所关联的 Issue,表明你当前正在这个 Issue 上工作。 并在回复的时候为自己设置一个最后期限,并添加到回复内容中。
- 你应该新建一个分支来开始你的工作,分支的名字参考 [Pull Request 需知](/zh-CN/developer-guide/pull_request.md)。比如,你想完成 feature 功能并提交了 Issue demo,那么你的 branch 名字应为 feature-demo。 功能名称可与导师讨论后确定。 - 你应该新建一个分支来开始你的工作,分支的名字参考 [Pull Request 需知](/zh-CN/developer-guide/pull_request.md)。比如,你想完成 feature 功能并提交了 Issue demo,那么你的 branch 名字应为 feature-demo。 功能名称可与导师讨论后确定。
- 完成后,发送一个 Pull Request 到 Dinky 的 dev 分支,提交过程具体请参考下面《[提交代码须知](/zh-CN/developer-guide/commit_code.md)》。 - 完成后,发送一个 Pull Request 到 Dinky 的 dev 分支,提交过程具体请参考下面《[提交代码须知](/zh-CN/developer-guide/commit_code.md)》。
如果是想提交 Pull Request 完成某一个 Feature 或者修复某个 Bug,这里都建议大家从小处做起,完成一个小功能就提交一次,每次别改动太多文件,改动文件太多也会给 Reviewer 造成很大的心理压力,建议通过多次 Pull Request 的方式完成。 如果是想提交 Pull Request 完成某一个 Feature 或者修复某个 Bug,这里都建议大家从小处做起,完成一个小功能就提交一次,每次别改动太多文件,改动文件太多也会给 Reviewer 造成很大的心理压力,建议通过多次 Pull Request 的方式完成。
注意:本文档参考了《 [DolphinScheduler Contribute](https://dolphinscheduler.apache.org/zh-cn/community/development/contribute.html) 》,非常感谢 DolphinScheduler 社区的支持。 注意:本文档参考了《 [DolphinScheduler Contribute](https://dolphinscheduler.apache.org/zh-cn/community/development/contribute.html) 》,非常感谢 DolphinScheduler 社区的支持。
# 开发者远程调试手册 # 开发者远程调试手册
远程调试适用与服务器已部署如下三种集群的场景 远程调试适用与服务器已部署如下三种集群的场景
- Flink StandAlone - Flink StandAlone
- Flink on yarn - Flink on yarn
- Flink on K8S - Flink on K8S
需要说明的是远程调试不需要在服务器部署相应的Dinky安装包,在对应的IDE启动Dlink类,即可完成对作业的远程执行和Debug。到目前为止,远程调试已经打通yarn session模式,也希望有感兴趣的小伙伴贡献其他几种模式的远程调试模式。 需要说明的是远程调试不需要在服务器部署相应的Dinky安装包,在对应的IDE启动Dlink类,即可完成对作业的远程执行和Debug。到目前为止,远程调试已经打通yarn session模式,也希望有感兴趣的小伙伴贡献其他几种模式的远程调试模式。
**前提条件:** 在进行远程调试过程中,必须要进行一次编译,这样做的原因是为了生成Dinky各个模块或者各个包的jar包文件,为远程提交到集群做准备。此方式类似与在服务器部署Dinky后,Dinky启动需要各个Dinky的包或者模块对应的jar包文件,方可正常启动。 **前提条件:** 在进行远程调试过程中,必须要进行一次编译,这样做的原因是为了生成Dinky各个模块或者各个包的jar包文件,为远程提交到集群做准备。此方式类似与在服务器部署Dinky后,Dinky启动需要各个Dinky的包或者模块对应的jar包文件,方可正常启动。
对于开发者来说,如何在IDEA中对作业进行远程调试及提交。下面以yarn session模式为例。 对于开发者来说,如何在IDEA中对作业进行远程调试及提交。下面以yarn session模式为例。
**说明:** 环境准备及源码导入IDEA,请参考本地调试 **说明:** 环境准备及源码导入IDEA,请参考本地调试
## 编译 ## 编译
### 命令行编译 ### 命令行编译
``` ```
mvn clean package -Dmaven.test.skip=true mvn clean package -Dmaven.test.skip=true
``` ```
### 图形化编译 ### 图形化编译
![install](http://www.aiwenmo.com/dinky/dev/docs/install.png) ![install](http://www.aiwenmo.com/dinky/dev/docs/install.png)
图形化编译,需要跳过test,并进行clean ==> install。 图形化编译,需要跳过test,并进行clean ==> install。
**注意:**如果不执行install 生成的 jar安装不到本地 别的依赖就识别不到本地仓库这些包 所以可能导依赖的时候会报错 CustomTableEnvironmentImpl 这个类未定义 。 **注意:**如果不执行install 生成的 jar安装不到本地 别的依赖就识别不到本地仓库这些包 所以可能导依赖的时候会报错 CustomTableEnvironmentImpl 这个类未定义 。
**说明:** **说明:**
​ 1.如果不想单独编译前端,在dlink-web模块的pom下有<span style="color:fuchsia">frontend-maven-plugins</span>插件,可直接前后端编译; ​ 1.如果不想单独编译前端,在dlink-web模块的pom下有<span style="color:fuchsia">frontend-maven-plugins</span>插件,可直接前后端编译;
​ 2.如果要分开编译,在后端编译完成后,需要在dlink-web下执行<span style="color:fuchsia"> npm i --force </span> ; ​ 2.如果要分开编译,在后端编译完成后,需要在dlink-web下执行<span style="color:fuchsia"> npm i --force </span> ;
## 远程调试环境搭建 ## 远程调试环境搭建
### 修改pom文件 ### 修改pom文件
需要修改 dlink根目录下的pom文件,将 provied 改为 complie,修改如下: 需要修改 dlink根目录下的pom文件,将 provied 改为 complie,修改如下:
``` ```
<properties> <properties>
<java.version>1.8</java.version> <java.version>1.8</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target> <maven.compiler.target>1.8</maven.compiler.target>
<!-- `provided` for product environment ,`compile` for dev environment --> <!-- `provided` for product environment ,`compile` for dev environment -->
<scope.runtime>compile</scope.runtime> <scope.runtime>compile</scope.runtime>
</properties> </properties>
``` ```
### 修改配置文件 ### 修改配置文件
修改dlink根目录下/dlink-admin/src/main/resources/application.ym文件 修改dlink根目录下/dlink-admin/src/main/resources/application.ym文件
配置数据库连接信息: 配置数据库连接信息:
``` ```
spring: spring:
datasource: 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 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: root username: root
password: 123456 password: 123456
driver-class-name: com.mysql.cj.jdbc.Driver driver-class-name: com.mysql.cj.jdbc.Driver
application: application:
name: dlink name: dlink
# flyway: # flyway:
# enabled: false # enabled: false
# clean-disabled: true # clean-disabled: true
## baseline-on-migrate: true ## baseline-on-migrate: true
# table: dlink_schema_history # table: dlink_schema_history
server: server:
port: 8888 port: 8888
mybatis-plus: mybatis-plus:
mapper-locations: classpath:/mapper/*Mapper.xml mapper-locations: classpath:/mapper/*Mapper.xml
#实体扫描,多个package用逗号或者分号分隔 #实体扫描,多个package用逗号或者分号分隔
typeAliasesPackage: com.dlink.model typeAliasesPackage: com.dlink.model
global-config: global-config:
db-config: db-config:
id-type: auto id-type: auto
configuration: configuration:
##### mybatis-plus打印完整sql(只适用于开发环境) ##### mybatis-plus打印完整sql(只适用于开发环境)
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
# log-impl: org.apache.ibatis.logging.nologging.NoLoggingImpl # log-impl: org.apache.ibatis.logging.nologging.NoLoggingImpl
# Sa-Token 配置 # Sa-Token 配置
sa-token: sa-token:
# token名称 (同时也是cookie名称) # token名称 (同时也是cookie名称)
token-name: satoken token-name: satoken
# token有效期,单位s 默认10小时, -1代表永不过期 # token有效期,单位s 默认10小时, -1代表永不过期
timeout: 36000 timeout: 36000
# token临时有效期 (指定时间内无操作就视为token过期) 单位: 秒 # token临时有效期 (指定时间内无操作就视为token过期) 单位: 秒
activity-timeout: -1 activity-timeout: -1
# 是否允许同一账号并发登录 (为true时允许一起登录, 为false时新登录挤掉旧登录) # 是否允许同一账号并发登录 (为true时允许一起登录, 为false时新登录挤掉旧登录)
is-concurrent: false is-concurrent: false
# 在多人登录同一账号时,是否共用一个token (为true时所有登录共用一个token, 为false时每次登录新建一个token) # 在多人登录同一账号时,是否共用一个token (为true时所有登录共用一个token, 为false时每次登录新建一个token)
is-share: true is-share: true
# token风格 # token风格
token-style: uuid token-style: uuid
# 是否输出操作日志 # 是否输出操作日志
is-log: false is-log: false
``` ```
### 初始化数据库 ### 初始化数据库
在MySQL数据库创建 dlink 用户并在 dlink 数据库中执行 dlink-doc/sql/dlink.sql 文件。此外 dlink-doc/sql/dlink_history.sql 标识了各版本的升级 sql。 在MySQL数据库创建 dlink 用户并在 dlink 数据库中执行 dlink-doc/sql/dlink.sql 文件。此外 dlink-doc/sql/dlink_history.sql 标识了各版本的升级 sql。
以上文件修改完成后,就可以启动Dinky。 以上文件修改完成后,就可以启动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; - **Flink配置文件:** flink-conf.yaml;
**注意:** hive-site.xml需要使用到hivecatalog时添加; **注意:** hive-site.xml需要使用到hivecatalog时添加;
### 添加plugins 插件依赖 ### 添加plugins 插件依赖
根据job的场景自行选择插件依赖jar, 注意需要将该目录添加为项目库,如下所示: 根据job的场景自行选择插件依赖jar, 注意需要将该目录添加为项目库,如下所示:
![lib](http://www.aiwenmo.com/dinky/dev/docs/lib.png) ![lib](http://www.aiwenmo.com/dinky/dev/docs/lib.png)
### 启动yarn session集群 ### 启动yarn session集群
``` ```
yarn-session.sh -n 2 -jm 1024 -tm 4096 -s 6 -d yarn-session.sh -n 2 -jm 1024 -tm 4096 -s 6 -d
``` ```
### 启动Dinky服务 ### 启动Dinky服务
启动 dlink-admin 下的 Dlink 启动类,可见 8888 端口。 启动 dlink-admin 下的 Dlink 启动类,可见 8888 端口。
等待几分钟,访问 127.0.0.1:8888 可见登录页。 等待几分钟,访问 127.0.0.1:8888 可见登录页。
输入 admin/admin 登录。 输入 admin/admin 登录。
**说明:** 在dinky 0.6版本后,不需要额外启动前端,启动后端后便可访问 127.0.0.1:8888 **说明:** 在dinky 0.6版本后,不需要额外启动前端,启动后端后便可访问 127.0.0.1:8888
## 远程调试作业示例 ## 远程调试作业示例
以上远程调试环境搭建完成后,就如同在服务器部署上类似,可以对作业远程提交到Flink集群。下面以Flink CDC ==》Hudi做为远程调试的作业 以上远程调试环境搭建完成后,就如同在服务器部署上类似,可以对作业远程提交到Flink集群。下面以Flink CDC ==》Hudi做为远程调试的作业
### 脚本准备 ### 脚本准备
``` ```
------------- '付款单表'  order_mysql_goods_order_pay ----------------- ------------- '付款单表'  order_mysql_goods_order_pay -----------------
CREATE TABLE source_order_mysql_goods_order_pay ( CREATE TABLE source_order_mysql_goods_order_pay (
     `id` bigint COMMENT '自增主键id'      `id` bigint COMMENT '自增主键id'
    , `uid` string COMMENT 'uid'     , `uid` string COMMENT 'uid'
    , `goods_order_uid` string COMMENT '订单uid'     , `goods_order_uid` string COMMENT '订单uid'
    , `trans_goods_order_uid` string COMMENT '转单时老订单uid'     , `trans_goods_order_uid` string COMMENT '转单时老订单uid'
    , `trans_goods_order_change_uid` string COMMENT '转单时老订单变更单uid'     , `trans_goods_order_change_uid` string COMMENT '转单时老订单变更单uid'
    , `customer_uid` string COMMENT '客户uid'     , `customer_uid` string COMMENT '客户uid'
    , `customer_name` string COMMENT '客户姓名'     , `customer_name` string COMMENT '客户姓名'
    , `pay_order_no` string COMMENT '付款支付订单uid'     , `pay_order_no` string COMMENT '付款支付订单uid'
    , `pay_status` bigint COMMENT '支付状态 1:待付款 2:付款审核 3:付款成功 4:付款取消'     , `pay_status` bigint COMMENT '支付状态 1:待付款 2:付款审核 3:付款成功 4:付款取消'
    , `pay_type` bigint COMMENT '付款单类型 1:支付 2:资金池抵扣 3:转单抵扣'     , `pay_type` bigint COMMENT '付款单类型 1:支付 2:资金池抵扣 3:转单抵扣'
    , `pay_type_detail` bigint COMMENT '付款方式'     , `pay_type_detail` bigint COMMENT '付款方式'
    , `pay_amount` bigint COMMENT '应付金额'     , `pay_amount` bigint COMMENT '应付金额'
    , `real_amount` bigint COMMENT '实际付款金额'     , `real_amount` bigint COMMENT '实际付款金额'
    , `pay_time` timestamp(3) COMMENT '支付时间'     , `pay_time` timestamp(3) COMMENT '支付时间'
    , `pay_sucs_time` timestamp(3) COMMENT '支付成功时间'     , `pay_sucs_time` timestamp(3) COMMENT '支付成功时间'
    , `pay_audit_time` timestamp(3) COMMENT '支付审核时间'     , `pay_audit_time` timestamp(3) COMMENT '支付审核时间'
    , `pay_fail_time` timestamp(3) COMMENT '支付失败时间'     , `pay_fail_time` timestamp(3) COMMENT '支付失败时间'
    , `apply_uid` string COMMENT '申请人'     , `apply_uid` string COMMENT '申请人'
    , `apply_name` string COMMENT '申请人'     , `apply_name` string COMMENT '申请人'
    , `examine_uid` string COMMENT '审核人'     , `examine_uid` string COMMENT '审核人'
    , `examine_name` string COMMENT '审核人'     , `examine_name` string COMMENT '审核人'
    , `examine_time` timestamp(3) COMMENT '审核时间'     , `examine_time` timestamp(3) COMMENT '审核时间'
    , `voucher_pics` string COMMENT '付款凭证图片地址'     , `voucher_pics` string COMMENT '付款凭证图片地址'
    , `remark` string COMMENT '备注'     , `remark` string COMMENT '备注'
    , `status` bigint COMMENT '是否删除(1.否,2.是)'     , `status` bigint COMMENT '是否删除(1.否,2.是)'
    , `create_time` timestamp(3) COMMENT '创建时间'     , `create_time` timestamp(3) COMMENT '创建时间'
    , `update_time` timestamp(3) COMMENT '更新时间'     , `update_time` timestamp(3) COMMENT '更新时间'
    , `belongs_bank` string COMMENT '所属银行'     , `belongs_bank` string COMMENT '所属银行'
    , `bank_no` string COMMENT '银行卡号'     , `bank_no` string COMMENT '银行卡号'
    , `company_pay_time` timestamp(3) COMMENT '公对公转账时间'     , `company_pay_time` timestamp(3) COMMENT '公对公转账时间'
         
    ,PRIMARY KEY(id) NOT ENFORCED     ,PRIMARY KEY(id) NOT ENFORCED
) COMMENT '付款单表' ) COMMENT '付款单表'
WITH ( WITH (
     'connector' = 'mysql-cdc'      'connector' = 'mysql-cdc'
    ,'hostname' = 'rm-bsssssssssssssssncs.com'     ,'hostname' = 'rm-bsssssssssssssssncs.com'
    ,'port' = '3306'     ,'port' = '3306'
    ,'username' = 'read-bigdata'     ,'username' = 'read-bigdata'
    ,'password' = 'aaVxxxxx0E40'     ,'password' = 'aaVxxxxx0E40'
    ,'server-time-zone' = 'UTC'     ,'server-time-zone' = 'UTC'
    ,'scan.incremental.snapshot.enabled' = 'true'     ,'scan.incremental.snapshot.enabled' = 'true'
    ,'debezium.snapshot.mode'='latest-offset'  ---或者key是scan.startup.mode,initial表示要历史数据,latest-offset表示不要历史数据     ,'debezium.snapshot.mode'='latest-offset'  ---或者key是scan.startup.mode,initial表示要历史数据,latest-offset表示不要历史数据
    ,'debezium.datetime.format.timestamp.zone'='UTC+8'     ,'debezium.datetime.format.timestamp.zone'='UTC+8'
    ,'database-name' = 'order'     ,'database-name' = 'order'
    ,'table-name' = 'goods_order_pay'     ,'table-name' = 'goods_order_pay'
); );
CREATE TABLE sink_order_mysql_goods_order_pay( CREATE TABLE sink_order_mysql_goods_order_pay(
     `id` bigint COMMENT '自增主键id'      `id` bigint COMMENT '自增主键id'
    , `uid` string COMMENT 'uid'     , `uid` string COMMENT 'uid'
    , `goods_order_uid` string COMMENT '订单uid'     , `goods_order_uid` string COMMENT '订单uid'
    , `trans_goods_order_uid` string COMMENT '转单时老订单uid'     , `trans_goods_order_uid` string COMMENT '转单时老订单uid'
    , `trans_goods_order_change_uid` string COMMENT '转单时老订单变更单uid'     , `trans_goods_order_change_uid` string COMMENT '转单时老订单变更单uid'
    , `customer_uid` string COMMENT '客户uid'     , `customer_uid` string COMMENT '客户uid'
    , `customer_name` string COMMENT '客户姓名'     , `customer_name` string COMMENT '客户姓名'
    , `pay_order_no` string COMMENT '付款支付订单uid'     , `pay_order_no` string COMMENT '付款支付订单uid'
    , `pay_status` bigint COMMENT '支付状态 1:待付款 2:付款审核 3:付款成功 4:付款取消'     , `pay_status` bigint COMMENT '支付状态 1:待付款 2:付款审核 3:付款成功 4:付款取消'
    , `pay_type` bigint COMMENT '付款单类型 1:支付 2:资金池抵扣 3:转单抵扣'     , `pay_type` bigint COMMENT '付款单类型 1:支付 2:资金池抵扣 3:转单抵扣'
    , `pay_type_detail` bigint COMMENT '付款方式'     , `pay_type_detail` bigint COMMENT '付款方式'
    , `pay_amount` bigint COMMENT '应付金额'     , `pay_amount` bigint COMMENT '应付金额'
    , `real_amount` bigint COMMENT '实际付款金额'     , `real_amount` bigint COMMENT '实际付款金额'
    , `pay_time` timestamp(3) COMMENT '支付时间'     , `pay_time` timestamp(3) COMMENT '支付时间'
    , `pay_sucs_time` timestamp(3) COMMENT '支付成功时间'     , `pay_sucs_time` timestamp(3) COMMENT '支付成功时间'
    , `pay_audit_time` timestamp(3) COMMENT '支付审核时间'     , `pay_audit_time` timestamp(3) COMMENT '支付审核时间'
    , `pay_fail_time` timestamp(3) COMMENT '支付失败时间'     , `pay_fail_time` timestamp(3) COMMENT '支付失败时间'
    , `apply_uid` string COMMENT '申请人'     , `apply_uid` string COMMENT '申请人'
    , `apply_name` string COMMENT '申请人'     , `apply_name` string COMMENT '申请人'
    , `examine_uid` string COMMENT '审核人'     , `examine_uid` string COMMENT '审核人'
    , `examine_name` string COMMENT '审核人'     , `examine_name` string COMMENT '审核人'
    , `examine_time` timestamp(3) COMMENT '审核时间'     , `examine_time` timestamp(3) COMMENT '审核时间'
    , `voucher_pics` string COMMENT '付款凭证图片地址'     , `voucher_pics` string COMMENT '付款凭证图片地址'
    , `remark` string COMMENT '备注'     , `remark` string COMMENT '备注'
    , `status` bigint COMMENT '是否删除(1.否,2.是)'     , `status` bigint COMMENT '是否删除(1.否,2.是)'
    , `create_time` timestamp(3) COMMENT '创建时间'     , `create_time` timestamp(3) COMMENT '创建时间'
    , `update_time` timestamp(3) COMMENT '更新时间'     , `update_time` timestamp(3) COMMENT '更新时间'
    , `belongs_bank` string COMMENT '所属银行'     , `belongs_bank` string COMMENT '所属银行'
    , `bank_no` string COMMENT '银行卡号'     , `bank_no` string COMMENT '银行卡号'
    , `company_pay_time` timestamp(3) COMMENT '公对公转账时间'     , `company_pay_time` timestamp(3) COMMENT '公对公转账时间'
         
    ,PRIMARY KEY (id) NOT ENFORCED     ,PRIMARY KEY (id) NOT ENFORCED
) COMMENT '付款单表' ) COMMENT '付款单表'
WITH ( WITH (
      'connector' = 'hudi'       'connector' = 'hudi'
    , 'path' = 'hdfs://cluster1/data/bizdata/cdc/mysql/order/goods_order_pay' ---路径会自动创建     , 'path' = 'hdfs://cluster1/data/bizdata/cdc/mysql/order/goods_order_pay' ---路径会自动创建
    , 'hoodie.datasource.write.recordkey.field' = 'id'  -- 主键     , 'hoodie.datasource.write.recordkey.field' = 'id'  -- 主键
    , 'write.precombine.field' = 'update_time'             -- 相同的键值时,取此字段最大值,默认ts字段     , 'write.precombine.field' = 'update_time'             -- 相同的键值时,取此字段最大值,默认ts字段
    , 'read.streaming.skip_compaction' = 'true'            -- 避免重复消费问题     , 'read.streaming.skip_compaction' = 'true'            -- 避免重复消费问题
    , 'write.bucket_assign.tasks' = '2'              --并发写的 bucekt 数     , 'write.bucket_assign.tasks' = '2'              --并发写的 bucekt 数
    , 'write.tasks' = '2'     , 'write.tasks' = '2'
    , 'compaction.tasks' = '1'     , 'compaction.tasks' = '1'
    , 'write.operation' = 'upsert'                          --UPSERT(插入更新)\INSERT(插入)\BULK_INSERT(批插入)(upsert性能会低些,不适合埋点上报)     , 'write.operation' = 'upsert'                          --UPSERT(插入更新)\INSERT(插入)\BULK_INSERT(批插入)(upsert性能会低些,不适合埋点上报)
    , 'write.rate.limit' = '20000'                          -- 限制每秒多少条     , 'write.rate.limit' = '20000'                          -- 限制每秒多少条
    , 'table.type' = 'COPY_ON_WRITE'                       -- 默认COPY_ON_WRITE ,经测试MERGE_ON_READ模式的压缩有问题,不会在指定次数和时间压缩,容易在执行离线任务时漏数据(在埋点上报环节可以用,因为上报的数据是连续的)。     , 'table.type' = 'COPY_ON_WRITE'                       -- 默认COPY_ON_WRITE ,经测试MERGE_ON_READ模式的压缩有问题,不会在指定次数和时间压缩,容易在执行离线任务时漏数据(在埋点上报环节可以用,因为上报的数据是连续的)。
    , 'compaction.async.enabled' = 'true'                  -- 在线压缩     , 'compaction.async.enabled' = 'true'                  -- 在线压缩
    , 'compaction.trigger.strategy' = 'num_or_time'        -- 按次数压缩     , 'compaction.trigger.strategy' = 'num_or_time'        -- 按次数压缩
    , 'compaction.delta_commits' = '20'               -- 默认为5     , 'compaction.delta_commits' = '20'               -- 默认为5
    , 'compaction.delta_seconds' = '60'                   -- 默认为1小时     , 'compaction.delta_seconds' = '60'                   -- 默认为1小时
    , 'hive_sync.enable' = 'true'                          -- 启用hive同步     , 'hive_sync.enable' = 'true'                          -- 启用hive同步
    , 'hive_sync.mode' = 'hms'                             -- 启用hive hms同步,默认jdbc     , 'hive_sync.mode' = 'hms'                             -- 启用hive hms同步,默认jdbc
    , 'hive_sync.metastore.uris' = 'thrift://cdh2.vision.com:9083'    -- required, metastore的端口     , 'hive_sync.metastore.uris' = 'thrift://cdh2.vision.com:9083'    -- required, metastore的端口
    , 'hive_sync.jdbc_url' = 'jdbc:hive2://cdh1.vision.com:10000'     -- required, hiveServer地址     , 'hive_sync.jdbc_url' = 'jdbc:hive2://cdh1.vision.com:10000'     -- required, hiveServer地址
    , 'hive_sync.table' = 'order_mysql_goods_order_pay'                            -- required, hive 新建的表名 会自动同步hudi的表结构和数据到hive     , 'hive_sync.table' = 'order_mysql_goods_order_pay'                            -- required, hive 新建的表名 会自动同步hudi的表结构和数据到hive
    , 'hive_sync.db' = 'cdc_ods'                              -- required, hive 新建的数据库名     , 'hive_sync.db' = 'cdc_ods'                              -- required, hive 新建的数据库名
    , 'hive_sync.username' = 'hive'                        -- required, HMS 用户名     , 'hive_sync.username' = 'hive'                        -- required, HMS 用户名
    , 'hive_sync.password' = '123456'                            -- required, HMS 密码     , 'hive_sync.password' = '123456'                            -- required, HMS 密码
    , 'hive_sync.skip_ro_suffix' = 'true'                  -- 去除ro后缀     , 'hive_sync.skip_ro_suffix' = 'true'                  -- 去除ro后缀
); );
---------- source_order_mysql_goods_order_pay=== TO ==>> sink_order_mysql_goods_order_pay ------------ ---------- source_order_mysql_goods_order_pay=== TO ==>> sink_order_mysql_goods_order_pay ------------
insert into sink_order_mysql_goods_order_pay select * from source_order_mysql_goods_order_pay; insert into sink_order_mysql_goods_order_pay select * from source_order_mysql_goods_order_pay;
``` ```
### 作业提交检查 ### 作业提交检查
**SQL逻辑语法校验** **SQL逻辑语法校验**
![](http://www.aiwenmo.com/dinky/dev/docs/SQL%E8%AF%AD%E6%B3%95%E6%A3%80%E6%9F%A5.png) ![](http://www.aiwenmo.com/dinky/dev/docs/SQL%E8%AF%AD%E6%B3%95%E6%A3%80%E6%9F%A5.png)
**获取JobPlan** **获取JobPlan**
![](http://www.aiwenmo.com/dinky/dev/docs/JobPlan.png) ![](http://www.aiwenmo.com/dinky/dev/docs/JobPlan.png)
**Flink Web UI查看作业** **Flink Web UI查看作业**
![flinkwebui](http://www.aiwenmo.com/dinky/dev/docs/flinkwebui.png) ![flinkwebui](http://www.aiwenmo.com/dinky/dev/docs/flinkwebui.png)
**查看是否同步到hive** **查看是否同步到hive**
![hive](http://www.aiwenmo.com/dinky/dev/docs/hive.png) ![hive](http://www.aiwenmo.com/dinky/dev/docs/hive.png)
**运维中心查看JOB 提交状态** **运维中心查看JOB 提交状态**
![运维中心](http://www.aiwenmo.com/dinky/dev/docs/%E8%BF%90%E7%BB%B4%E4%B8%AD%E5%BF%83.png) ![运维中心](http://www.aiwenmo.com/dinky/dev/docs/%E8%BF%90%E7%BB%B4%E4%B8%AD%E5%BF%83.png)
**注意事项:** 如果拉去了新代码,远程调试环境一定要检查一遍,以防各种报错。 **注意事项:** 如果拉去了新代码,远程调试环境一定要检查一遍,以防各种报错。
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