基于spring-boot的kettle調(diào)度

大家好,我是帥氣小伙暮蹂,由于最近公司項(xiàng)目輾轉(zhuǎn)大數(shù)據(jù)链患,需要做數(shù)據(jù)抽取的工作,kettle是目前比較成熟的ETL工具调限,而傳統(tǒng)的kettle客戶端在任務(wù)調(diào)度這方面沒有實(shí)現(xiàn),于是在網(wǎng)上尋找開源的kettle調(diào)度項(xiàng)目误澳。

kettle-manager
專門為kettle這款優(yōu)秀的ETL工具開發(fā)的web端管理工具耻矮。貌似源碼跑起來比較費(fèi)勁,各種缺包忆谓,于是我為大家專門整理了一下這個(gè)項(xiàng)目裆装。全maven管理的
https://github.com/konglinghai123/kettle
如果想學(xué)習(xí)kettle的可以用我的github項(xiàng)目運(yùn)行,畢竟我在群里天天發(fā)現(xiàn)都有人因?yàn)闊o法運(yùn)行項(xiàng)目而提問倡缠。

kettle的集成

由于kettle-manager是一個(gè)完整的web項(xiàng)目哨免,功能也比較多,但是實(shí)際應(yīng)用中毡琉,只需用到幾個(gè)關(guān)鍵的點(diǎn)铁瞒,就能夠?qū)崿F(xiàn)kettle的web調(diào)度妙色。因此我們需要把kettle的調(diào)度從項(xiàng)目中分離出來桅滋,這樣才能夠更好地集成到自己的項(xiàng)目中去。于是我覺得將它抽出來身辨,基于spring-boot丐谋,具體的業(yè)務(wù)也分離出來,kettle作為一個(gè)組件煌珊。

renren-kettle

項(xiàng)目說明

  • renren_kettle是修改了kettle-manager的源碼的項(xiàng)目号俐,由于馬老師的項(xiàng)目基于EVOA,不便于系統(tǒng)的集成定庵,所以將部分重要功能轉(zhuǎn)接到spring-boot吏饿,
    具體操作kettle的sql仍然是beetl的,具體的代碼帶 kettle 這個(gè)模塊蔬浙,而其他業(yè)務(wù)代碼你可以選擇mybatis去實(shí)現(xiàn)猪落。
  • renren_kettle是搭建在renren_fast的基礎(chǔ)上的,這個(gè)框架如何使用畴博,請(qǐng)看這個(gè)開源項(xiàng)目的文檔

項(xiàng)目實(shí)現(xiàn)功能

  • 作業(yè)的列表(非實(shí)時(shí))笨忌,啟動(dòng),停止俱病,終結(jié)官疲,刪除袱结,結(jié)束 (VJobController)
  • 基于websocket的實(shí)時(shí)日志 (KettleLogListener)
  • 前端代碼,忙著找工作,沒有實(shí)現(xiàn),請(qǐng)各位自行完善

項(xiàng)目結(jié)構(gòu)

renren-fast
├─doc  項(xiàng)目SQL語句
│
├─kettle 馬老師的 kettle api調(diào)用都在這里
├─common 公共模塊
│  ├─aspect 系統(tǒng)日志
│  ├─exception 異常處理
│  ├─validator 后臺(tái)校驗(yàn)
│  └─xss XSS過濾
│ 
├─config 配置信息
│ 
├─modules 功能模塊
│  ├─api API接口模塊(APP調(diào)用)
│  ├─job 定時(shí)任務(wù)模塊
│  ├─kettle kettle相關(guān)的業(yè)務(wù)
│  ├─oss 文件服務(wù)模塊
│  └─sys 權(quán)限模塊
│ 
├─RenrenApplication 項(xiàng)目啟動(dòng)類
│  
├──resources 
│  ├─mapper SQL對(duì)應(yīng)的XML文件
│  ├─static 第三方庫途凫、插件等靜態(tài)資源
│  └─views  項(xiàng)目靜態(tài)頁面


實(shí)時(shí)websocket的接入例子

<script type="text/javascript">
    var websocket = null;
    $(document).ready(function(){
        //判斷當(dāng)前瀏覽器是否支持WebSocket
        if('WebSocket' in window){
            //${path} 是jsp的標(biāo)簽
            websocket = new WebSocket("ws://${path}/kettle/log");
        }
        else{
            alert('Not support websocket')
        }
        //連接發(fā)生錯(cuò)誤的回調(diào)方法
        websocket.onerror = function(){
            setMessageInnerHTML("error");
        };

        //連接成功建立的回調(diào)方法
        websocket.onopen = function(event){
            var message = $("#jobId").val()+"-"+"open";
            websocket.send(message);

        }

        //接收到消息的回調(diào)方法
        websocket.onmessage = function(event){
            setMessageInnerHTML(event.data);
        }

        //連接關(guān)閉的回調(diào)方法
        websocket.onclose = function(){
            closeWebSocket();
        }

        //監(jiān)聽窗口關(guān)閉事件垢夹,當(dāng)窗口關(guān)閉時(shí),主動(dòng)去關(guān)閉websocket連接维费,防止連接還沒斷開就關(guān)閉窗口棚饵,server端會(huì)拋異常。
        window.onbeforeunload = function(){
            websocket.close();
        }

    });

    //關(guān)閉連接
    function closeWebSocket(){
        websocket.close();
    }

    //將消息顯示在網(wǎng)頁上
    function setMessageInnerHTML(innerHTML){
        document.getElementById('message').innerHTML += innerHTML +"\r\n"+"***********************************************************************>"+"\r\n";
    }

    function removeAll() {
        $("#message").html("");
    }
</script>


部署指南

  • doc有2個(gè)數(shù)據(jù)庫
    kettle.sql (kettle 5.4的資源庫)掩完,有一張表是自己加的噪漾,CrTask-定時(shí)任務(wù)表,這里面有一條固定的記錄且蓬,用于定時(shí)獲取kettle的日志欣硼,然后發(fā)到websocket。
    renren_fast.sql (renren 開源項(xiàng)目的業(yè)務(wù)數(shù)據(jù)庫)

  • kettle的配置文件 resources/kettle.properties

  • renren項(xiàng)目的配置都在application.yml

如需加入項(xiàng)目恶阴,請(qǐng)郵件823894716@qq.com

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末诈胜,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子冯事,更是在濱河造成了極大的恐慌焦匈,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,546評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件昵仅,死亡現(xiàn)場(chǎng)離奇詭異缓熟,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)摔笤,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,224評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門够滑,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人吕世,你說我怎么就攤上這事彰触。” “怎么了命辖?”我有些...
    開封第一講書人閱讀 164,911評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵况毅,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我尔艇,道長(zhǎng)尔许,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,737評(píng)論 1 294
  • 正文 為了忘掉前任漓帚,我火速辦了婚禮母债,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己毡们,他們只是感情好迅皇,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,753評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著衙熔,像睡著了一般登颓。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上红氯,一...
    開封第一講書人閱讀 51,598評(píng)論 1 305
  • 那天框咙,我揣著相機(jī)與錄音,去河邊找鬼痢甘。 笑死喇嘱,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的塞栅。 我是一名探鬼主播者铜,決...
    沈念sama閱讀 40,338評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼放椰!你這毒婦竟也來了作烟?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,249評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤砾医,失蹤者是張志新(化名)和其女友劉穎拿撩,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體如蚜,經(jīng)...
    沈念sama閱讀 45,696評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡压恒,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,888評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了怖亭。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片涎显。...
    茶點(diǎn)故事閱讀 40,013評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖兴猩,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情早歇,我是刑警寧澤倾芝,帶...
    沈念sama閱讀 35,731評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站箭跳,受9級(jí)特大地震影響晨另,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜谱姓,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,348評(píng)論 3 330
  • 文/蒙蒙 一借尿、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦路翻、人聲如沸狈癞。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,929評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽蝶桶。三九已至,卻和暖如春掉冶,著一層夾襖步出監(jiān)牢的瞬間真竖,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,048評(píng)論 1 270
  • 我被黑心中介騙來泰國(guó)打工厌小, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留恢共,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,203評(píng)論 3 370
  • 正文 我出身青樓璧亚,卻偏偏與公主長(zhǎng)得像旁振,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子涨岁,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,960評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,147評(píng)論 25 707
  • Awesome DotNet拐袜,這又是一個(gè) Awesome XXX 系列的資源整理,由 quozd 發(fā)起和維護(hù)梢薪。內(nèi)容...
    小明yz閱讀 3,695評(píng)論 0 47
  • 久居老家平添憂蹬铺, 殘雪漸溶氣未休。 登臨南望暮雲(yún)愁秉撇, 日落寒重?zé)o人疼甜攀。 天涯久做羈客旅, 回首何日能重逢琐馆。
    一路花香2閱讀 195評(píng)論 0 0
  • 我與“網(wǎng)絡(luò)研修”共成長(zhǎng)鄭標(biāo)工作室 張?jiān)赎P(guān)于網(wǎng)絡(luò)研修规阀,我更想用一些時(shí)間節(jié)點(diǎn)來記錄它的成長(zhǎng),以及我的成長(zhǎng)瘦麸。它就像一串珍...
    璐璐loveDD閱讀 836評(píng)論 0 0
  • 解決方案 在默認(rèn)情況下滋饲,Docker鏡像和容器的默認(rèn)存放位置為:/var/lib/docker 一般根下分區(qū)我們不...
    garyond閱讀 16,561評(píng)論 4 3