計(jì)算機(jī)網(wǎng)絡(luò)應(yīng)用Kettle命令行使用說(shuō)明_第1頁(yè)
計(jì)算機(jī)網(wǎng)絡(luò)應(yīng)用Kettle命令行使用說(shuō)明_第2頁(yè)
計(jì)算機(jī)網(wǎng)絡(luò)應(yīng)用Kettle命令行使用說(shuō)明_第3頁(yè)
計(jì)算機(jī)網(wǎng)絡(luò)應(yīng)用Kettle命令行使用說(shuō)明_第4頁(yè)
計(jì)算機(jī)網(wǎng)絡(luò)應(yīng)用Kettle命令行使用說(shuō)明_第5頁(yè)
已閱讀5頁(yè),還剩4頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

Kettle命令行使用說(shuō)明KETTLE簡(jiǎn)介說(shuō)到ETL開(kāi)源項(xiàng)目,Kettle當(dāng)屬翹首,項(xiàng)目名稱(chēng)很有意思,水壺。按項(xiàng)目負(fù)責(zé)人Matt的說(shuō)法:把各種數(shù)據(jù)放到一個(gè)壺里,然后呢,以一種你希望的格式流出。呵呵,外國(guó)人都很有聯(lián)想力??戳颂峁┑奈臋n,然后對(duì)發(fā)布程序的簡(jiǎn)單試用后,可以很清楚得看到Kettle的四大塊:Chef——工作(job)設(shè)計(jì)工具(GUI方式)Kitchen——工作(job)執(zhí)行器(命令行方式)Spoon——轉(zhuǎn)換(transform)設(shè)計(jì)工具(GUI方式)Span——轉(zhuǎn)換(trasform)執(zhí)行器(命令行方式)Chef——工作(job)設(shè)計(jì)器這是一個(gè)GUI工具,操作方式主要通過(guò)拖拖拉拉,勿庸多言,一看就會(huì)。何謂工作?多個(gè)作業(yè)項(xiàng),按特定的工作流串聯(lián)起來(lái),開(kāi)成一項(xiàng)工作。正如:我的工作是軟件開(kāi)發(fā)。我的作業(yè)項(xiàng)是:設(shè)計(jì)、編碼、測(cè)試!先設(shè)計(jì),如果成功,則編碼,否則繼續(xù)設(shè)計(jì),編碼完成則開(kāi)始設(shè)計(jì),周而復(fù)始,作業(yè)完成。Chef中的作業(yè)項(xiàng)包括:轉(zhuǎn)換:指定更細(xì)的轉(zhuǎn)換任務(wù),通過(guò)Spoon生成。通過(guò)Field來(lái)輸入?yún)?shù);SQL:sql語(yǔ)句執(zhí)行;FTP:下載ftp文件;郵件:發(fā)送郵件;檢查表是否存在;檢查文件是否存在;執(zhí)行shell腳本:如dos命令。批處理:(注意:windows批處理不能有輸出到控制臺(tái))。Job包:作為嵌套作業(yè)使用。JavaScript執(zhí)行:這個(gè)比較有意思,我看了一下源碼,如果你有自已的Script引擎,可以很方便的替換成自定義Script,來(lái)擴(kuò)充其功能;SFTP:安全的Ftp協(xié)議傳輸;HTTP方式的上/下傳。工作流如上文所述,工作流是作業(yè)項(xiàng)的連接方式。分為三種:無(wú)條件,成功,失敗,為了方便工作流使用,KETTLE提供了幾個(gè)輔助結(jié)點(diǎn)單元(也可將其作為簡(jiǎn)單的作業(yè)項(xiàng)):Start單元:任務(wù)必須由此開(kāi)始。設(shè)計(jì)作業(yè)時(shí),以此為起點(diǎn)。OK單元:可以編制做為中間任務(wù)單元,且進(jìn)行腳本編制,用來(lái)控制流程。ERROR單元:用途同上。DUMMY單元:什么都不做,主要是用來(lái)支持多分支的情況,文檔中有例子。存儲(chǔ)方式支持XML存儲(chǔ),或存儲(chǔ)到指定數(shù)據(jù)庫(kù)中。一些默認(rèn)的配置(如數(shù)據(jù)庫(kù)存儲(chǔ)位置……),在系統(tǒng)的用戶(hù)目錄下,單獨(dú)建立了一個(gè).Kettle目錄,用來(lái)保存用戶(hù)的這些設(shè)置。LogView可查看執(zhí)行日志。Kitchen——作業(yè)執(zhí)行器是一個(gè)作業(yè)執(zhí)行引擎,用來(lái)執(zhí)行作業(yè)。這是一個(gè)命令行執(zhí)行工具,沒(méi)啥可講的,就把它的參數(shù)說(shuō)明列一下。-rep:Repositoryname任務(wù)包所在存儲(chǔ)名-user:Repositoryusername執(zhí)行人-pass:Repositorypassword執(zhí)行人密碼-job:Thenameofthejobtolaunch任務(wù)包名稱(chēng)-dir:Thedirectory(don'tforgettheleading/or\)-file:Thefilename(JobXML)tolaunch-level:Thelogginglevel(Basic,Detailed,Debug,Rowlevel,Error,Nothing)指定日志級(jí)別-log:Theloggingfiletowriteto指定日志文件-listdir:Listthedirectoriesintherepository列出指定存儲(chǔ)中的目錄結(jié)構(gòu)。-listjobs:Listthejobsinthespecifieddirectory列出指定目錄下的所有任務(wù)-listrep:Listthedefinedrepositories列出所有的存儲(chǔ)-norep:Don'tlogintotherepository不寫(xiě)日志嗯,居然不支持調(diào)度??戳艘幌挛臋n,建議使用操作系統(tǒng)提供的調(diào)度器來(lái)實(shí)現(xiàn)調(diào)度,比如:Windows可以使用它的任務(wù)計(jì)劃工具。Spoon——轉(zhuǎn)換過(guò)程設(shè)計(jì)器GUI工作,用來(lái)設(shè)計(jì)數(shù)據(jù)轉(zhuǎn)換過(guò)程,創(chuàng)建的轉(zhuǎn)換可以由Pan來(lái)執(zhí)行,也可以被Chef所包含,作為作業(yè)中的一個(gè)作業(yè)項(xiàng)。下面簡(jiǎn)單列舉一下所有的轉(zhuǎn)換過(guò)程。(簡(jiǎn)單描述,詳細(xì)的可見(jiàn)Spoon文檔)Input-Steps:輸入步驟lTextfileinput:文本文件輸入可以支持多文件合并,有不少參數(shù),基本一看參數(shù)名就能明白其意圖。lTableinput:數(shù)據(jù)表輸入實(shí)際上是視圖方式輸入,因?yàn)檩斎氲氖莝ql語(yǔ)句。當(dāng)然,需要指定數(shù)據(jù)源(數(shù)據(jù)源的定制方式在后面講一下)lGetsysteminfo:取系統(tǒng)信息就是取一些固定的系統(tǒng)環(huán)境值,如本月最后一天的時(shí)間,本機(jī)的IP地址之類(lèi)。lGenerateRows:生成多行。這個(gè)需要匹配使用,主要用于生成多行的數(shù)據(jù)輸入,比如配合Addsequence可以生成一個(gè)指定序號(hào)的數(shù)據(jù)列。lXBaseInputlExcelInputlXMLInput這三個(gè)沒(méi)啥可講的,看看參數(shù)就明了。Output-Steps:輸出步聚lTextfileoutput:文本文件輸出。這個(gè)用來(lái)作測(cè)試蠻好,呵呵。很方便的看到轉(zhuǎn)換的輸出。lTableoutput:輸出到目的表。lInsert/Update:目的表和輸入數(shù)據(jù)行進(jìn)行比較,然后有選擇的執(zhí)行增加,更新操作。lUpdate:同上,只是不支持增加操作。lXMLOutput:Look-up:查找操作lDataBaselStreamlProcedurelDatabasejoinTransform轉(zhuǎn)換lSelectvalues對(duì)輸入的行記錄數(shù)據(jù)的字段進(jìn)行更改(更改數(shù)據(jù)類(lèi)型,更改字段名或刪除)數(shù)據(jù)類(lèi)型變更時(shí),數(shù)據(jù)的轉(zhuǎn)換有固定規(guī)則,可簡(jiǎn)單定制參數(shù)??捎脕?lái)進(jìn)行數(shù)據(jù)表的改裝。lFilterrows對(duì)輸入的行記錄進(jìn)行指定復(fù)雜條件的過(guò)濾。用途可擴(kuò)充sql語(yǔ)句現(xiàn)有的過(guò)濾功能。但現(xiàn)有提供邏輯功能超出標(biāo)準(zhǔn)sql的不多。lSortrows對(duì)指定的列以升序或降序排序,當(dāng)排序的行數(shù)超過(guò)5000時(shí)需要臨時(shí)表。lAddsequence為數(shù)據(jù)流增加一個(gè)序列,這個(gè)配合其它Step(Generaterows,rowsjoin),可以生成序列表,如日期維度表(年、月、日)。lDummy不做任何處理,主要用來(lái)作為分支節(jié)點(diǎn)。lJoinRows對(duì)所有輸入流做笛卡兒乘積。lAggregate聚合,分組處理lGroupby分組,用途可擴(kuò)充sql語(yǔ)句現(xiàn)有的分組,聚合函數(shù)。但我想可能會(huì)有其它方式的sql語(yǔ)句能實(shí)現(xiàn)。lJavaScriptvalue使用mozilla的rhino作為腳本語(yǔ)言,并提供了很多函數(shù),用戶(hù)可以在腳本中使用這些函數(shù)。lRowNormaliser該步驟可以從透視表中還原數(shù)據(jù)到事實(shí)表,通過(guò)指定維度字段及其分類(lèi)值,度量字段,最終還原出事實(shí)表數(shù)據(jù)。lUniquerows去掉輸入流中的重復(fù)行,在使用該節(jié)點(diǎn)前要先排序,否則只能刪除連續(xù)的重復(fù)行。lCalculator提供了一組函數(shù)對(duì)列值進(jìn)行運(yùn)算,用該方式比用戶(hù)自定義JAVASCRIPT腳本速度更快。lMergeRows用于比較兩組輸入數(shù)據(jù),一般用于更新后的數(shù)據(jù)重新導(dǎo)入到數(shù)據(jù)倉(cāng)庫(kù)中。lAddconstants:增加常量值。lRowdenormaliser同Normaliser過(guò)程相反。lRowflattener表扁平化處理,指定需處理的字段和扃平化后的新字段,將其它字段做為組合Key進(jìn)行扃平化處理。除了上述基本節(jié)點(diǎn)類(lèi)型外還定義了擴(kuò)展節(jié)點(diǎn)類(lèi)型lSPLITFIELDS按指定分隔符拆分字段lEXECUTESQLSCRIPT執(zhí)行SQL語(yǔ)句lCUBEINPUTlCUBEOUTPUT其它l存儲(chǔ)方式:與Chef相同。l數(shù)據(jù)源(Connection);見(jiàn)后。lHops:setp連接起來(lái),形成Hops。lPluginsteptypes等節(jié)點(diǎn):這個(gè)沒(méi)仔細(xì)看,不知如何制作Pluginstep。lLogView:可查看執(zhí)行日志。Pan——轉(zhuǎn)換的執(zhí)行工具命令行執(zhí)行方式,可以執(zhí)行由Spoon生成的轉(zhuǎn)換任務(wù)。同樣,不支持調(diào)度。參數(shù)與Kitchen類(lèi)似,可參見(jiàn)Pan的文檔。其它Connection可以配置多個(gè)數(shù)據(jù)源,在Job或是Trans中使用,這意味著可以實(shí)現(xiàn)跨數(shù)據(jù)庫(kù)的任務(wù)。支持大多數(shù)市面上流行的數(shù)據(jù)庫(kù)。個(gè)人感覺(jué):(本人不成熟的看法)1、轉(zhuǎn)換功能全,使用簡(jiǎn)潔。作業(yè)項(xiàng)豐富,流程合理。但缺少調(diào)度。2、java代碼,支持的數(shù)據(jù)源范圍廣,所以,跨平臺(tái)性較好。3、從實(shí)際項(xiàng)目的角度看,和其它開(kāi)源項(xiàng)目類(lèi)似,主要還是程序員的思維,缺少與實(shí)際應(yīng)用項(xiàng)目(專(zhuān)業(yè)領(lǐng)域)的更多接軌,當(dāng)然,項(xiàng)目實(shí)施者的專(zhuān)注點(diǎn)可能在于一個(gè)平臺(tái)框架,而非實(shí)際應(yīng)用(實(shí)際應(yīng)用需要二次開(kāi)發(fā))。4、看過(guò)了大多數(shù)源碼,發(fā)現(xiàn)源碼的可重用性不是太好(缺少大粒度封裝),有些關(guān)鍵部分好像有Bug。比如:個(gè)別class過(guò)于臃腫,線程實(shí)現(xiàn)的同步有問(wèn)題。5、提供的工具有些小錯(cuò),如參數(shù)的容錯(cuò)處理。命令行執(zhí)行實(shí)例使用資源庫(kù)(repository)登錄時(shí),默認(rèn)的用戶(hù)名和密碼是admin/admin。當(dāng)job是存放在資源庫(kù)(一般資源庫(kù)都使用數(shù)據(jù)庫(kù))中時(shí),使用Kitchen.bat執(zhí)行job時(shí),需使用如下的命令行:Kitchen.bat-repkettle-useradmin-passadmin-jobjob名當(dāng)job沒(méi)有存放在資源庫(kù)而存放在文件系統(tǒng)時(shí),使用Kitchen.bat執(zhí)行job時(shí),需使用如下的命令行:Kitchen.bat-norep-fileuser-transfer-job.kjb可以使用命令行執(zhí)行job后,就可以使用windows或linux的任務(wù)調(diào)度來(lái)定時(shí)執(zhí)行任務(wù)了命令,在控制臺(tái)執(zhí)行測(cè)試。Bat文件實(shí)例如下:@echooffrem該批處理為每小時(shí)開(kāi)啟一個(gè)。需要在執(zhí)行計(jì)劃中添加。rem僅適用于不怕開(kāi)啟兩個(gè)任務(wù)重復(fù)抽取的JOB。否則可能會(huì)導(dǎo)致重復(fù)。rem隱藏執(zhí)行的窗口,避免人為關(guān)掉remif"%1"=="h"(goto:begin)remstartmshtavbscript:createobject("wscript.shell").run("""%~nx0""h",0)(window.close)&&exit:beginrem設(shè)置環(huán)境變量。remsetJAVA_HOME=C:\ProgramFiles\Java\jdk1.6.0_27remsetCALASSPATH=%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\dt.jar;remsetPath=%JAVA_HOME%\binrem以下才是執(zhí)行相關(guān)的內(nèi)容。rem得到當(dāng)前日期:日sett_dd=%date:~8,2%rem得到當(dāng)前時(shí)間:小時(shí)remsett_hh=%time:~0,2%rem設(shè)置等待時(shí)間1000=1ssett_sleep=1800000remKETTLE的路徑setpath_kettle=F:\ETL\data-integrationrem日志文件setfile_log=F:\ETL\Job_Log\DS_JB_30MIN%date:~0,4%%date:~5,2%%date:~8,2%.logsetfile_sleep=F:\ETL\data-integration\sleep30MIN.vbsrem作業(yè)相關(guān)rem資源庫(kù)JOB路徑用戶(hù)密碼setmyrep=kettlesetmyjob=DS_JB_30MINsetmydir=/總體維護(hù)/J01_半小時(shí)任務(wù)setmyuser=adminsetmypass=passwordf:cd%path_kettle%rem循環(huán):myloopecho請(qǐng)不要關(guān)閉此窗口:正在執(zhí)行kettle_every30MIN_job30分鐘定時(shí)抽取rem執(zhí)行KETTLE。callkitchen-rep%myrep%-job%myjob%-dir%mydir%-user%myuse

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論