# jingwei **Repository Path**: Lmaxjava/jingwei ## Basic Information - **Project Name**: jingwei - **Description**: 精卫大数据平台 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 9 - **Created**: 2021-08-06 - **Last Updated**: 2024-07-31 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 1. 精卫大数据平台介绍 -------------------------- 相传精卫本是炎帝神农氏的小女儿,名唤女娃,一日女娃到东海游玩,溺于水中。死后其不平的精灵化作花脑袋、白嘴壳、红色爪子的一种神鸟,每天从山上衔来石头和草木,投入东海,然后发出“精卫、精卫”的悲鸣,好像在呼唤着自己。 衔石填海的精卫,以自己微小的力量,与不公的命运做抗争,以精卫自喻,也希望自己有这种不畏艰难,百折不挠的精神。 精卫大数据平台的项目起源于网上开源的web版kettle,在这里我首先致敬下原作者。 - 精卫大数据平台,目前的功能仅仅是一个ETL系统,它创造性的将平台构建为B/S架构的ETL模型设计以及集成用户专业调度管理的分布式ETL建模运维系统。 - 系统分为七大模块:模型、平台、任务、定时调度、日志、节点、用户. - 模型模块进行ETL模型开发,在B/S系统中用拖拽的方式设计数据流逻辑。 - 其他六个模块为用户专业调度管理系统,更多是面向业务运维人员,关注于整个流程的执行情况和数据的导入导出细节信息,以及对任务的综合调度。完全支持集群和单机两种运行模式。并通过用户权限的管控让平台的资源分配变得更加专业。 ## 2. 模块展示 -------------------------- - **平台** 展示平台概况 ![](https://git.oschina.net/uploads/images/2017/0608/145540_063bca4f_1097305.png) - **模型设计** 进行ETL模型设计调试 ![](https://git.oschina.net/uploads/images/2017/0607/161330_3d1a33bc_1097305.png) - **任务管理** 对ETL任务进行综合的调度管理以及监控 ![](https://git.oschina.net/uploads/images/2017/0613/142406_c1d1f25c_1097305.png) ![](https://git.oschina.net/uploads/images/2017/0613/114021_0c347905_1097305.png) - **日志** ETL任务的执行日志模块 ![](https://git.oschina.net/uploads/images/2017/0613/114003_eb22068b_1097305.png) - **节点管理** ETL任务的执行引擎节点管理 ![](https://git.oschina.net/uploads/images/2017/0613/113944_7213e6c1_1097305.png) - **定时调度** 定时ETL任务管理 ![](https://git.oschina.net/uploads/images/2017/0613/144118_a5e252e8_1097305.png) - **用户管理** 精卫平台的用户权限管理系统 ![](https://git.oschina.net/uploads/images/2017/0613/141826_599b8f09_1097305.png) ## 3. 精卫大数据平台的技术实现 ------------------------- - 精卫ETL是基于流行的ETL工具kettle开发的B/S架构版本的ETL产品,所使用的底层引擎是调用kettle的api - ETL任务以元数据的方式储存在资源库里面,精卫通过读取资源库元数据,对元数据进行解析后可将ETL任务通过MXGraph展现至B/S架构的精卫系统中,实现了在B/S架构上面开发ETL任务的功能,属于精卫系统的模型开发模块功能. - 通过对元数据的操作可以对ETL任务进行综合性的管理以及监控,通过Quartz定时框架可以实现对任务的定时调度 - 根据kettle执行引擎可以部署多台服务器节点的特性,再通过精卫系统跟远程的节点发送HTTP请求,可以实现在多节点上分布式的执行ETL任务,并可以实现实时监控ETL的任务运行情况 - 基于高度自由化的B/S框架,可以嵌入多元化的需求,于是我们在精卫中添加了用户管理模块,通过用户权限的概念对所有的ETL任务进行人性化的运维管理 - 整个项目使用Maven进行构建管理,多模块之间低耦合,高拓展性 ![](https://git.oschina.net/uploads/images/2017/0613/110502_61484bf4_1097305.png) ## 4. 精卫大数据平台的未来展望 -------------------------- - 随着spark、flink等大数据的发展,kettle的不足慢慢展现,未来,我不仅仅希望它只是一个ETL工具,而是可以与这些大数据组件做整合,以kettle的设计思想,融合spark和flink的功能,做成一个真正的大数据平台。 ## 5. webKettleETL整体功能流程 -------------------------- ![](https://git.oschina.net/uploads/images/2017/0613/110741_c24e49f7_1097305.png) ![](https://git.oschina.net/uploads/images/2017/0825/094017_0fbeada5_1097305.png) ## 6. 技术选型 -------------------------- 技术在发展,老的技术栈慢慢落伍且使用不便,新版精卫大数据平台,将摒弃老的技术栈,选用更具优势的开发组件 老的技术栈: - 核心框架:Spring Framework - 任务调度:Spring + Quartz - 持久层框架:MyBatis - 会话管理:Spring-Session - 日志管理:Log4j - 前端框架:EXTJS3.4+MXGraph2.3 - 项目管理: Maven3.2.3 - ETL底层引擎:kettle7.0 新的技术栈 - 核心框架:Spring Boot 1.5.4 - 任务调度:Spring + Quartz - 持久层框架:MyBatis - 会话管理:Spring-Session - 日志管理:Log4j - 前端框架:EXTJS3.4+MXGraph2.3 - 项目管理: Maven3.2.3 - ETL底层引擎:kettle7.0 ## 7.说明 -------------------------- 1. 本项目为spring boot项目,一键启动,部署简单 2. 项目结构做了简化调整,包路径结构进行了统一 3. 数据库暂时只支持MySQL,本系统在MySQL5.5.20版本上测试,其他版本尚未测试 4. 本例使用Maven3.2.3构建,启动服务器后访问http://localhost:8080/ 5. 支持IE9及以上、FireFox等浏览器,IE6-IE8需要做特殊化处理,其他浏览器未测试 6. jdk版本需要1.8以上 ## 8. 许可证 -------------------------- Apache2