# DatalinkX **Repository Path**: zhangwangang/datalinkx ## Basic Information - **Project Name**: DatalinkX - **Description**: 🔥🔥DatalinkX异构数据源之间的数据同步系统,支持海量数据的增量或全量同步,同时支持HTTP、Oracle、MySQL、ES等数据源之间的数据流转,支持中间transform算子如SQL算子、大模型算子,底层依赖Flink、Seatunnel引擎,提供流转任务管理、任务级联配置、任务日志采集等功能🔥🔥 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 177 - **Created**: 2025-04-13 - **Last Updated**: 2025-04-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README  ## DatalinkX Stars [](https://starchart.cc/SplitfireUptown/datalinkx)
[](https://gitcode.com/m0_37817220/datalinkx)
  
  
  
  
  
  
  
  
  
  
  
  
## 异构数据源同步服务DatalinkX介绍
 **核心功能** :在不同的异构数据源中进行数据同步,对同步任务进行管理和维护
 **意义**:只要公司规模较大,部门与部门之间有数据协作都应该有类似DatalinkX的项目,比如爬虫组的同事爬下来数据要定时同步到数仓组负责的库下。同步服务会集中管理同步任务,收拢同步日志、提高内部工作效率。

## 项目特性
- **简单易用**:通过Web页面快速创建数据源、同步任务,操作简单,一分钟上手
- **定时触发**:对接xxl-job定时,设置cron表达式触发同步任务
- **配置化任务对接**:将数据库信息、任务详情界面化配置
- **高性能同步**:使用高性能流式flink计算引擎   
- **容器化部署**:支持docker部署
## 项目地址
| 项目   | GITEE                                       | GITHUB                                          | GITCODE                                       |
|------|---------------------------------------------|-------------------------------------------------|-----------------------------------------------|
| 项目地址 | [GITEE](https://gitee.com/atuptown/datalinkx)  | [GITHUB](https://github.com/SplitfireUptown/datalinkx)    | [GITCODE](https://gitcode.com/m0_37817220/datalinkx) |
## 项目技术栈
| 依赖					            | 版本					         |描述
|--------------------|-----------------|-------
| Spring Boot			     | 2.7.15					      |项目脚手架
| SpringData JPA			  | 2.7.15					      |持久层框架
| MySQL					         | 8.0					        |DB数据库
| ElasticSearch					 | 7.9.3					      |向量库、支持流转的数据库
| Redis					         | 5.0 ↑					      |缓存数据库
| RedisStream					   | 5.0 ↑					      |消息中间件
| ChunJun(原FlinkX)		 | 1.10_release			 |袋鼠云开源数据同步框架
| Seatunnel		        | 2.3.8			        |apache开源数据同步框架
| Flink					         | 1.10.3					     |分布式大数据计算引擎
| Ollama					        | x					          |大模型执行框架
| Xxl-job				        | 2.3.0					      |分布式调度框架
| OpenFeign				      | 3.1.9					      |RPC通信服务
| Jackson				        | 2.11.4					     |反序列化框架
| Maven					         | 3.6.X					      |Java包管理
| Vue.js					        | 2.X					        |前端框架
| AntDesignUI			     | 3.0.4					      |前端UI
| Docker					        | 					           |容器化部署
## 启动姿势
#### 中间件
执行 `docker compose -p datalinkx up -d` 命令将各组件启动
##### 手动搭建组件:
xxl-job: https://github.com/xuxueli/xxl-job/archive/refs/tags/2.3.0.zip
纯Java项目,可clone代码后打包成jar包启动,xxl-job依赖mysql,需要修改对应数据库地址配置,表结构在/xxl-job-2.3.0/doc/db/tables_xxl_job.sql,导入mysql即可。
flink:https://archive.apache.org/dist/flink/flink-1.10.3/
选择flink-1.10.3-bin-scala_2.12.tgz下载,解压进入bin目录执行./start-cluster.sh,首次运行默认只有一个任务slot,访问http://localhost:8081 进去flink后台页面。
seatunnel: 
进入seatunnel/bin目录直接执行
#### DB层
执行  /datalinkx-server/src/main/resources/db.sql
#### 后端
1. 运行`datalinkx-server`与`datalinkx-job`模块
   1. **datalinkx-server**与front交互,依赖mysql、redis
   2. **datalinkx-job**负责提交、维护任务的生命周期,依赖xxl-job、flink 
      1. 服务启动后会默认使用netty启动`${xxl.job.executor.port}` 负责监听xxl-job的任务事件 
      2. 任务执行详细信息通过datalinkx-client的rpc能力访问`${client.dataserver}`
      3. 如果更改了datalinkx-server端口需要同步更改datalinkx-job配置项`${client.dataserver}`。
      4. `${flinkx.path}`配置flinkx模块的路径
   3. 遇到依赖问题执行 ```mvn clean -U ```
2. flinkx模块为单独的项目 
   1. 需要手动执行`mvn clean install -U -Dmaven.test.skip=true -Dcheckstyle.skip=true`将插件打包 
   2. 打包后配置好flinkx/flinkconf中flink的地址`jobmanager.rpc.address:`和端口`rest.port`即可
#### 前端
`yarn install && export NODE_OPTIONS=--openssl-legacy-provider && yarn run serve`
## 使用姿势
1. 登录系统,默认密码admin、admin登录,没有权限相关控制

2. 数据源管理,配置数据流转数据源信息

3. 任务管理
   1. 批式任务:配置from_db与to_db构造job_graph
   
   2. 批式任务:配置from_db与to_db构造job_graph,仅支持kafka
   
   3. 计算任务: 配置画布信息,支持transform算子操作
   
5. 任务级联配置

6. 任务血缘

6. 任务调度

7. 任务执行

## 商业版核心功能差异
| 功能				                    | datalinkx					  | datalinkx pro
|---------------------------|-----------------|-------
| 支持mysql读写			              | 	✔️					        | ✔️
| 支持oracle读写			             | ✔️					         | ✔️
| 支持elasticsearch读写					    | ✔️					         |✔️
| 支持http读					              | ✔️					         |✔️
| 支持redis写					             | ✔️					           |✔️
| 支持operator计算任务					       | ✔️					           |✔️
| 适配flink、seatunnel多引擎					 | ✔️					           |✔️
| 支持clickhouse读写					       | ❌					           |✔️
| 支持mysqlcdc读写					         | ❌					           |✔️
| 告警中心		                    | ❌			 |✔️
| 数据源新插件定制					             | ❌				      |✔️
| UI优化					                 | ❌				      |✔️
| 支持定制化需求					              | ❌				      |✔️
## 项目文档
[细致文档带你吃透DatalinkX](https://note.youdao.com/s/a9ltzlc1)