Unverified Commit 3c3dd668 authored by xiaoguaiguai's avatar xiaoguaiguai Committed by GitHub

Merge branch 'DataLinkDC:dev' into dev

parents 1857a4b0 ab23fc2c
<!-- docs/zh-CN/_sidebar.md -->
- [Dinky简介](/zh-CN/introduce.md)
- [Dinky 简介](/zh-CN/introduce.md)
- 概念和架构
- [系统架构](/zh-CN/architecture.md)
- [基本概念](/zh-CN/concept.md)
......@@ -9,7 +9,7 @@
- 编译与部署
- [编译](/zh-CN/quick_start/build.md)
- [部署](/zh-CN/quick_start/deploy.md)
- [Dinky概览](/zh-CN/dinky_overview.md)
- [Dinky 概览](/zh-CN/dinky_overview.md)
- 快速入门指南
- FlinkSQL作业快速入门
- 其他数据源作业快速入门
......@@ -18,11 +18,11 @@
- 项目空间管理
- 权限管理
- 数据开发
- 开发控制台介绍
- 基本介绍
- [功能介绍](/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)
- FlinkSQL开发指南
- [概述](/zh-CN/administrator-guide/Studio/job_dev/flinksql_guide/summary.md)
......
数据开发是基于React JavaScript库开发的SQL交互式界面工具。目前在Dinky中支持的方言有:
- FlinkSQL
- FlinkSQLEnv
- MySQL
- PostgreSQL
目前支持的方言有:
- FlinkSql
- FlinkJar
- FlinkSqlEnv
- Mysql
- PostGreSql
- Oracle
- SQLServer
- SqlServer
- Phoenix
- Hive
- Doris(Starrocks)
- Clickhouse
- java
- Doris(StarRocks)
- ClickHouse
- Java
**FlinkSQL支持**
## FlinkSql
FlinkSQL作为Flink上的SQL计算引擎,结合Dinky中的数据开发。使得FlinkSQL开发更加简化,不需要写一行Java或者Scala代码。
只要FlinkSQL本身支持的语法,SQL-Client支持的语法,Dinky数据开发上也完全支持。
支持 Apache Flink sql-client 的绝大多数 FlinkSQL 语法,其中部分语法被优化,详见。
**Java支持**
## FlinkJar
当写一些UDF及UDTF函数时,可以在Studio上编写代码,并可以在local模式下测试,并最终发布。当前Java只适合一些UDF及UDTF函数
支持用户自定义的 Flink Jar 任务的配置,详见
**数据库支持**
## FlinkSqlEnv
支持将 FlinkSQL 封装为执行环境,供 FlinkSQL 任务使用,详见。在执行 FlinkSQL 时,会先执行 FlinkSqlEnv 内的语句。
## DB sql
支持对应数据源的原生 sql 方言,详见。
## Java
支持书写 Java 的 UDF 等,并自动加载至 Local 模式。(当前存在 Bug,请不要使用)
目前支持的数据库,都可以在数据开发上做ETL及通过OpenAPI做周期性调度。
数据开发控制台提供了开源Flink全球统一的开发控制平台。您可以在数据开发控制台一站式完成作业的开发、提交和运维
Data Studio 提供了 Apache Flink 及其他 DBSQL 的开发、提交和运维能力
## 作业管理
您可以在数据开发控制台创建目录、创建作业等,详情请参考[作业管理](/zh-CN/administrator-guide/Studio/job_manage.md)
创建目录、创建作业等,详情请参考[作业管理](/zh-CN/administrator-guide/Studio/job_manage.md)
## 作业开发
您可以在数据开发控制台开发作业、检查语法、发布作业等,详情请参考[作业开发]()
开发作业、检查语法、发布作业等,详情请参考[作业开发]()
## 运维管理
您可以在数据开发控制台配置作业信息、保存savepoint等,详情请参考[运维管理]()
配置作业信息、保存savepoint等,详情请参考[运维管理]()
## 作业监控
您可以在数据开发控制台查看作业信息、作业进程、作业历史等,详情请参考[作业监控]()
查看作业信息、作业进程、作业历史等,详情请参考[作业监控]()
## Flink 环境配置
### Session 集群
### Local
Session 集群适用于非生产环境的开发测试环境,您可以使用 Session 集群模式部署或调试作业,提高作业 Job Manager 的资源使用率
只需要在 Dinky 根目录下的 plugins 文件夹下添加 Flink lib 与 connector 等 Jar 即可
如何创建 Session 集群,请参考注册中心[集群管理](/zh-CN/administrator-guide/registerCenter/cluster_manage.md)的集群实例管理
### Standalone 集群
### Per-job 集群
根据 Flink 官网手动部署一个 Flink Standalone 集群,并注册到 **集群实例** 中。
Per-job 集群适用于生产环境,您可以使用 Per-job 集群模式部署或提交作业
如何注册 Standalone 集群,请参考[集群管理](/zh-CN/administrator-guide/registerCenter/cluster_manage.md)的集群实例管理。
如何创建 Session 集群,请参考注册中心[集群管理](/zh-CN/administrator-guide/registerCenter/cluster_manage.md)的集群配置管理
### Yarn Session 集群
### Application 集群
根据 Flink 官网手动部署一个 Flink Yarn Session 集群,并注册到 **集群实例** 中。
Per-job 集群适用于生产环境,您可以使用 Per-job 集群模式部署或提交作业
如何注册 Yarn Session 集群,请参考[集群管理](/zh-CN/administrator-guide/registerCenter/cluster_manage.md)的集群实例管理。
如何创建 Session 集群,请参考注册中心[集群管理](/zh-CN/administrator-guide/registerCenter/cluster_manage.md)的集群配置管理
### Yarn Per-Job 集群
**注册中心 > 集群管理 > 集群配置管理** 中注册 Hadoop 与 Flink 相关配置。
### 说明
如何注册 Yarn Per-Job 的集群配置,请参考[集群管理](/zh-CN/administrator-guide/registerCenter/cluster_manage.md)的集群配置管理。
如果是 Session 集群有如下建议:
### Yarn Application 集群
- 对于单并发的小作业,建议整个集群的作业总数不超过100个;
- 对于复杂作业,建议单作业最大并发数不超过512,64个并发的中等规模作业单集群不多于32个。否则可能会出现心跳超时等问题影响集群稳定性。此时,您需要增大心跳间隔和心跳超时时间;
- 如果您需要同时运行更多的任务,则需要增加 Session 集群的资源配置;
1.**注册中心 > 集群管理 > 集群配置管理** 中注册 Hadoop 与 Flink 相关配置;
2.将 dlink-app.jar 上传到 **系统设置 > Flink 设置** 中的 **提交 FlinkSQL 的 Jar 文件路径** 的 hdfs 配置地址。
如何注册 Yarn Application 的集群配置,请参考[集群管理](/zh-CN/administrator-guide/registerCenter/cluster_manage.md)的集群配置管理。
### Kubernetes Session 集群
根据 Flink 官网手动部署一个 Flink Kubernetes Session 集群,并暴露 **NodePort**, 注册到 **集群实例** 中。
如何注册 Kubernetes Session 集群,请参考[集群管理](/zh-CN/administrator-guide/registerCenter/cluster_manage.md)的集群实例管理。
### Kubernetes Application 集群
1.**注册中心 > 集群管理 > 集群配置管理** 中注册 Kubernetes 与 Flink 相关配置;
2.将 dlink-app.jar 打包成完整的 Flink 镜像,在 **系统设置 > Flink 设置** 中的 **提交 FlinkSQL 的 Jar 文件路径** 的配置 dlink-app.jar 的 local 地址。
如何注册 Kubernetes Application 的集群配置,请参考[集群管理](/zh-CN/administrator-guide/registerCenter/cluster_manage.md)的集群配置管理。
## 其他数据源环境配置
Dinky 虽然是在 Flink 基础之上开发而言,为了让用户一站式开发,扩展了额外的数据源。极大的方便了用户进行 FlinkSQL 的编写
手动部署外部数据源,然后注册到 **数据源管理**
如何创建外部数据源,请参考注册中心的[数据源管理](/zh-CN/administrator-guide/registerCenter/datasource_manage.md)。当前 Dinky 支持的数据源请参考功能扩展中的[扩展数据源](/zh-CN/extend/datasource.md)
\ No newline at end of file
如何注册外部数据源,请参考[数据源管理](/zh-CN/administrator-guide/registerCenter/datasource_manage.md)。当前 Dinky 支持的数据源请参考功能扩展中的[扩展数据源](/zh-CN/extend/datasource.md)
\ No newline at end of file
下面为您介绍Dinky托管FlinkSQL作业开发的一些限制和操作步骤。
## 说明
## **限制说明**
- SQL 编辑器编辑的 FlinkSQL 作业,当前仅支持 Flink1.11、Flink1.12、Flink1.13、Flink1.14 版本的语法。
- FlinkSQL 支持的上下游存储,请参考 [上下游存储]()
- SQL编辑器编辑的FlinkSQL作业,当前仅支持Flink1.11、Flink1.12、Flink1.13、Flink1.14版本。
- FlinkSQL支持的上下游存储,请参考开发参考中的[上下游存储]
## FlinkSQL 操作步骤
## FlinkSQL操作步骤
为了方便您编写和管理Flink SQL作业,提高作业开发效率,Dinky为您提供FlinkSQL的一些功能,包括元数据中心和SQL编辑器等。
1.进入 Dinky 的 Data Studio
1.首先登录Dinky数据开发控制台
2.在左侧菜单栏,右键 **目录**
2.在左侧菜单栏,单击**目录**
3.新建目录和作业,请参考作业运维中的**[作业管理](/zh-CN/administrator-guide/Studio/job_devops/job_manage.md)**
3.新建目录或作业,请参考作业运维中的 **[作业管理](/zh-CN/administrator-guide/Studio/job_devops/job_manage.md)**
4.在新建文件的对话框,填写作业信息
| 参数 | 说明 | 备注 |
| :------: | :----------------------------------------------------------- | :----------------------------------------------------------- |
| 文件名称 | 作业的名称:作业名称在当前项目中必须保持**唯一** | |
| 文件类型 | 流作业和批作业均支持以下文件类型:<br/> FlinkSQL:支持**SET、DML、DDL**语法<br/> FlinkSQLEnv:支持**SET、DDL**语法 | FlinkSQLEnv 场景适用于所有作业<br/>的SET、DDL语法统一管理的场景,<br/>当前FlinkSQLEnv 在SQL编辑器的语<br/>句限制在1000行以内 |
| 参数 | 说明 | 备注 |
|:----:|:---------------------------------------------------------------------------------------| :----------------------------------------------------------- |
| 作业名称 | 作业名称在当前项目中必须保持 **唯一** | |
| 作业类型 | 流作业和批作业均支持以下作业类型:<br/> FlinkSQL:支持**SET、DML、DDL**语法<br/> FlinkSQLEnv:支持**SET、DDL**语法 | FlinkSQLEnv 场景适用于所有作业<br/>的SET、DDL语法统一管理的场景,<br/>当前FlinkSQLEnv 在SQL编辑器的语<br/>句限制在1000行以内 |
5.在作业开发 SQL 编辑器,编写 DDL 和 DML 代码
......@@ -53,29 +50,24 @@ from datagen_source;
![](http://www.aiwenmo.com/dinky/docs/zh-CN/administrator-guide/Studio/job_dev/flinksql_guide/flinksql_job_dev/job_dev.png)
6.在作业开发页面右侧,单击**执行配置**,填写配置信息
| 参数 | 说明 | 备注 |
| :------: | :------------- | :----------------------------------------------------------- |
| 作业配置 | 执行模式 | 选择作业需要部署的集群,<br/>支持以下三种集群模式:<br/> **Per-job 集群**<br/> **Session 集群**<br/> **Application 集群**<br/> 这3种集群的区别请参考:[作业托管概述](/zh-CN/administrator-guide/Studio/job_dev/job_hosting.md) |
| 作业配置 | Flink 集群配置 | Flink 集群配置请参考:注册中心的<br/> [集群管理](/zh-CN/administrator-guide/registerCenter/cluster_manage.md) |
| 作业配置 | FlinkSQL 环境 | 选择创建的FlinkSQLEnv文件,如果<br/>没有则不选 |
| 作业配置 | 任务并行度 | SET优先于作业配置 |
| 作业配置 | Insert 语句集 | 默认禁用,开启后在SQL编辑器中<br/>编写多个 Insert 语句 |
| 作业配置 | 全局变量 | 默认禁用 |
| 作业配置 | 批模式 | 默认禁用,开启后 FlinkSQL为离线计算 |
| 作业配置 | SavePoint 策略 | 默认禁用,策略包括:<br/> **最近一次**<br/> **最早一次**<br/> **指定一次** |
| 作业配置 | 报警组 | 报警组配置请参考:<br/>注册中心的[告警管理](docs/zh-CN/administrator-guide/registerCenter/warning.md) |
| 作业配置 | 其他配置 | SET优先于作业配置,具体可选参数<br/> 请参考 [Flink 官网](https://nightlies.apache.org/flink/flink-docs-release-1.14/docs/deployment/config/) |
6.在作业开发页面右侧 **执行配置**,填写配置信息
| 类型 | 配置项 | 备注 |
|:----:|:-------------|:-------------------------------------------------------------------------------------------------------------------------|
| 作业配置 | 执行模式 | 区别请参考:[作业托管概述](/zh-CN/administrator-guide/Studio/job_dev/job_hosting.md) |
| 作业配置 | 集群实例 | Standalone 和 Session 执行模式需要选择集群实例,请参考:[集群实例管理](/zh-CN/administrator-guide/registerCenter/cluster_manage?id=集群实例管理) |
| 作业配置 | 集群配置 | Per-Job 和 Application 执行模式需要选择集群配置,请参考:[集群配置管理](/zh-CN/administrator-guide/registerCenter/cluster_manage?id=集群配置管理) |
| 作业配置 | FlinkSQL 环境 | 选择已创建的 FlinkSQLEnv,如果没有则不选 |
| 作业配置 | 任务并行度 | 指定作业级任务并行度,默认为 1 |
| 作业配置 | Insert 语句集 | 默认禁用,开启后将 SQL编辑器中编写的多个 Insert 语句合并为一个 JobGraph 进行提交 |
| 作业配置 | 全局变量 | 默认禁用,开启后可以使用数据源连接配置变量、自定义变量等 |
| 作业配置 | 批模式 | 默认禁用,开启后启用 Batch Mode |
| 作业配置 | SavePoint 策略 | 默认禁用,策略包括:<br/> **最近一次**<br/> **最早一次**<br/> **指定一次** |
| 作业配置 | 报警组 | 报警组配置请参考[告警管理](docs/zh-CN/administrator-guide/registerCenter/warning.md) |
| 作业配置 | 其他配置 | 其他的 Flink 作业配置,具体可选参数,请参考 [Flink 官网](https://nightlies.apache.org/flink/flink-docs-release-1.14/docs/deployment/config/) |
作业配置如下图:
![job_config](http://www.aiwenmo.com/dinky/docs/zh-CN/administrator-guide/Studio/job_dev/flinksql_guide/flinksql_job_dev/job_config.png)
7.单击**保存**
8.单击**验证**
9.单击**上线**
完成作业开发和语法检查后,即可发布作业并上线作业。
\ No newline at end of file
**注意:** 请及时手动保存作业信息,以免丢失
\ No newline at end of file
完成作业开发和上线后,您需要在数据开发页面启动作业至运行阶段。此外,作业在暂停或者停止后需要恢复时,需要启动作业。
## 限制说明
- 异步提交后,无法接收告警信息,而发布上线后可以接收告警信息,自动恢复作业等;
- 异步提交后,无法及时看到作业的详细情况,而发布上线可以看到作业的详细情况;
## 启动场景
- **上线后启动:** 您可以全新启动(无状态)。
- **暂停后启动:** 暂停作业时,如果你选择了Savepoint策略。系统将按照以下情况进行处理
- 如果您选择 Savepoint 策略,在暂停前执行一次Savepoint,则作业暂停后启动恢复时,系统会从最新的Savepoint状态恢复;
- 如果您禁用 Savepoint 策略,则作业暂停后启动恢复时,系统会从最新的Checkpoint状态恢复;
- **停止后启动:** 停止作业时,根据您选择 Savepoint 策略,作业在停止时是否执行一次Savepoint,系统将按照以下情况进行处理:
- 如果选择 Savepoint 策略,那么作业会先进行Savepoint后进入停止流程。在作业停止后,系统会自动清除作业相关的Checkpoint信息;
- 如果 Savepoint 策略禁用,那么作业会进入停止流程。在作业停止后,系统会自动清除作业相关的Checkpoint信息;
作业停止后启动时,您可以全新启动(无状态);或者从所选Savepoint开始恢复作业。
## 功能说明
- **执行当前的 SQL:** 提交执行未保存的作业配置,并可以同步获取 SELECT、SHOW 等执行结果,常用于 Local、Standalone、Session 执行模式;
- **异步提交:** 提交执行最近保存的作业配置,可用于所有执行模式;
- **发布** 发布当前作业的最近保存的作业配置,发布后无法修改;
- **上线** 提交已发布的作业配置,可触发报警;
- **下线** 停止已上线的作业,并触发 SavePoint;
- **停止** 只停止已提交的作业;
- **维护** 使已发布的作业进入维护状态,可以被修改;
- **注销** 标记作业为注销不可用状态。
## 常用场景
- **查看 FlinkSQL 执行结果:** 执行当前的 SQL。
- **提交作业:** 异步提交。
- **上线作业:** SavePoint 最近一次 + 上线。
- **下线作业:** 下线。
- **升级作业:** 下线后上线。
- **全新上线作业:** SavePoint 禁用 + 上线。
## Flink作业启动操作步骤
......@@ -29,12 +30,8 @@
![async_submit](http://www.aiwenmo.com/dinky/docs/zh-CN/administrator-guide/Studio/job_dev/flinksql_guide/flinksql_job_submit/async_submit.png)
作业启动发布上线如下图:
![online](http://www.aiwenmo.com/dinky/docs/zh-CN/administrator-guide/Studio/job_dev/flinksql_guide/flinksql_job_submit/online.png)
有关发布上线的详细内容,请参考运维中心
您可以选择使用 Session 集群在开发测试环境对作业调试,如作业运行、检查结果等。提升开发效率。调试可以包含多个 SELECT 或 INSERT 的复杂作业。配置 Session 集群请参考注册中心中[集群管理](docs/zh-CN/administrator-guide/registerCenter/cluster_manage.md)的集群实例管理。
可以选择使用 Standalone 或 Session 集群在开发测试环境对作业调试,如作业运行、检查结果等。配置 Standalone 或 Session 集群请参考注册中心中[集群管理](docs/zh-CN/administrator-guide/registerCenter/cluster_manage.md)的集群实例管理。
## FlinkSQL作业调试步骤
也可以调试普通的 DB SQL 作业。
1.首先登录 Dinky 数据开发控制台
## FlinkSQL作业调试步骤
2.点击**目录 > 新建目录 > 新建作业**
1.进入 Data Studio
3.填写完作业信息后,单击**确认**,作业类型必须选择 FlinkSQL
2.点击 **目录 > 新建目录 > 新建作业**
4.分别注册 Source 表和 Sink 表
3.填写完作业信息后,单击 **确认**,作业类型选择 FlinkSQL
分别编写源表和结果表 SQL 代码后,单击**执行当前的SQL**
4.编写完整的 FlinkSQL 语句,包含 CREATE TABLE 等
示例代码如下:
......@@ -22,35 +22,46 @@ CREATE TABLE datagen_source(
) WITH (
'connector' = 'datagen'
);
--创建结果表blackhole_sink
CREATE TABLE blackhole_sink(
id BIGINT,
name STRING
) WITH (
'connector' = 'blackhole'
);
--将源表数据插入到结果表
INSERT INTO blackhole_sink
SELECT
id BIGINT,
name STRING
from datagen_source;
from datagen_source
```
5.单击**保存**
6.单击**语法检查**
7.单击**执行当前的SQL**
7.配置**执行配置**
| 配置项 | 说明 |
|:----:|:-----------------------:|
| 预览结果 | 默认开启,可预览 FlinkSQL 的执行结果 |
| 打印流 | 默认禁用,开启后将展示 ChangeLog |
| 最大行数 | 默认 100,可预览的执行结果最大的记录数 |
| 自动停止 | 默认禁用,开启后达到最大行数将停止作业 |
**注意:** 预览聚合结果如 count 等操作时,关闭打印流可合并最终结果。
8.单击**执行当前的SQL**
9.**结果** 或者 **历史 > 预览数据** 可以手动查询最新的执行结果
## FlinkSQL 预览结果的必要条件
1.执行模式必须是 Local、Standalone、Yarn Session、Kubernetes Session 其中的一种;
2.必须关闭 **Insert 语句集**
3.除 SET 和 DDL 外,必须只提交一个 SELECT 或 SHOW 或 DESC 语句;
8.配置调试数据
4.必须开启 **预览结果**
如果你想要实时预览数据,如计算count(1)统计等。可以点击**执行配置**
5.作业必须是提交成功并且返回 JID,同时在远程集群可以看到作业处于 RUNNING 或 FINISHED 状态;
| 配置项 | 说明 |
| :------: | :------------------------------------: |
| 实时预览 | 默认开启 |
| 打印流 | 默认禁用,如果您想要实时打印数据可开启 |
6.Dinky 重启后,之前的预览结果将失效
确定好调试数据后,单击**执行当前的SQL**,会在SQL编辑器下方显示结果
## DB SQL 调试
选择对应数据源,并书写其 sql 执行即可。
\ No newline at end of file
Dinky 做为一站式的实时计算平台,可以托管数据库及 Flink。全托管的 Flink 集群模式支持 local、Session、Per-job 和 Application 四种模式,四种模式有如下区别:
Dinky 做为一站式的实时计算平台,可以托管 Flink 和数据库的作业。
- **local:** Flink自带,无需任何配置,一个简单的 Mini 集群;
- **Session 集群:** 多个作业可以复用相同的JM,可以提高JM资源利用率。因此适用于大量占用资源比较小或任务启停比较频繁的小并发作业,可以有效节约资源开销。Yarn 和 K8S 均适用;
- **Per-job 集群:** 作业之间资源隔离,每个作业都需要一个独立的JM,因为小任务JM的资源利用率较低,因此适用于占用资源比较大或持续稳定运行的作业。Yarn 适用;
- **Application 集群:** 在 Application 模式下,每个作业创建一个集群,这些作业会被视为属于同一个应用,在同一个集群中执行(如果在 Per-Job 模式下,就会启动多个集群)。可见,Application 模式本质上是 Session 和 Per-Job 模式的折衷。Yarn 和 K8S 均适用;
## FlinkSQL
Dinky 上如何托管 Flink 集群,请参考[集群管理](/zh-CN/administrator-guide/registerCenter/cluster_manage.md)
### Local
其他数据库的托管请参考[数据源管理](/zh-CN/administrator-guide/registerCenter/datasource_manage.md)
\ No newline at end of file
Dinky 内置的 Flink MiniCluster,如果提交任务至 Local 模式则将在 Dinky 内部运行该作业。
**特点:** 不需要外部 Flink 集群,资源受限。
**适用于:** 语法校验、查看 JobPlan、查看字段级血缘、执行资源占用非常小的批作业。
**注意:** 请不要提交流任务至 Local,如果提交了,你将无法关闭它,只能重启 Dinky。
### Standalone
Dinky 将通过 JobManager 的 Rest 端口提交 FlinkSQL 作业至外部的 Flink Standalone 集群。
**特点:** 作业资源共享,启动快,不依赖 Yarn 或 K8S。
**适用于:** 批作业、Flink OLAP 查询、资源占用小的流作业。
### Yarn Session
Dinky 将通过 JobManager 的 Rest 端口提交 FlinkSQL 作业至外部的 Flink Yarn Session 集群。
**特点:** 作业资源共享,启动快。
**适用于:** 作业资源共享,启动快,批作业、Flink OLAP 查询、资源占用小的流作业。
**注意:** 需要手动启动 Yarn Session 集群并注册到 Dinky 的集群实例,请参考[集群管理](/zh-CN/administrator-guide/registerCenter/cluster_manage.md)
### Yarn Per-Job
Dinky 将通过 Yarn 来创建 Flink Yarn Per-Job 集群。
**特点:** 作业资源隔离,启动慢,每个 JobGraph 创建一个集群。
**适用于:** 资源占用较多的批作业和流作业。
**注意:** 需要在 Dinky 的集群配置中注册相关的 Hadoop 和 Flink 配置,请参考[集群管理](/zh-CN/administrator-guide/registerCenter/cluster_manage.md)
### Yarn Application
Dinky 将通过 Yarn 来创建 Flink Yarn Application 集群。
**特点:** 作业资源隔离,启动慢,节约网络资源,所有 JobGraph 只创建一个集群。
**适用于:** 资源占用较多的批作业和流作业。
**注意:** 需要在 Dinky 的集群配置中注册相关的 Hadoop 和 Flink 配置,请参考[集群管理](/zh-CN/administrator-guide/registerCenter/cluster_manage.md)
### Kubernetes Session
Dinky 将通过暴露的 NodePort 端口提交 FlinkSQL 作业至外部的 Flink Kubernetes Session 集群。
**特点:** 作业资源隔离,启动快,动态扩容。
**注意:** 需要在 Dinky 的集群配置中注册相关的 Kubernetes 和 Flink 配置,请参考[集群管理](/zh-CN/administrator-guide/registerCenter/cluster_manage.md)
**适用于:** 作业资源隔离,启动快,动态扩容,批作业、Flink OLAP 查询、资源占用小的流作业。
### Kubernetes Application
Dinky 将通过 dlink-app 镜像创建的 Flink Kubernetes Application 集群。
**特点:** 作业资源隔离,启动慢,动态扩容,节约网络资源,所有 JobGraph 只创建一个集群。
**适用于:** 作业资源隔离,启动慢,动态扩容,节约网络资源,资源占用较多的批作业和流作业。
**注意:** 需要在 Dinky 的集群配置中注册相关的 Kubernetes 和 Flink 配置,请参考[集群管理](/zh-CN/administrator-guide/registerCenter/cluster_manage.md)
## DB SQL
Dinky 将把 sql 提交到对应的数据源执行。
**适用于:** 原生 SQL 查询、执行。
**注意:** 需要在数据源中心注册数据库,请参考[数据源管理](/zh-CN/administrator-guide/registerCenter/datasource_manage.md)
\ No newline at end of file
目前您可以在Dinky数据开发控制台对您的作业进行管理操作,包括目录创建和删除、作业创建和删除等。由于社区在作业管理还在完善中,后期会以命名空间的方式管理作业。
## 创建目录
## 创建根目录
首先右键单击**数据开发>目录>创建目录**
**数据开发 > 目录 > 创建目录 > 创建新目录**
![image-20220327160704764](http://www.aiwenmo.com/dinky/dev/docs/image-20220327160704764.png)
右键单击**创建目录> 创建新目录**
![创建新目录](http://www.aiwenmo.com/dinky/dev/docs/%E5%88%9B%E5%BB%BA%E6%96%B0%E7%9B%AE%E5%BD%95.png)
## 创建根目录
创建根目录前提是需要在创建目录后,再次创建子目录,然后再同级目录下方可创建根目录。
首先右键单击**创建根目录> 创建新目录**或者点击引导页下方的**+**号按钮
**右键目录或作业 > 创建根目录 > 创建新目录** 或者点击引导页下方的 **+** 号按钮
![创建跟目录](http://www.aiwenmo.com/dinky/dev/docs/%E5%88%9B%E5%BB%BA%E8%B7%9F%E7%9B%AE%E5%BD%95.png)
......@@ -28,17 +14,19 @@
![根目录创建完成](http://www.aiwenmo.com/dinky/dev/docs/%E6%A0%B9%E7%9B%AE%E5%BD%95%E5%88%9B%E5%BB%BA%E5%AE%8C%E6%88%90.png)
## 创建目录
**创建目录 > 创建新目录**
## 创建作业
![创建新目录](http://www.aiwenmo.com/dinky/dev/docs/%E5%88%9B%E5%BB%BA%E6%96%B0%E7%9B%AE%E5%BD%95.png)
Dinky数据开发控制台,目前支持的数据源作业开发详情请参考开发控制台中的[组件介绍]()
## 创建作业
首先右键单击**创建作业>创建新作业**
**创建作业 > 创建新作业**
![创建新作业](http://www.aiwenmo.com/dinky/dev/docs/%E5%88%9B%E5%BB%BA%E6%96%B0%E4%BD%9C%E4%B8%9A.png)
创建新作业默认是FlinkSQL,您也可以选择其他数据源创建新作业
创建作业默认是 FlinkSQL,也可以创建其他类型的作业
![创建新作业1](http://www.aiwenmo.com/dinky/dev/docs/%E5%88%9B%E5%BB%BA%E6%96%B0%E4%BD%9C%E4%B8%9A1.png)
......@@ -46,11 +34,9 @@ Dinky数据开发控制台,目前支持的数据源作业开发详情请参考
![作业创建完成](http://www.aiwenmo.com/dinky/dev/docs/%E4%BD%9C%E4%B8%9A%E5%88%9B%E5%BB%BA%E5%AE%8C%E6%88%90.png)
## 重命名
重命名包括对目录重命名和作业重命名
## 重命名目录或作业
首先右键单击**重命名>重命名目录**
**右键目录 > 重命名 > 重命名目录**
![重命名](http://www.aiwenmo.com/dinky/dev/docs/%E9%87%8D%E5%91%BD%E5%90%8D.png)
......@@ -60,52 +46,45 @@ Dinky数据开发控制台,目前支持的数据源作业开发详情请参考
![重命名完成](http://www.aiwenmo.com/dinky/dev/docs/%E9%87%8D%E5%91%BD%E5%90%8D%E5%AE%8C%E6%88%90.png)
当重命名作业时,会提示重命名作业。
**右键作业 > 重命名 > 重命名作业**
## 移动
## 移动目录或作业
您如果想移动目录或者移动作业,可以将目录或者作业移动到其他目录下。
如果所在的目录下有作业,在您移动成功后,会将作业也会一并移动到相应目录下。
首先右键单击**剪切**
**右键目录或作业 > 剪切**
![剪切](http://www.aiwenmo.com/dinky/dev/docs/%E5%89%AA%E5%88%87.png)
然后右键单击**粘贴**到指定目录下
然后 **右键目录或作业 > 粘贴**
![粘贴](http://www.aiwenmo.com/dinky/dev/docs/%E7%B2%98%E8%B4%B4.png)
剪切粘贴成功
作业移动成功
![移动成功](http://www.aiwenmo.com/dinky/dev/docs/%E7%A7%BB%E5%8A%A8%E6%88%90%E5%8A%9F.png)
## 搜索
当您作业比较多的时候,可以通过搜索功能,找到对应的作业或者目录。不管是搜索作业还是搜索目录都很方便。
## 高亮模糊搜索
![作业目录搜索](http://www.aiwenmo.com/dinky/dev/docs/%E4%BD%9C%E4%B8%9A%E7%9B%AE%E5%BD%95%E6%90%9C%E7%B4%A2.png)
## 删除
删除包括删除作业和删除目录。
在删除作业时,会提示删除作业。
## 删除目录或作业
首先右键单击**删除>删除作业>确定**
**右键目录或作业 > 删除**
![删除](http://www.aiwenmo.com/dinky/dev/docs/%E5%88%A0%E9%99%A4%E4%BD%9C%E4%B8%9A.png)
当删除目录时,会提示删除目录。
**说明:** 如果目录下有很多子目录或者作业,先要删除所有子目录或者作业,才能进一步删除父目录。
## 作业其他功能
右键单击可以打开作业(或者双击作业)、异步提交作业
**打开作业****异步提交**
![其他作业功能](http://www.aiwenmo.com/dinky/dev/docs/%E5%85%B6%E4%BB%96%E4%BD%9C%E4%B8%9A%E5%8A%9F%E8%83%BD.png)
**说明:**如果目录下有很多子目录或者作业,先要删除子目录或者作业,才能进一步删除父目录。
当用户提交 FlinkSQL 作业时,首先要保证安装了 Flink 集群。Flink 当前支持的集群模式包括:
提交 FlinkSQL 作业时,首先要保证安装了 Flink 集群。Flink 当前支持的集群模式包括:
- StandAlone 集群
- Standalone 集群
- Yarn 集群
- Kubernetes 集群
......@@ -8,17 +8,17 @@
**需要说明的是:**
- StandAlone 集群适用于既可以做为查询使用,又可以将作业异步提交到远程集群
- Standalone 集群适用于既可以做为查询使用,又可以将作业异步提交到远程集群
- Yarn Session 和 Kubernetes Session 适用于既可以做为查询使用,又可以将作业异步提交到远程集群
- Yarn Perjob,Yarn Application 和 Kubernetes Application 适用于异步提交
- Yarn Per-job,Yarn Application 和 Kubernetes Application 适用于异步提交
## 集群实例管理
集群实例管理适用于 StandAlone,Yarn Session 和 Kubernetes Session 这三种类型配置
集群实例管理适用于 Standalone,Yarn Session 和 Kubernetes Session 这三种集群实例的注册
### 集群配置
### 注册集群实例
首先进入**注册中心** > **集群管理** > **集群实例管理**,新建一个**集群实例**,点击**新建**,添加Flink集群,参数配置完成后,点击提交即可。
**注册中心 > 集群管理 > 集群实例管理 > 新建**
![cluster_manager_list](http://www.aiwenmo.com/dinky/docs/zh-CN/administrator-guide/registerCenter/cluster_manager/cluster_manager_list.png)
......@@ -26,27 +26,28 @@
**参数配置说明:**
- **名称:** 自定义(必填)
- **别名:** 自定义
- **类型:** 支持StandAlone,Yarn Session和Kubernetes Session三种类型
- **JobManager HA地址:** JobManager的RestAPI地址,当有多个RestAPI地址时。采用英文逗号隔开
- **注释:** 自定义
- **名称** 自定义(必填)
- **别名:** 自定义,默认同名称
- **类型:** 支持 Standalone,Yarn Session 和 Kubernetes Session 三种类型的集群提交任务,其他类型的集群只能查看作业信息
- **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)
点击**回收**,会将过去的集群实例进行回收
点击**回收**,会将提交 Per-Job 和 Application 任务时自动注册且已经注销的集群实例进行回收
![回收](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)
......@@ -56,7 +57,7 @@
用户可以对所添加的集群实例进行删除。
首先进入**注册中心** > **集群实例管理**,在列表中找到对应的集群实例,点击**删除**,删除集群!
首先进入 **注册中心 > 集群实例管理**,在列表中找到对应的集群实例,点击 **删除**,删除集群!
![集群实例删除](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)
......@@ -70,11 +71,11 @@
## 集群配置管理
集群配置管理适用于Yarn Perjob,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)
......@@ -82,23 +83,23 @@
**参数配置说明:**
- **类型:** 支持Flink on Yarn和Flink on Kubernetes
- **hadoop配置**
- **配置文件路径:** hadoop配置文件路径,指定配置文件路径(末尾无/),需要包含以下文件:core-site.xml,hdfs-site.xml,yarn-site.xml
- **自定义配置(高优先级)**
- **ha.zookeeper.quorum:** zookeeper访问地址
- **其他配置:** zookeeper的参数配置(默认不填写)
- **Flink配置**
- **lib 路径:** 指定 lib 的 hdfs 路径(末尾无/),需要包含 Flink 运行时的依赖
- **配置文件路径:**指定 flink-conf.yaml 的具体路径(末尾无/),必填
- **自定义配置(高优先级):** Flink参数配置
- **类型:** 支持 Flink on Yarn 和 Flink on Kubernetes
- **hadoop 配置**
- **配置文件路径:** hadoop 配置文件路径,指定配置文件路径(末尾无/),需要包含以下文件:core-site.xml,hdfs-site.xml,yarn-site.xml
- **自定义配置(高优先级,目前不生效,请跳过)**
- **ha.zookeeper.quorum:** zookeeper 访问地址
- **其他配置:** hadoop 的其他参数配置(默认不填写)
- **Flink 配置**
- **lib 路径** 指定 lib 的 hdfs 路径(末尾无/),需要包含 Flink 运行时的依赖
- **配置文件路径:** 指定 flink-conf.yaml 的具体路径(末尾无/),必填
- **自定义配置(高优先级)** Flink参数配置
- **基本配置**
- **标识:** 唯一英文标识(必填)
- **名称:** 自定义
- **标识:** 唯一英文标识(必填)
- **名称:** 自定义,默认同标识
- **注释:** 自定义
- **是否启用:** 默认禁用,需要开启
参数配置完成后,点击**测试**,会显示测试连接成功。
参数配置完成后,点击 **测试**,会显示测试连接成功。
![集群测试](http://www.aiwenmo.com/dinky/dev/docs/%E9%9B%86%E7%BE%A4%E6%B5%8B%E8%AF%95.png)
......@@ -108,7 +109,7 @@
当集群配置完成后,用户可以对集群配置做编辑修改。
首先进入**注册中心** > **集群配置管理**,在列表中找到对应的集群名称,点击**编辑**后,维护集群配置
首先进入 **注册中心 > 集群配置管理**,在列表中找到对应的集群名称,点击 **编辑** 后,维护集群配置
![集群配置编辑](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)
......@@ -118,20 +119,16 @@
用户可以对所添加的集群配置进行删除。
首先进入**注册中心** > **集群配置管理**,,在列表中找到对应的集群,点击**删除**后,删除集群
首先进入 **注册中心 > 集群配置管理**,在列表中找到对应的集群,点击 **删除** 后,删除集群
![集群配置删除](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/%E6%90%9C%E7%B4%A2.png)
**说明:** 当集群配置的作业异步提交成功,可以看到所作业提交后的实例,并如果集群实例一样,可以对所在的集群实例进行回收,删除,编辑等操作。集群实例的操作步骤请查看集群实例管理部分。
**说明:** 当集群配置的作业异步提交成功,可以看到所作业提交后的实例。同集群实例一样,可以对所在的集群实例进行回收,删除,编辑等操作。集群实例的操作步骤请查看集群实例管理部分。
......@@ -3,30 +3,30 @@
![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_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)章节。
......@@ -299,6 +299,22 @@ Dlink 的官网实现,大佬们可以修改或贡献 markdown。多多分享
同步执行/异步提交 ==> StudioService ==> JobManager ==> Executor ==> LocalStreamExecutor ==> CustomTableEnvironmentImpl ==> LocalEnvironment
### Standalone
注册集群实例 ==> 同步执行/异步提交 ==> StudioService ==> JobManager ==> Executor ==> RemoteStreamExecutor ==> CustomTableEnvironmentImpl ==> RemoteEnvironment ==> JobGraph ==> Flink Standalone Cluster
### Yarn Session
注册集群实例 ==> 同步执行/异步提交 ==> StudioService ==> JobManager ==> Executor ==> RemoteStreamExecutor ==> CustomTableEnvironmentImpl ==> RemoteEnvironment ==> JobGraph ==> Flink Yarn Session Cluster
### Yarn Per-Job
注册集群配置 ==> 异步提交 ==> StudioService ==> JobManager ==> Executor ==> JobGraph ==> Gateway ==> YarnPerJobGateway==> YarnClient ==> Flink Yarn Per-Job Cluster
### Yarn Application
注册集群配置 ==> 异步提交 ==> StudioService ==> JobManager ==> Executor ==> TaskId & JDBC ==> Gateway ==> YarnApplicationGateway==> YarnClient ==> dlink-app.jar ==> Executor ==> AppStreamExecutor ==> CustomTableEnvironmentImpl ==> LocalEnvironmentFlink Yarn Application Cluster
## 说明
以为内容是 Dinky在IDEA 部署调试步骤,并简单介绍了各模块的作用,也清晰的描述了各执行模式下 FlinkSQL 实现免 Jar 提交的代码思路。在了解以上内容后,可以动手改造 Dinky。
......
......@@ -17,7 +17,7 @@ Dinky(原 Dlink):
## 特点
一个 `开箱即用``易扩展` ,以 `Apache Flink` 为基础,连接 `OLAP``数据湖` 等众多框架的 `一站式` 实时计算平台,致力于 `流批一体``湖仓一体` 的建设与实践。
一个 **开箱即用****易扩展** ,以 **Apache Flink** 为基础,连接 **OLAP****数据湖** 等众多框架的 **一站式** 实时计算平台,致力于 **流批一体****湖仓一体** 的建设与实践。
其主要目标如下:
......
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