大数据基础组件程序员Tool

基于spring-boot的kettle调度

2018-03-02  本文已影响1393人  帅气小伙

大家好,我是帅气小伙,由于最近公司项目辗转大数据,需要做数据抽取的工作,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-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的接入例子

<script type="text/javascript">
    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("");
    }
</script>

部署指南

如需加入项目,请邮件823894716@qq.com

上一篇下一篇

猜你喜欢

热点阅读