Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
D
dlink
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
zhaowei
dlink
Commits
55a2b754
Commit
55a2b754
authored
Mar 08, 2022
by
walkhan
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
添加扩展源数据及远程调试文档
parent
38fe986a
Changes
9
Show whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
488 additions
and
76 deletions
+488
-76
FAQ.md
docs/zh-CN/FAQ.md
+0
-0
_navbar.md
docs/zh-CN/_navbar.md
+12
-12
_sidebar.md
docs/zh-CN/_sidebar.md
+61
-59
datasource_management.md
...nistrator-guide/register_ center/datasource_management.md
+1
-0
warning.md
docs/zh-CN/administrator-guide/register_ center/warning.md
+1
-0
how_contribute.md
docs/zh-CN/developer-guide/how_contribute.md
+37
-0
local_debug.md
docs/zh-CN/developer-guide/local_debug.md
+2
-2
remote_debug.md
docs/zh-CN/developer-guide/remote_debug.md
+363
-0
datasource.md
docs/zh-CN/extend/datasource.md
+11
-3
No files found.
docs/zh-CN/FAQ
→
docs/zh-CN/FAQ
.md
View file @
55a2b754
File moved
docs/zh-CN/_navbar.md
View file @
55a2b754
...
@@ -3,9 +3,9 @@
...
@@ -3,9 +3,9 @@
*
[
master
](
/zh-CN/introduce.md
)
*
[
master
](
/zh-CN/introduce.md
)
*
[
下载
](
/zh-CN/quick_start/download.md
)
*
[
下载
](
/zh-CN/quick_start/download.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/
)
*
[
中文
](
/zh-CN/
)
...
...
docs/zh-CN/_sidebar.md
View file @
55a2b754
...
@@ -20,16 +20,18 @@
...
@@ -20,16 +20,18 @@
-
注册中心
-
注册中心
-
集群实例
-
集群实例
-
集群配置
-
集群配置
-
[
数据源管理
](
/zh-CN/administrator-guide/register_center/datasource_management.md
)
-
[
告警管理
](
/zh-CN/administrator-guide/register_center/warning.md
)
-
jar管理
-
jar管理
-
数据源管理
-
文档管理
-
文档管理
-
元数据管理
-
系统设置
-
系统设置
-
用户管理
-
用户管理
-
Flink设置
-
Flink设置
-
运维中心
-
运维中心
-
生命周期管理
-
生命周期管理
-
作业监控
-
作业监控
-
api
-
openapi
-
最佳实践
-
最佳实践
-
[
Yarn提交实践指南
](
/zh-CN/practice/yarnsubmit.md
)
-
[
Yarn提交实践指南
](
/zh-CN/practice/yarnsubmit.md
)
-
[
Dlink 核心概念及实现原理详解
](
/zh-CN/practice/principle.md
)
-
[
Dlink 核心概念及实现原理详解
](
/zh-CN/practice/principle.md
)
...
...
docs/zh-CN/administrator-guide/register_ center/datasource_management.md
0 → 100644
View file @
55a2b754
# 数据源管理
docs/zh-CN/administrator-guide/register_ center/warning.md
0 → 100644
View file @
55a2b754
# 告警管理
docs/zh-CN/developer-guide/how_contribute.md
0 → 100644
View file @
55a2b754
# 如何贡献
Dinky0.6基本功能已经全部开发完成,已经达到生产可用级别。为了Dinky社区生态更加完善,社区希望有更多的人参与进来。不管是小白还是大佬,Dinky社区欢迎你的加入,未来共同建设Dinky生态体系。
Dinky目前围绕Flink已经初步建设完成,其他数据源也在不断扩展中,当前支持的MySQL,Doris等数据库,更多数据源支持请查阅
[
扩展数据源
](
/zh-CN/extend/datasource.md
)
。后续还会有更多的功能,如数据集成,数据治理等。
那对于参与进来的伙伴如何贡献呢?那么贡献的方式有如下3种方式:
-
代码贡献;
-
文档类贡献;
-
问题解答;
为了方便更多人参与进社区,不管你是代码贡献者还是文档贡献者,Dinky社区方便大家开发,准备了文档贡献和代码贡献的开发者指南
## 文档贡献
首先要下载
[
Dinky源码
](
https://github.com/DataLinkDC/dlink/tree/dev
)
,下载完成后,需要安装nodejs和npm。详细安装步骤可以查阅本地调试。由于Dinky文档是有
[
docsify
](
https://docsify.js.org/#/zh-cn/quickstart
)
维护。因此需要在dinky根目录执行如下命令,在本地方可启动:
```
#推荐全局安装 docsify-cli 工具
npm i docsify-cli -g
#运行 docsify serve 启动一个本地服务器
docsify serve docs
```
可以方便地实时预览效果。默认访问地址
[
http://localhost:3000
](
http://localhost:3000/
)
## 代码贡献
请查阅
[
本地调试
](
/zh-CN/developer-guide/local_debug.md
)
或
[
远程调试
](
/zh-CN/developer-guide/remote_debug.md
)
## 开发者须知
开发不同的代码需要不同的分支
-
如果要基于二进制包进行开发,需要切换到对应的分支代码,如0.5.1;
-
如果想要开发新代码,切换到dev分支即可;
docs/zh-CN/developer-guide/local_debug.md
View file @
55a2b754
#
Dinky开发者本地调试
#
开发者本地调试手册
## 前置条件
## 前置条件
...
@@ -180,7 +180,7 @@ spring:
...
@@ -180,7 +180,7 @@ spring:
npm start
npm start
```
```
等待几分钟,访问 127.0.0.1:8
000
可见登录页。
等待几分钟,访问 127.0.0.1:8
888
可见登录页。
输入 admin/admin 登录。
输入 admin/admin 登录。
...
...
docs/zh-CN/developer-guide/remote_debug.md
0 → 100644
View file @
55a2b754
# 开发者远程调试手册
远程调试适用与服务器已部署如下三种集群的场景
-
Flink StandAlone
-
Flink on yarn
-
Flink on K8S
需要说明的是远程调试不需要在服务器部署相应的Dinky安装包,在对应的IDE启动Dlink类,即可完成对作业的远程执行和Debug。到目前为止,远程调试已经打通yarn session模式,也希望有感兴趣的小伙伴贡献其他几种模式的远程调试模式。
**前提条件:**
在进行远程调试过程中,必须要进行一次编译,这样做的原因是为了生成Dinky各个模块或者各个包的jar包文件,为远程提交到集群做准备。此方式类似与在服务器部署Dinky后,Dinky启动需要各个Dinky的包或者模块对应的jar包文件,方可正常启动。
对于开发者来说,如何在IDEA中对作业进行远程调试及提交。下面以yarn session模式为例。
**说明:**
环境准备及源码导入IDEA,请参考本地调试
## 编译
### 命令行编译
```
mvn clean package -Dmaven.test.skip=true
```
### 图形化编译

图形化编译,需要跳过test,并进行clean ==> install。
**注意:**
如果不执行install 生成的 jar安装不到本地 别的依赖就识别不到本地仓库这些包 所以可能导依赖的时候会报错 CustomTableEnvironmentImpl 这个类未定义 。
**说明:**
1.如果不想单独编译前端,在dlink-web模块的pom下有
<span
style=
"color:fuchsia"
>
frontend-maven-plugins
</span>
插件,可直接前后端编译;
2.如果要分开编译,在后端编译完成后,需要在dlink-web下执行
<span
style=
"color:fuchsia"
>
npm i --force
</span>
;
## 远程调试环境搭建
### dlink-core模块修改
需要修改 dlink-core模块下的pom文件,将 provied 改为 complie,修改如下:
```
<properties>
<java.version>1.8</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<!-- `provided` for product environment ,`compile` for dev environment -->
<scope.runtime>compile</scope.runtime>
</properties>
```
### dlink-admin模块修改
需要修改 dlink-admin模块下的pom文件
-
可在该 pom 下按功能添加其他 Dlink 子组件依赖以及 Flink 和 Hadoop 的第三方依赖。
-
如使用 MySQL数据源及元数据功能,则添加以下内容:
```
xml
<dependency>
<groupId>
com.dlink
</groupId>
<artifactId>
dlink-gateway
</artifactId>
</dependency>
<dependency>
<groupId>
com.dlink
</groupId>
<artifactId>
dlink-metadata-mysql
</artifactId>
</dependency>
<dependency>
<groupId>
com.dlink
</groupId>
<artifactId>
dlink-metadata-doris
</artifactId>
</dependency>
<dependency>
<groupId>
com.dlink
</groupId>
<artifactId>
dlink-metadata-phoenix
</artifactId>
</dependency>
<dependency>
<groupId>
org.apache.phoenix
</groupId>
<artifactId>
phoenix-core
</artifactId>
<version>
4.14.2-HBase-1.4
</version>
</dependency>
<dependency>
<groupId>
org.apache.flink
</groupId>
<artifactId>
flink-yarn_2.11
</artifactId>
<version>
1.13.6
</version>
</dependency>
<dependency>
<groupId>
org.apache.flink
</groupId>
<artifactId>
flink-shaded-hadoop-3-uber
</artifactId>
<version>
3.1.1.7.2.1.0-327-9.0
</version>
</dependency>
<dependency>
<groupId>
log4j
</groupId>
<artifactId>
log4j
</artifactId>
<version>
1.2.17
</version>
</dependency>
```
**说明:**
如使用 Flink Hive 等其他连接器功能,则需要添加相关依赖,以上phoenix,doris,mysql依赖可选,根据情况选择Dinky已经支持的数据源依赖即可。
另外远程调试需要添加
[
flink-shaded-hadoop-3-uber
](
https://repository.cloudera.com/artifactory/cloudera-repos/org/apache/flink/flink-shaded-hadoop-3-uber/3.1.1.7.2.9.0-173-9.0/flink-shaded-hadoop-3-uber-3.1.1.7.2.9.0-173-9.0.jar
)
依赖,如果下载不下来,可以在pom下添加如下依赖:
```
<repositories>
<repository>
<id>cloudera</id>
<url>https://repository.cloudera.com/artifactory/cloudera-repos/</url>
</repository>
</repositories>
```
### 修改配置文件
修改dlink根目录下/dlink-admin/src/main/resources/application.ym文件
配置数据库连接信息:
```
spring:
datasource:
url: jdbc:mysql://127.0.0.1:3306/dlink?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&useSSL=false&zeroDateTimeBehavior=convertToNull&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
username: root
password: 123456
driver-class-name: com.mysql.cj.jdbc.Driver
application:
name: dlink
# flyway:
# enabled: false
# clean-disabled: true
## baseline-on-migrate: true
# table: dlink_schema_history
server:
port: 8888
mybatis-plus:
mapper-locations: classpath:/mapper/*Mapper.xml
#实体扫描,多个package用逗号或者分号分隔
typeAliasesPackage: com.dlink.model
global-config:
db-config:
id-type: auto
configuration:
##### mybatis-plus打印完整sql(只适用于开发环境)
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
# log-impl: org.apache.ibatis.logging.nologging.NoLoggingImpl
# Sa-Token 配置
sa-token:
# token名称 (同时也是cookie名称)
token-name: satoken
# token有效期,单位s 默认10小时, -1代表永不过期
timeout: 36000
# token临时有效期 (指定时间内无操作就视为token过期) 单位: 秒
activity-timeout: -1
# 是否允许同一账号并发登录 (为true时允许一起登录, 为false时新登录挤掉旧登录)
is-concurrent: false
# 在多人登录同一账号时,是否共用一个token (为true时所有登录共用一个token, 为false时每次登录新建一个token)
is-share: true
# token风格
token-style: uuid
# 是否输出操作日志
is-log: false
```
### 初始化数据库
在MySQL数据库创建 dlink 用户并在 dlink 数据库中执行 dlink-doc/sql/dlink.sql 文件。此外 dlink-doc/sql/dlink_history.sql 标识了各版本的升级 sql。
以上文件修改完成后,就可以启动Dinky。
### 集群配置文件
-
**hadoop配置文件: **
core-site.xml hdfs-site.xml yarn-site.xml hive-site.xml;
-
**Flink配置文件:**
flink-conf.yaml;
**注意:**
hive-site.xml需要使用到hivecatalog时添加;
### 添加plugins 插件依赖
根据job的场景自行选择插件依赖jar, 注意需要将该目录添加为项目库,如下所示:

### 启动yarn session集群
```
yarn-session.sh -n 2 -jm 1024 -tm 4096 -s 6 -d
```
### 启动Dinky服务
启动 dlink-admin 下的 Dlink 启动类,可见 8888 端口。
等待几分钟,访问 127.0.0.1:8888 可见登录页。
输入 admin/admin 登录。
**说明:**
在dinky 0.6版本后,不需要额外启动前端,启动后端后便可访问 127.0.0.1:8888
## 远程调试作业示例
以上远程调试环境搭建完成后,就如同在服务器部署上类似,可以对作业远程提交到Flink集群。下面以Flink CDC ==》Hudi做为远程调试的作业
### 脚本准备
```
------------- '付款单表' order_mysql_goods_order_pay -----------------
CREATE TABLE source_order_mysql_goods_order_pay (
`id` bigint COMMENT '自增主键id'
, `uid` string COMMENT 'uid'
, `goods_order_uid` string COMMENT '订单uid'
, `trans_goods_order_uid` string COMMENT '转单时老订单uid'
, `trans_goods_order_change_uid` string COMMENT '转单时老订单变更单uid'
, `customer_uid` string COMMENT '客户uid'
, `customer_name` string COMMENT '客户姓名'
, `pay_order_no` string COMMENT '付款支付订单uid'
, `pay_status` bigint COMMENT '支付状态 1:待付款 2:付款审核 3:付款成功 4:付款取消'
, `pay_type` bigint COMMENT '付款单类型 1:支付 2:资金池抵扣 3:转单抵扣'
, `pay_type_detail` bigint COMMENT '付款方式'
, `pay_amount` bigint COMMENT '应付金额'
, `real_amount` bigint COMMENT '实际付款金额'
, `pay_time` timestamp(3) COMMENT '支付时间'
, `pay_sucs_time` timestamp(3) COMMENT '支付成功时间'
, `pay_audit_time` timestamp(3) COMMENT '支付审核时间'
, `pay_fail_time` timestamp(3) COMMENT '支付失败时间'
, `apply_uid` string COMMENT '申请人'
, `apply_name` string COMMENT '申请人'
, `examine_uid` string COMMENT '审核人'
, `examine_name` string COMMENT '审核人'
, `examine_time` timestamp(3) COMMENT '审核时间'
, `voucher_pics` string COMMENT '付款凭证图片地址'
, `remark` string COMMENT '备注'
, `status` bigint COMMENT '是否删除(1.否,2.是)'
, `create_time` timestamp(3) COMMENT '创建时间'
, `update_time` timestamp(3) COMMENT '更新时间'
, `belongs_bank` string COMMENT '所属银行'
, `bank_no` string COMMENT '银行卡号'
, `company_pay_time` timestamp(3) COMMENT '公对公转账时间'
,PRIMARY KEY(id) NOT ENFORCED
) COMMENT '付款单表'
WITH (
'connector' = 'mysql-cdc'
,'hostname' = 'rm-bsssssssssssssssncs.com'
,'port' = '3306'
,'username' = 'read-bigdata'
,'password' = 'aaVxxxxx0E40'
,'server-time-zone' = 'UTC'
,'scan.incremental.snapshot.enabled' = 'true'
,'debezium.snapshot.mode'='latest-offset' ---或者key是scan.startup.mode,initial表示要历史数据,latest-offset表示不要历史数据
,'debezium.datetime.format.timestamp.zone'='UTC+8'
,'database-name' = 'order'
,'table-name' = 'goods_order_pay'
);
CREATE TABLE sink_order_mysql_goods_order_pay(
`id` bigint COMMENT '自增主键id'
, `uid` string COMMENT 'uid'
, `goods_order_uid` string COMMENT '订单uid'
, `trans_goods_order_uid` string COMMENT '转单时老订单uid'
, `trans_goods_order_change_uid` string COMMENT '转单时老订单变更单uid'
, `customer_uid` string COMMENT '客户uid'
, `customer_name` string COMMENT '客户姓名'
, `pay_order_no` string COMMENT '付款支付订单uid'
, `pay_status` bigint COMMENT '支付状态 1:待付款 2:付款审核 3:付款成功 4:付款取消'
, `pay_type` bigint COMMENT '付款单类型 1:支付 2:资金池抵扣 3:转单抵扣'
, `pay_type_detail` bigint COMMENT '付款方式'
, `pay_amount` bigint COMMENT '应付金额'
, `real_amount` bigint COMMENT '实际付款金额'
, `pay_time` timestamp(3) COMMENT '支付时间'
, `pay_sucs_time` timestamp(3) COMMENT '支付成功时间'
, `pay_audit_time` timestamp(3) COMMENT '支付审核时间'
, `pay_fail_time` timestamp(3) COMMENT '支付失败时间'
, `apply_uid` string COMMENT '申请人'
, `apply_name` string COMMENT '申请人'
, `examine_uid` string COMMENT '审核人'
, `examine_name` string COMMENT '审核人'
, `examine_time` timestamp(3) COMMENT '审核时间'
, `voucher_pics` string COMMENT '付款凭证图片地址'
, `remark` string COMMENT '备注'
, `status` bigint COMMENT '是否删除(1.否,2.是)'
, `create_time` timestamp(3) COMMENT '创建时间'
, `update_time` timestamp(3) COMMENT '更新时间'
, `belongs_bank` string COMMENT '所属银行'
, `bank_no` string COMMENT '银行卡号'
, `company_pay_time` timestamp(3) COMMENT '公对公转账时间'
,PRIMARY KEY (id) NOT ENFORCED
) COMMENT '付款单表'
WITH (
'connector' = 'hudi'
, 'path' = 'hdfs://cluster1/data/bizdata/cdc/mysql/order/goods_order_pay' ---路径会自动创建
, 'hoodie.datasource.write.recordkey.field' = 'id' -- 主键
, 'write.precombine.field' = 'update_time' -- 相同的键值时,取此字段最大值,默认ts字段
, 'read.streaming.skip_compaction' = 'true' -- 避免重复消费问题
, 'write.bucket_assign.tasks' = '2' --并发写的 bucekt 数
, 'write.tasks' = '2'
, 'compaction.tasks' = '1'
, 'write.operation' = 'upsert' --UPSERT(插入更新)\INSERT(插入)\BULK_INSERT(批插入)(upsert性能会低些,不适合埋点上报)
, 'write.rate.limit' = '20000' -- 限制每秒多少条
, 'table.type' = 'COPY_ON_WRITE' -- 默认COPY_ON_WRITE ,经测试MERGE_ON_READ模式的压缩有问题,不会在指定次数和时间压缩,容易在执行离线任务时漏数据(在埋点上报环节可以用,因为上报的数据是连续的)。
, 'compaction.async.enabled' = 'true' -- 在线压缩
, 'compaction.trigger.strategy' = 'num_or_time' -- 按次数压缩
, 'compaction.delta_commits' = '20' -- 默认为5
, 'compaction.delta_seconds' = '60' -- 默认为1小时
, 'hive_sync.enable' = 'true' -- 启用hive同步
, 'hive_sync.mode' = 'hms' -- 启用hive hms同步,默认jdbc
, '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.table' = 'order_mysql_goods_order_pay' -- required, hive 新建的表名 会自动同步hudi的表结构和数据到hive
, 'hive_sync.db' = 'cdc_ods' -- required, hive 新建的数据库名
, 'hive_sync.username' = 'hive' -- required, HMS 用户名
, 'hive_sync.password' = '123456' -- required, HMS 密码
, 'hive_sync.skip_ro_suffix' = 'true' -- 去除ro后缀
);
---------- 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;
```
### 作业提交检查
**SQL逻辑语法校验**

**获取JobPlan**

**Flink Web UI查看作业**

**查看是否同步到hive**

**运维中心查看JOB 提交状态**

**注意事项:**
如果拉去了新代码,远程调试环境一定要检查一遍,以防各种报错。
docs/zh-CN/extend/datasource.md
View file @
55a2b754
## 扩展 Metadata
Dinky数据源遵循SPI,可随意扩展所需要的数据源。数据源扩展可在dlink-metadata模块中进行可插拔式扩展。现已经支持的数据源包括如下:
遵循SPI。
-
MySQL
\ No newline at end of file
-
Oracle
-
SQLServer
-
PostGreSQL
-
Phoenix
-
Doris
-
ClickHouse
使用以上数据源,请查阅注册中心
[
数据源管理
](
/zh-CN/administrator-guide/register_center/warning.md
)
,配置数据源连接
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment