# etl-designer-client
**Repository Path**: wc521521/etl-designer-client
## Basic Information
- **Project Name**: etl-designer-client
- **Description**: 基于kettle二次开发,涵盖关系型数据库、网络服务、NoSQL数据库,将图形化设计由C/S架构升级为B/S架构,脱离客户端束缚,随时随地修改脚本,添加定时调度、项目管理、版本控制、发布回滚、日志追踪、性能监控等丰富实用的功能,支持MySQL、Oracle等多种关系型数据库在内的多种数据库。
新增BI图表设计功能,包括模型(数据库表)定义,模型脚本自动创建,图表设计,布局设计,大屏展示
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 19
- **Created**: 2025-07-29
- **Last Updated**: 2025-07-30
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# ETL CLIENT (client)
etl client
## Install the dependencies
```bash
yarn
# or
npm install
```
### Start the app in development mode (hot-code reloading, error reporting, etc.)
```bash
quasar dev
```
### Lint the files
```bash
yarn lint
# or
npm run lint
```
### Build the app for production
```bash
quasar build
```
### Customize the configuration
See [Configuring quasar.conf.js](https://v1.quasar.dev/quasar-cli/quasar-conf-js).
# Nxin Data Integration #
基于Pentaho Data Integration产品(kettle)二次开发,将图形化设计由C/S架构升级为B/S架构,重写50余种常用组件
支持关系型数据库、NoSQL数据库、网络服务、文件操作等,可视化设计实现数据或流的提取、转换、加载全流程化处理
支持数据看板全生命周期管理,看板模型元数据在线设计、报表图形模板在线设计、报表数据实时更新、报表布局自由排版
## 工程结构
* **interface:**
提供web-server与worker集群通信所依赖的数据结构
* **kettle-export:**
依赖Pentaho Data Integration的jar包及数据库驱动包
* **web-server:**
在线设计服务集群
* **worker:**
任务调度集群,实现ETL执行及其他定时任务
* **client:**
前端客户端页面,前端工程地址:https://gitee.com/team-designer/etl-designer-client
构建及部署
--------------
系统使用MySql数据库,数据库初始化执行init.sql及quartz.sql
Java工程使用Maven命令构建
前端工程使用Nodejs命令构建
## 环境要求
* Maven, version 3+
* Java JDK 8
## 编译
后端基于Maven的工程结构,使用下面命令编译
```
$ mvn clean install -DskipTests
```
前端基于Nodejs的工程结构,使用quasar(https://quasar.dev)命令编译
```
$ quasar build
```
开发环境使用如下命令编译
```
$ quasar dev
```
## 功能简介
### 基础数据
#### 工程管理
一切业务处理的顶端入口,ETL脚本的设计、发布、回滚等,数据看板相关业务的设计等都需要先有工程模块,
同时工程模块可绑定使用者,用户经绑定后可以看到同模块下的数据源、服务器信息、ETL脚本数据及数据看板信息
#### 数据源管理
所有ETL运行时依赖的数据库、数据看板依赖的数据库均在本模块下维护,系统自带支持MySql,Oracle,PostgreSql,支持用户扩展其他数据库产品
#### FTP服务器管理
所有ETL运行时依赖的FTP服务器,均在本模块下维护,例如导出的excel、csv数据等
#### 字典管理
系统运行时依赖的配置数据
### 系统管理
#### 权限申请
用户通过权限申请功能,可加入其他工程模块,访问工程下的敏感资源(包含数据源、服务器、报表等,注:任何工程下的敏感资源,需再次申请资源的操作权限),权限申请有过期限制,超期后,权限会自动回收
#### 权限管理
资源所有者可主动添加资源的访问者及访问级别(读/读写)
#### 用户管理
新增及维护用户
### ETL管理
#### 在线设计
用户通过可视化设计模块,完成ETL转换及任务的在线开发及调试,并将脚本更新为可发布状态
##### 目录管理
通过创建目录,将同意业务的多个脚本文件聚合在一起
##### Trans(转换)设计
数据转换的核心组件,用于对数据进行清洗、转换和整合
是ETL工具的核心功能模块,通过定义多个步骤(Step)实现复杂的数据处理流程
##### Job(任务)设计
用于定义整个数据处理流程的高级组件,包含多个作业项(Job Entry),可控制转换的执行逻辑和调度任务
通过图形化界面整合多个转换步骤(Transformation),支持定时执行、日志监控等功能,实现复杂的数据处理流程自动化
#### 脚本调试
通过调试日志,可以发现并处理设计过程中的缺陷,为数据处理提供质量保障
#### 脚本发布
用户通过该模块,可将“可发布“状态的脚本完成发布操作,发布动作完成后,【worker】工程会根据设定的执行频率定时执行ETL过程
### 任务管理
通过采集【worker】集群执行的任务清单,按照批或流分类进行管理
#### 批处理任务管理
任务被【worker】工程调度执行后,用户可在该模块查看任务的执行情况,包括执行日志,调度时间等信息,并可在该模块对任务操作暂停、下线等
#### 流处理任务管理
该模块功能与【批处理任务管理】相同,唯一区别为该模块管理的为实时数据处理,即任务进程为阻塞式执行,实时等待处理通过消息队列传输的数据
#### 任务子进程管理
任务执行出现CPU或内存异常,需要终止任务时,可在该模块进行操作,该操作仅终止正在执行的当次任务,不影响后续任务的调度
### BI分析
#### 报表图形
集成Apache Echarts组件,提供饼状图、柱状图、折线图、散点图等图形模板,为不同业务提供图形支持
#### 模板设计
使用freemarker脚本语言,生成echarts图形所必须的配置项
#### 预览
在样例数据处填入演示数据,完成图形预览操作,方便报表设计套用时,直观的展示图形
#### 模型管理
提供模型元数据维护及模型转成数据库表的功能,通过规范的元数据设计,降低用户进行数据统计分析时的难度
模型转换为数据库表,生成DDL:
#### 报表设计
通过该模块,用户可将统计模型通过合适的图形模板展现出来,并可在线预览
在线预览:
#### 布局管理
通过该模块,用户可任意选择多个报表自由组合拼装成数据看板页面,并通过生成的URL在线阅览
用户可自由缩放、拖拽报表大小及位置,最终组合成完成的数据看板
#### 数据看板
访问由布局管理模块生成的看板URL,可实时查看报表数据
## 技术架构图

### 二次开发
#### 开发依赖
- redis
缓存找回密码的动态验证码
为web-server与worker通信提供管道服务
- ftp服务
需连接ftp服务器,用于存放etl运行的脚本,worker执行脚本时,会从ftp服务器拉取最新文件
windows开启ftp/sftp功能:安装openSSH工具,下载地址:https://github.com/powershell/win32-openssh/releases 或https://pan.baidu.com/s/12TCh9a3YevUOpVLVrx2VWg?pwd=65xh
macos开启ftp/sftp功能:https://blog.csdn.net/King_zj/article/details/125991856
#### 数据库支持
- 在字典管理中,找到数据源字典项,将需要支持的数据源在此进行维护
- 在kettle-export工程引入驱动包
通过以上两步即可完成新增数据源的支持
#### KETTLE组件
- web-server工程,在com.nxin.framework.converter.kettle包下,根据新增组件的类型,选择job或transform目录添加新的插件责任链,并在TransformConvertFactory.java或JobConvertFactory.java类中进行注册
- client工程,在component\etl目录下,根据新增组件的类型,选择job或transform目录添加新的插件表单vue文件,并在pages\etl\CanvasCom.vue文件中引入该vue文件,并在components集合中注册该插件
## 联系方式
- 邮箱
jesse.18@163.com
- 微信
## 初始登录演示账号
用户名: jesse.18@163.com
密码: 123456