Giter Site home page Giter Site logo

joeybling / webkettle Goto Github PK

View Code? Open in Web Editor NEW
545.0 40.0 262.0 9.52 MB

基于web版kettle开发的一套分布式综合调度,管理,ETL开发的用户专业版B/S架构工具

License: Apache License 2.0

Java 11.47% JavaScript 65.23% Batchfile 0.01% CSS 7.90% TSQL 15.40%
etl kettle quartz kettle-web extjs spring-mvc mysql

webkettle's Introduction

star fork webkettle交流群 LICENSE

欢迎相同爱好者加入一起维护此项目

webKettleETL产品介绍


  • webkettle平台,创造性的将平台构建为B/S架构的ETL模型设计以及集成用户专业调度管理的分布式ETL建模运维系统。
  • 系统分为七大模块:模型、平台、任务、定时调度、日志、节点、用户.
  • 模型模块进行ETL模型开发,在B/S系统中用拖拽的方式设计数据流逻辑。
  • 其他六个模块为用户专业调度管理系统,更多是面向业务运维人员,关注于整个流程的执行情况和数据的导入导出细节信息,以及对任务的综合调度。完全支持集群和单机两种运行模式。并通过用户权限的管控让平台的资源分配变得更加专业。

模块展示


  • 平台(展示平台概况)

  • 模型设计(进行ETL模型设计调试)

  • 任务管理(对ETL任务进行综合的调度管理以及监控)

  • 日志(ETL任务的执行日志模块)

  • 节点管理(ETL任务的执行引擎节点管理)

  • 定时调度(定时ETL任务管理)

  • 用户管理(平台的用户权限管理系统)

webKettleETL技术实现


  • 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进行构建管理,多模块之间低耦合,高拓展性

webKettleETL整体功能流程


技术选型


  • 核心框架:Spring Framework
  • 任务调度:Spring + Quartz
  • 持久层框架:MyBatis
  • 会话管理:Spring-Session
  • 日志管理:Log4j
  • 前端框架:EXTJS3.4+MXGraph2.3
  • 项目管理: Maven3.2.3
  • ETL底层引擎:kettle7.0

项目结构

项目结构图

启动说明


附加说明:启动Tomcat或其他服务器时,请设置路径为 /

  1. 本系统采用单资源库模式,数据源连接在dispatch-servlet.xml中配置,系统启动后就会读取该资源库
  2. 数据库脚本在项目的sql目录下
  3. 数据库暂时只支持MySQL,本系统在MySQL5.5.20版本上测试,其他版本尚未测试
  4. 本例使用Maven3.2.3构建,启动服务器后访问http://localhost:8080/
  5. 支持IE9及以上、FireFox等浏览器,IE6-IE8需要做特殊化处理,其他浏览器未测试
  6. jdk版本需要1.8以上
  7. 管理员账号密码:admin/admin

本地预览

mvn install
cd ./kettle-webapp
mvn clean tomcat7:run

编译部署

cd ./kettle-webapp
mvn clean tomcat7:deploy

许可证

LICENSE

webkettle's People

Contributors

joeybling avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

webkettle's Issues

关于8.0之后的OSGI插件怎么实例化

我们在使用kettle 插件的时候部分插件是osgi 实例化的,我们想直接registry.findPluginWithName 来实现实力话,普通插件可以,但是osgi 不可以,想问问你有什么建议

任务&转换远程执行报错

配好了节点信息:
image
也配置完了job和trans,本地执行都是好的,但是一选择远程执行直接报错:
image
image
image

应用运行假死

您好,问下有没有遇到,运行一段时间,然后再登陆就卡死了,感觉假死了,重启以后就可以了,不管是在linux上还是windows上都有这种情况。用probe监控了tomcat也看不出来原因,看起来还是正常运行,但是就是登陆不了,卡死!

代码好乱啊

Exception也不做一下自动处理, 好多地方没必要那么多的代码, 我整理了一上午了

长时间限制连接断开问题

就比如今天晚上是好的,但是等明天早上打开之后就会出现An error occured loading the directory tree from the repository↵↵Error comitting connection↵No operations allowed after connection closed

在Linux 运行老是报错,错误如下

org.pentaho.di.core.exception.KettleException:
Error connecting to the repository!

No repository exists on the specified connection.

To create a repository, select the Edit' button followed by the 'Create or upgrade' button.

原因是因为Linux 区别表名大小写,查询的时候找不到对应的表,需要修改msql的 my.cnf 文件,在 [mysqld] 下面添加:
lower_case_table_names=1
重启mysql,重启tomcat服务,就可以了

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.