計算機網(wǎng)絡應用Kettle命令行使用說明_第1頁
計算機網(wǎng)絡應用Kettle命令行使用說明_第2頁
計算機網(wǎng)絡應用Kettle命令行使用說明_第3頁
計算機網(wǎng)絡應用Kettle命令行使用說明_第4頁
計算機網(wǎng)絡應用Kettle命令行使用說明_第5頁
已閱讀5頁,還剩4頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

溫馨提示

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

評論

0/150

提交評論