基于spring 您所在的位置:网站首页 kettle框架 基于spring

基于spring

#基于spring| 来源: 网络整理| 查看: 265

大家好,我是帅气小伙,由于最近公司项目辗转大数据,需要做数据抽取的工作,kettle是目前比较成熟的ETL工具,而传统的kettle客户端在任务调度这方面没有实现,于是在网上寻找开源的kettle调度项目。

kettle-manager 专门为kettle这款优秀的ETL工具开发的web端管理工具。貌似源码跑起来比较费劲,各种缺包,于是我为大家专门整理了一下这个项目。全maven管理的 https://github.com/konglinghai123/kettle 如果想学习kettle的可以用我的github项目运行,毕竟我在群里天天发现都有人因为无法运行项目而提问。

kettle的集成

由于kettle-manager是一个完整的web项目,功能也比较多,但是实际应用中,只需用到几个关键的点,就能够实现kettle的web调度。因此我们需要把kettle的调度从项目中分离出来,这样才能够更好地集成到自己的项目中去。于是我觉得将它抽出来,基于spring-boot,具体的业务也分离出来,kettle作为一个组件。

renren-kettle

项目说明

renren_kettle是修改了kettle-manager的源码的项目,由于马老师的项目基于EVOA,不便于系统的集成,所以将部分重要功能转接到spring-boot, 具体操作kettle的sql仍然是beetl的,具体的代码带 kettle 这个模块,而其他业务代码你可以选择mybatis去实现。 renren_kettle是搭建在renren_fast的基础上的,这个框架如何使用,请看这个开源项目的文档

项目实现功能

作业的列表(非实时),启动,停止,终结,删除,结束 (VJobController) 基于websocket的实时日志 (KettleLogListener) 前端代码,忙着找工作,没有实现,请各位自行完善

项目结构

renren-fast ├─doc 项目SQL语句 │ ├─kettle 马老师的 kettle api调用都在这里 ├─common 公共模块 │ ├─aspect 系统日志 │ ├─exception 异常处理 │ ├─validator 后台校验 │ └─xss XSS过滤 │ ├─config 配置信息 │ ├─modules 功能模块 │ ├─api API接口模块(APP调用) │ ├─job 定时任务模块 │ ├─kettle kettle相关的业务 │ ├─oss 文件服务模块 │ └─sys 权限模块 │ ├─RenrenApplication 项目启动类 │ ├──resources │ ├─mapper SQL对应的XML文件 │ ├─static 第三方库、插件等静态资源 │ └─views 项目静态页面

实时websocket的接入例子

var websocket = null; $(document).ready(function(){ //判断当前浏览器是否支持WebSocket if('WebSocket' in window){ //${path} 是jsp的标签 websocket = new WebSocket("ws://${path}/kettle/log"); } else{ alert('Not support websocket') } //连接发生错误的回调方法 websocket.onerror = function(){ setMessageInnerHTML("error"); }; //连接成功建立的回调方法 websocket.onopen = function(event){ var message = $("#jobId").val()+"-"+"open"; websocket.send(message); } //接收到消息的回调方法 websocket.onmessage = function(event){ setMessageInnerHTML(event.data); } //连接关闭的回调方法 websocket.onclose = function(){ closeWebSocket(); } //监听窗口关闭事件,当窗口关闭时,主动去关闭websocket连接,防止连接还没断开就关闭窗口,server端会抛异常。 window.onbeforeunload = function(){ websocket.close(); } }); //关闭连接 function closeWebSocket(){ websocket.close(); } //将消息显示在网页上 function setMessageInnerHTML(innerHTML){ document.getElementById('message').innerHTML += innerHTML +"\r\n"+"***********************************************************************>"+"\r\n"; } function removeAll() { $("#message").html(""); }

部署指南

doc有2个数据库 kettle.sql (kettle 5.4的资源库),有一张表是自己加的,CrTask-定时任务表,这里面有一条固定的记录,用于定时获取kettle的日志,然后发到websocket。 renren_fast.sql (renren 开源项目的业务数据库)

kettle的配置文件 resources/kettle.properties

renren项目的配置都在application.yml

如需加入项目,请邮件[email protected]



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有