一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

Kettle 4.2源碼分析第一講--Kettle 簡(jiǎn)介

 nacy2012 2014-11-13

Pentaho Data Integration(PDI)簡(jiǎn)介

1. PDI結(jié)構(gòu)簡(jiǎn)介

 

圖 1?1 PDI核心組件

  Spoon是構(gòu)建ETL Jobs和Transformations的工具。Spoon可以以拖拽的方式圖形化設(shè)計(jì),能夠通過(guò)spoon調(diào)用專用的數(shù)據(jù)集成引擎或者集群。

Data Integration Server是一個(gè)專用的ETL Server,它的主要功能有:

功能

描述

執(zhí)行

通過(guò)Pentaho Data Integration引擎執(zhí)行ETL的作業(yè)或轉(zhuǎn)換

安全性

管理用戶、角色或集成的安全性

內(nèi)容管理

提供一個(gè)集中的資源庫(kù),用來(lái)管理ETL的作業(yè)和轉(zhuǎn)換。資源庫(kù)包含所有內(nèi)容和特征的歷史版本。

時(shí)序安排

在spoon設(shè)計(jì)者環(huán)境中提供管理Data Integration Server上的活動(dòng)的時(shí)序和監(jiān)控的服務(wù)

  Enterprise Console提供了一個(gè)小型的客戶端,用于管理Pentaho Data Integration企業(yè)版的部署,包括企業(yè)版本的證書管理、監(jiān)控和控制遠(yuǎn)程Pentaho Data Integration服務(wù)器上的活動(dòng)、分析已登記的作業(yè)和轉(zhuǎn)換的動(dòng)態(tài)績(jī)效。

2. PDI的組成部分

名稱

描述

Spoon

通過(guò)圖形接口,用于編輯作業(yè)和轉(zhuǎn)換的桌面應(yīng)用。

Pan

一個(gè)獨(dú)立的命令行程序,用于執(zhí)行由Spoon編輯的轉(zhuǎn)換和作業(yè)。

Kitchen

一個(gè)獨(dú)立的命令行程序,用于執(zhí)行由Spoon編輯的作業(yè)。

Carte

Carte是一個(gè)輕量級(jí)的Web容器,用于建立專用、遠(yuǎn)程的ETL Server。

3. PDI的相關(guān)術(shù)語(yǔ)和基本概念

 

圖 1?2 PDI概念模型圖

  要了解Kettle的執(zhí)行分為兩個(gè)層次:Job和Transformation。兩個(gè)層次的最主要區(qū)別在于數(shù)據(jù)傳遞和運(yùn)行方式。

3.1.    Transformation(轉(zhuǎn)換)

  Transformation(轉(zhuǎn)換)是由一系列被稱之為step(步驟)的邏輯工作的網(wǎng)絡(luò)。轉(zhuǎn)換本質(zhì)上是數(shù)據(jù)流。下圖是一個(gè)轉(zhuǎn)換的例子,這個(gè)轉(zhuǎn)換從文本文件中讀取數(shù)據(jù),過(guò)濾,然后排序,最后將數(shù)據(jù)加載到數(shù)據(jù)庫(kù)。本質(zhì)上,轉(zhuǎn)換是一組圖形化的數(shù)據(jù)轉(zhuǎn)換配置的邏輯結(jié)構(gòu)。

 

  轉(zhuǎn)換的兩個(gè)相關(guān)的主要組成部分是step(步驟)和hops(節(jié)點(diǎn)連接)。

  轉(zhuǎn)換文件的擴(kuò)展名是.ktr。

3.2.    Steps(轉(zhuǎn)換)

  Steps(步驟)是轉(zhuǎn)換的建筑模塊,比如一個(gè)文本文件輸入或者一個(gè)表輸出就是一個(gè)步驟。在PDI中有140多個(gè)步驟,它們按不同功能進(jìn)行分類,比如輸入類、輸出類、腳本類等。每個(gè)步驟用于完成某種特定的功能,通過(guò)配置一系列的步驟就可以完成你所需要完成的任務(wù)。

3.3.    Hops(節(jié)點(diǎn)連接)

  Hops(節(jié)點(diǎn)連接)是數(shù)據(jù)的通道,用于連接兩個(gè)步驟,使得元數(shù)據(jù)從一個(gè)步驟傳遞到另一個(gè)步驟。在上圖所示的轉(zhuǎn)換中,它像似順序執(zhí)行發(fā)生的,但事實(shí)并非如此。節(jié)點(diǎn)連接決定了貫穿在步驟之間的數(shù)據(jù)流,步驟之間的順序不是轉(zhuǎn)換執(zhí)行的順序。當(dāng)執(zhí)行一個(gè)轉(zhuǎn)換時(shí),每個(gè)步驟都以自己的線程啟動(dòng),并不斷的接受和推送數(shù)據(jù)。

注意:所以的步驟是同步開(kāi)啟和運(yùn)行的,所以步驟的初始化的順序是不可知的。因?yàn)槲覀儾荒茉诘谝粋€(gè)步驟中設(shè)置一個(gè)變量,然后在接下來(lái)的步驟中使用它。

在一個(gè)轉(zhuǎn)換中,一個(gè)步驟可以有多個(gè)連接,數(shù)據(jù)流可以從一個(gè)步驟流到多個(gè)步驟。在Spoon中,hops就想是箭,它不僅允許數(shù)據(jù)從一個(gè)步驟流向另一個(gè)步驟,也決定了數(shù)據(jù)流的方向和所經(jīng)步驟。如果一個(gè)步驟的數(shù)據(jù)輸出到了多個(gè)步驟,那么數(shù)據(jù)既可以是復(fù)制的,也可以是分發(fā)的。

3.4.    Jobs(工作)

  Jobs(工作)是基于工作流模型的,協(xié)調(diào)數(shù)據(jù)源、執(zhí)行過(guò)程和相關(guān)依賴性的ETL活動(dòng)。

  Jobs(工作)將功能性和實(shí)體過(guò)程聚合在了一起。下圖是一個(gè)工作的例子。

 

  一個(gè)工作中展示的任務(wù)有從FTP獲取文件、核查一個(gè)必須存在的數(shù)據(jù)庫(kù)表是否存在、執(zhí)行一個(gè)轉(zhuǎn)換、發(fā)送郵件通知一個(gè)轉(zhuǎn)換中的錯(cuò)誤等。最終工作的結(jié)果可能是數(shù)據(jù)倉(cāng)庫(kù)的更新等。

  工作由工作節(jié)點(diǎn)連接、工作實(shí)體和工作設(shè)置組成。

  工作文件的擴(kuò)展名是.kjb。

4. Variable(變量)

  根據(jù)變量的作用域,變量被分為兩類:環(huán)境變量和kettle變量。

4.1.    環(huán)境變量

  環(huán)境變量可以通過(guò)edit menu下面的set environment variables對(duì)話框進(jìn)行設(shè)置。使用環(huán)境變量的唯一的問(wèn)題是,它不能被動(dòng)態(tài)的使用。如果在同一個(gè)應(yīng)用服務(wù)器中執(zhí)行兩個(gè)或多個(gè)使用同一環(huán)境變量的轉(zhuǎn)換,將可能發(fā)生沖突。環(huán)境變量在所以使用jvm的應(yīng)用中可見(jiàn)。

4.2.    Kettle變量

  Kettle變量用于在一個(gè)小的動(dòng)態(tài)范圍內(nèi)存儲(chǔ)少量的信息。Kettle變量是kettle本地的,作用范圍可以是一個(gè)工作或轉(zhuǎn)換,在工作或轉(zhuǎn)換中可以設(shè)置或修改。Set variable步驟用來(lái)設(shè)置與此變量有關(guān)的工作從此設(shè)置其作用域,如:父工作、祖父工作或根工作。

5. Kitchen執(zhí)行器的使用

5.1.    Kitchen執(zhí)行器的參數(shù)

  -rep      : Repository name   任務(wù)包所在存儲(chǔ)名

    -user     : Repository username   執(zhí)行人

    -pass     : Repository password   執(zhí)行人密碼

    -job      : The name of the job to launch 任務(wù)包名稱

    -dir      : The directory (don''t forget the leading / or \) 

    -file     : The filename (Job XML) to launch 

    -level    : The logging level (Basic, Detailed, Debug, Rowlevel, Error, Nothing) 指定日志級(jí)別

    -log      : The logging file to write to  指定日志文件

    -listdir  : List the directories in the repository 列出指定存儲(chǔ)中的目錄結(jié)構(gòu)。

    -listjobs : List the jobs in the specified directory 列出指定目錄下的所有任務(wù)

    -listrep  : List the defined repositories 列出所有的存儲(chǔ)

    -norep    : Don''t log into the repository  不寫日志

5.2.    Kitchen命令行選項(xiàng)

kitchen.bat   后面可以是-也可以是/然后再加options

Options:

/rep        : Repository name

/user       : Repository username

/pass       : Repository password

/job        : The name of the job to launch

/dir        : The directory (dont forget the leading /)

/file       : The filename (Job XML) to launch

/level      : The logging level (Basic, Detailed, Debug, Rowlevel, Error, Nothing)

/logfile    : The logging file to write to

/listdir    : List the directories in the repository

/listjobs   : List the jobs in the specified directory

/listrep    : List the available repositories

/norep      : Do not log into the repository

/version    : show the version, revision and build date

/param      : Set a named parameter <NAME>=<VALUE>. For example -param:FOO=bar

/listparam : List information concerning the defined parameters in the specified job.

/export     : Exports all linked resources of the specified job. The argument is the name of a ZIPfile.

而options 后面可以是=也可以是:也可以是空格

kitchen.bat /file d:\   或者 -file=D:\ 或者/file:D:\等等都可以。

5.3.    Windows下kitchen的執(zhí)行方式的實(shí)例

  kitchen.bat /norep -file=D:/kettledata/mysal2orcle.kjb >> kitchen_%date:~0,10%.log

  上面的含義是,使用kitchen.bat 命令來(lái)執(zhí)行job文件,job文件的存放路徑是D:/kettledata/mysal2orcle.kjb,并且將執(zhí)行的結(jié)果輸出到 kitchen_%date:~0,10%.log文件中。

6. Pentahon XUL Framework簡(jiǎn)介

  XUL Framework是一個(gè)試圖為不同UI技術(shù)提供統(tǒng)一樣式的項(xiàng)目。它的目標(biāo)是使得多種UI技術(shù)(如:Swing、SWT、GWT)能夠提交出一個(gè)統(tǒng)一的用戶接口而不必每次重寫描述層。XUL的常見(jiàn)案例有:普通對(duì)話框、可定制的菜單和工具欄、新的工具應(yīng)用。

6.1.    XUL文件

  XUL是英文“XML User Interface Language”的首字母縮寫。它是為了支持Mozilla系列的應(yīng)用程序(如Mozilla Firefox和Mozilla Thunderbird)而開(kāi)發(fā)的使用者界面標(biāo)示語(yǔ)言。顧名思義,它是一種應(yīng)用XML來(lái)描述使用者界面的標(biāo)示語(yǔ)言。

6.2.    Pentaho XUL的執(zhí)行步驟

(1)    加載XUL文件

 

(2)    添加Event Handlers

 

(3)    為SWT提供菜單欄

 

(4)    為菜單欄添加菜單項(xiàng)

 

 

PS:這次僅僅介紹了Kettle的基本概念和術(shù)語(yǔ),這部分是由我同學(xué)來(lái)完成的。Kettle應(yīng)該還算比較小眾的開(kāi)源軟件資料不多,希望這次的分析能夠?qū)Υ蠹矣幸欢ǖ膸椭4蟛糠值姆治龆际亲约豪斫獾?,所以有所偏差或錯(cuò)誤請(qǐng)大家指正。接下來(lái)準(zhǔn)備分析,Kettle的插件體系結(jié)構(gòu)、轉(zhuǎn)換機(jī)制、job運(yùn)行機(jī)制。


    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多

    好东西一起分享老鸭窝| 日本免费一本一二区三区| 亚洲成人精品免费在线观看| 日韩黄色一级片免费收看| 东北老熟妇全程露脸被内射| 欧美野外在线刺激在线观看| 色丁香一区二区黑人巨大| 久久热在线免费视频精品| 天堂网中文字幕在线观看| 又黄又爽禁片视频在线观看| 国产传媒精品视频一区| 亚洲欧美日韩国产自拍| 中文字幕免费观看亚洲视频| 色一情一乱一区二区三区码| 好吊妞视频这里有精品| 日韩成人高清免费在线| 粉嫩国产美女国产av| 尹人大香蕉一级片免费看| 精品人妻一区二区四区| av在线免费播放一区二区| 男人大臿蕉香蕉大视频| 国产一区二区久久综合| 亚洲欧美日本国产不卡| 玩弄人妻少妇一区二区桃花| 亚洲超碰成人天堂涩涩| 久久经典一区二区三区| 国产伦精品一区二区三区高清版| 国产乱人伦精品一区二区三区四区| 国产精品一区二区高潮| 日韩精品中文字幕在线视频| 日本一品道在线免费观看| 中国日韩一级黄色大片| 冬爱琴音一区二区中文字幕| 九九热精品视频免费在线播放| 中文字幕亚洲在线一区| 国产精品一区二区日韩新区| 国产精品欧美日韩中文字幕| av一区二区三区天堂| 沐浴偷拍一区二区视频| 日本人妻精品中文字幕不卡乱码| 日韩特级黄色大片在线观看|