![計算機網(wǎng)絡應用ETL工具kettle培訓材料和工作總結(jié)_第1頁](http://file4.renrendoc.com/view/2e34b0c9fb88bec7e265ca0389e0a297/2e34b0c9fb88bec7e265ca0389e0a2971.gif)
![計算機網(wǎng)絡應用ETL工具kettle培訓材料和工作總結(jié)_第2頁](http://file4.renrendoc.com/view/2e34b0c9fb88bec7e265ca0389e0a297/2e34b0c9fb88bec7e265ca0389e0a2972.gif)
![計算機網(wǎng)絡應用ETL工具kettle培訓材料和工作總結(jié)_第3頁](http://file4.renrendoc.com/view/2e34b0c9fb88bec7e265ca0389e0a297/2e34b0c9fb88bec7e265ca0389e0a2973.gif)
![計算機網(wǎng)絡應用ETL工具kettle培訓材料和工作總結(jié)_第4頁](http://file4.renrendoc.com/view/2e34b0c9fb88bec7e265ca0389e0a297/2e34b0c9fb88bec7e265ca0389e0a2974.gif)
![計算機網(wǎng)絡應用ETL工具kettle培訓材料和工作總結(jié)_第5頁](http://file4.renrendoc.com/view/2e34b0c9fb88bec7e265ca0389e0a297/2e34b0c9fb88bec7e265ca0389e0a2975.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
概覽Kettle也叫PDI(全稱是PentahoDataIntegeration),是一款開源的ETL工具,項目開始于2023年,2023年加入了開源的BI組織Pentaho,正式命名為PDI。官方網(wǎng)站:/術語Transformation轉(zhuǎn)換步驟,可以理解為將一個或者多個不同的數(shù)據(jù)源組裝成一條數(shù)據(jù)流水線。然后最終輸出到某一個地方,文件或者數(shù)據(jù)庫等。Job作業(yè),可以調(diào)度設計好的轉(zhuǎn)換,也可以執(zhí)行一些文件處理(比較,刪除等),還可以ftp上傳,文件,發(fā)送郵件,執(zhí)行shell命令等,Hop連接轉(zhuǎn)換步驟或者連接Job(實際上就是執(zhí)行順序)的連線Transformationhop:主要表示數(shù)據(jù)的流向。從輸入,過濾等轉(zhuǎn)換操作,到輸出。Jobhop:可設置執(zhí)行條件:無條件執(zhí)行當上一個Job執(zhí)行結(jié)果為true時執(zhí)行當上一個Job執(zhí)行結(jié)果為false時執(zhí)行Kettle,etl設計及運行Kettle整體結(jié)構圖Kettle整體結(jié)構圖轉(zhuǎn)換設計樣例圖綠色線條為hop,流水線轉(zhuǎn)換設計樣例運行方式使用jawebstart方式運行的配置方法命令行方式Windows下執(zhí)行kitchen.bat,多個參數(shù)之間以“/”分隔,Key和value以”:”分隔例如:kitchen.bat/file:F:\samples\demo-table2table.ktr/level:Basic/log:test123.log/file:指定轉(zhuǎn)換文件的路徑/level:執(zhí)行日志執(zhí)行級別/log:執(zhí)行日志文件路徑Linux下執(zhí)行kitchen.sh,多個參數(shù)之間以“-”分隔,Key和value以”=”分隔kitchen.sh-file=/home/updateWarehouse.kjb-level=Minimal如果設計的轉(zhuǎn)換,Job是保存在數(shù)據(jù)庫中,則命令如下:Kitchen.bat/rep:資源庫名稱/user:admin/pass:admin/job:job名Xml保存轉(zhuǎn)換,job流程設計用戶定義的作業(yè)可以保存在(xml格式)中或某一個特定的數(shù)據(jù)庫中轉(zhuǎn)換的設計文件以.ktr結(jié)尾(xml文格式),保存所有配置好的數(shù)據(jù)庫連接,文件相對路徑,字段映射關系等信息。Job的設計文件以.kjb結(jié)尾,下面是一個調(diào)用已經(jīng)設計好的轉(zhuǎn)換的job文件的一部分:entrynamedemotest/namedescriptionTransformation/descriptiontypeTRANS/typefilename${Internal.Job.Filename.Directory}/demo-table2table.ktr/filenametransnameloadcustomerdatajob/transnamedirectory${Internal.Job.Filename.Directory}/directoryarg_from_previousN/arg_from_previousexec_per_rowN/exec_per_rowclear_rowsN/clear_rowsclear_filesN/clear_filesset_logfileN/set_logfilelogfile/logext/………/entry數(shù)據(jù)庫保存轉(zhuǎn)換,job流程列出幾個重要的表r_job:保存job的id,name,status,執(zhí)行時間,創(chuàng)建時間,修改時間等信息建表語句:DROPTABLEIFEXISTS`r_job`;CREATETABLE`r_job`(`ID_JOB`bigint(20)NOTNULL,`ID_DIRECTORY`int(11)DEFAULTNULL,`NAME`varchar(255)DEFAULTNULL,`DESCRIPTION`mediumtext,`EXTENDED_DESCRIPTION`mediumtext,`JOB_VERSION`varchar(255)DEFAULTNULL,`JOB_STATUS`int(11)DEFAULTNULL,`ID_DATABASE_LOG`int(11)DEFAULTNULL,`TABLE_NAME_LOG`varchar(255)DEFAULTNULL,`CREATED_USER`varchar(255)DEFAULTNULL,`CREATED_DATE`datetimeDEFAULTNULL,`MODIFIED_USER`varchar(255)DEFAULTNULL,`MODIFIED_DATE`datetimeDEFAULTNULL,`USE_BATCH_ID`char(1)DEFAULTNULL,`PASS_BATCH_ID`char(1)DEFAULTNULL,`USE_LOGFIELD`char(1)DEFAULTNULL,`SHARED_FILE`varchar(255)DEFAULTNULL,PRIMARYKEY(`ID_JOB`))r_jobentry:設計界面上的一個實體對應一個entry,通過job的id關聯(lián)DROPTABLEIFEXISTS`r_jobentry`;CREATETABLE`r_jobentry`(`ID_JOBENTRY`bigint(20)NOTNULL,`ID_JOB`int(11)DEFAULTNULL,`ID_JOBENTRY_TYPE`int(11)DEFAULTNULL,`NAME`varchar(255)DEFAULTNULL,`DESCRIPTION`mediumtext,PRIMARYKEY(`ID_JOBENTRY`))r_jobentry_attribute:job的詳細信息表,包括job執(zhí)行規(guī)則,執(zhí)行過程中的參數(shù)來源,日志記錄等DROPTABLEIFEXISTS`r_jobentry_attribute`;CREATETABLE`r_jobentry_attribute`(`ID_JOBENTRY_ATTRIBUTE`bigint(20)NOTNULL,`ID_JOB`int(11)DEFAULTNULL,`ID_JOBENTRY`int(11)DEFAULTNULL,`NR`int(11)DEFAULTNULL,`CODE`varchar(255)DEFAULTNULL,`VALUE_NUM`doubleDEFAULTNULL,`VALUE_STR`mediumtext,PRIMARYKEY(`ID_JOBENTRY_ATTRIBUTE`))r_step:保存轉(zhuǎn)換的步驟id,名字等r_step建表語句:DROPTABLEIFEXISTS`r_step`;CREATETABLE`r_step`(`ID_STEP`bigint(20)NOTNULL,`ID_TRANSFORMATION`int(11)DEFAULTNULL,`NAME`varchar(255)DEFAULTNULL,`DESCRIPTION`mediumtext,`ID_STEP_TYPE`int(11)DEFAULTNULL,`DISTRIBUTE`char(1)DEFAULTNULL,`COPIES`int(11)DEFAULTNULL,`GUI_LOCATION_X`int(11)DEFAULTNULL,`GUI_LOCATION_Y`int(11)DEFAULTNULL,`GUI_DRAW`char(1)DEFAULTNULL,PRIMARYKEY(`ID_STEP`))r_step_attribute:轉(zhuǎn)換步驟的詳細信息,字段重命名,字段映射等。通過外鍵id_transformation與r_step的id_transformation關聯(lián)DROPTABLEIFEXISTS`r_step_attribute`;CREATETABLE`r_step_attribute`(`ID_STEP_ATTRIBUTE`bigint(20)NOTNULL,`ID_TRANSFORMATION`int(11)DEFAULTNULL,`ID_STEP`int(11)DEFAULTNULL,`NR`int(11)DEFAULTNULL,`CODE`varchar(255)DEFAULTNULL,--操作編碼譬如:truncate,也可以是字段映射等信息`VALUE_NUM`bigint(20)DEFAULTNULL,--操作值`VALUE_STR`mediumtext,--操作值,譬如truncate對應的是Y或者NPRIMARYKEY(`ID_STEP_ATTRIBUTE`),UNIQUEKEY`IDX_STEP_ATTRIBUTE_LOOKUP`(`ID_STEP`,`CODE`,`NR`))說明:如果有一個字段firtstname映射到name則在r_step_attribute中增加兩條記錄。Kettle組成部分Chef:是一個圖形用戶界面,使用SWT開發(fā),用來設計一個作業(yè),轉(zhuǎn)換,SQL,F(xiàn)TP,郵件,檢查表存在,檢查文件存在,執(zhí)行SHELL腳本Kitchen:作業(yè)執(zhí)行引擎,用來進行轉(zhuǎn)換,校驗,F(xiàn)TP上傳。可以執(zhí)行xml格式定義的任務以及保存在數(shù)據(jù)庫上的。kitchen.bat/file:D:\Jobs\updateWarehouse.kjb/level:Basickitchen.sh-file=/PRD/updateWarehouse.kjb-level=Minimalkitchen.bat/rep:"ProductionRepository"/job:"Updatedimensions"/dir:/Dimensions/user:matt/pass:somepassword123/level:Basickitchen.bat/file:F:\ja\pdi-ce-3.2.0-stable\data-integration\samples\transformations\files\demo-table2table.ktr/level:Basic/log:test123.logSpoon:Spoon是Kettle的另一個圖形用戶界面,用來設計數(shù)據(jù)轉(zhuǎn)換過程Pan:Pan是一個數(shù)據(jù)轉(zhuǎn)換引擎,負責從不同的數(shù)據(jù)源讀寫和轉(zhuǎn)換數(shù)據(jù)。pan.sh-file="/PRD/CustomerDimension.ktr"-level=MinimalTransformation步驟輸入類型:Csvfileinput讀取csv文件,設置csv文件路徑,可以設置csv文件的相對路徑或者絕對路徑,字段分隔符,文件讀取的緩存大小等ExcelInput讀取excel文件,和csv文件讀取類似,增加了表單,表頭,出錯(是否忽略錯誤,嚴格的類型判斷等)的處理PropertyInput讀取屬性.properties文件Tableinput從數(shù)據(jù)庫讀數(shù)據(jù),動態(tài)綁定參數(shù)的SQL語句,參數(shù)替換可以從上一個步驟從獲取。例如SELECT*FROMcustomerWHEREbirthdate’${current_date}’這里的${current_date}在執(zhí)行過程中會作為動態(tài)參數(shù)被替換掉。這個值是前一個轉(zhuǎn)換步驟設置的。注:但是測試過程中發(fā)現(xiàn)如果上一個步驟設置的變量,在tableinput里面獲取不到,變量設置必須作為一個單獨的轉(zhuǎn)換先執(zhí)行一次,然后才能獲取到這個變量。Textfileinput主要是txt文件內(nèi)容等,和csv差不多。GenerateRows生成一些固定字段的記錄,主要用來模擬一些數(shù)據(jù)進行測試。GetFileNames讀取給定目錄或者文件全路徑的文件名GetSystemInfo包括命令行輸入的參數(shù),操作系統(tǒng)時間,ip地址,一些特殊屬性,kettle版本等De-serializefromfile從二進制kettlecube文件中讀取記錄Accessinput讀取access數(shù)據(jù)庫ESRIShapefileReaderFixedfileinput讀取固定大小文件GeneraterandomvalueGetFilesRowsCount獲取文件內(nèi)容的行數(shù)GetSubFoldernamesGetdatafromXML從xml文件解析出數(shù)據(jù)LDAPInput從ldap庫讀取數(shù)據(jù)。LDIFInput讀取ldap的ldif文件MondrianInputMDX語言從Mondrian服務器上讀取數(shù)據(jù)RSSInputS3CSVInputSalesForceInputXBaseinput讀取XBase系列文件,如Foxpro文件,主要是數(shù)據(jù)庫語言輸出類型Tableoutput將數(shù)據(jù)寫入到數(shù)據(jù)庫,可以指定是否truncate表,編輯前一步轉(zhuǎn)換字段與現(xiàn)在表結(jié)構的字段映射關系。以及每次mit的記錄數(shù)大小等。Textfileoutput將數(shù)據(jù)寫入到文本文件,通常是csv文件Insert/Update根據(jù)關鍵字找對應的記錄,如果找不到則執(zhí)行insert,否則執(zhí)行updateUpdate跟insert/update類似,只是沒有insert操作Delete跟update類似,只是執(zhí)行的是delete操作ExcelOutput輸出到excel,格式可以采用excel模板Serializetofile將記錄寫到二進制文件中(cube文件)AccessOutputPropertiesOutput輸出到properties文件RSSOutputSQLFileOutput將輸出的sqlinsert語句保存到文件SynchronizeaftermergeXMLOutput輸出到xml文件Transform類型Selectvalues用于選擇列,重命名列,指定列長度或精度Filterrows通過使用一個表達式從輸入行中過濾數(shù)據(jù),將結(jié)果是TURE或FALSE的行輸出到不同的節(jié)點。表達式是“”“OPERATOR”“”的形式,其中OPERATOR可以是=,,,,=,=,REGEXP,ISNULL,ISNOTNULL,INLIST,CONTAINS,STARTSWITH,ENDSWITH。用戶可以增加多個表達式,并用AND或OR連接。Sortrows對指定的列以升序或降序排序,當排序的行數(shù)超過5000時需要臨時表。Addsequence為數(shù)據(jù)流增加一個序列,可以使用ORACLE中某一序列的值或由用戶指定值Dummy不做任何處理,一般作為流程的終點。JoinRows(catesianproduct)對所有輸入流做笛卡兒乘積。AggregateRows聚集行數(shù)據(jù),提供SUM,ERAGE,COUNT,MIN,MAX,F(xiàn)IRST,LAST聚集函數(shù),該類型不提倡使用,將來會被GROUPBY類型替代。JaScriptvalue使用mozilla的rhino作為腳本語言,并提供了很多函數(shù),用戶可以在腳本中使用這些函數(shù)。例如varprev_row;if(prev_row==null)prev_row=row;...StringpreviousName=prev_row.getString(“Name”,“-”);...prev_row=row;可以獲得字段Name的前一條記錄的值。RowNormaliser該步驟可以從透視表(PIVOTTABLE)中還原數(shù)據(jù)到事實表,如從表一轉(zhuǎn)換成表二,需要使用該步驟。Uniquerows去掉輸入流中的重復行,在使用該節(jié)點前要先排序,否則只能刪除連續(xù)的重復行。Groupby分組Calculator提供了一組函數(shù)對列值進行運算,使用該方式比用戶自定義JASCRIPT腳本速度更快。Addconstants增加常量值。Rowdenormaliser同正規(guī)化過程相反。Rowflattener表扁平化處理除了上述基本節(jié)點類型外還定義了擴展節(jié)點類型,如SPLITFIELDS,EXECUTESQLSCRIPT,CUBEINPUT,CUBEOUTPUT等。圖一中創(chuàng)建了一個簡單的數(shù)據(jù)流程示例,共包括5個節(jié)點,其中Tableinput節(jié)點使用了SQLSERVER數(shù)據(jù)庫中的一張表(三條記錄),Filterrows中定義了過濾條件,將符合條件的發(fā)送到file2節(jié)點,不符和條件的記錄發(fā)送到Selectvalues節(jié)點。Selectvalues節(jié)點中選擇列,并對選擇的列進行了設置,將結(jié)果發(fā)送到file1節(jié)點。file1,file2節(jié)點分別是兩個文本文件節(jié)點,最終用來保存數(shù)據(jù)。該流程運行后,可以在LogView面板中查看運行結(jié)果,如圖四所示從tableinput結(jié)點輸入3條記錄,經(jīng)過濾后輸出到file2節(jié)點2條記錄(OUTPUT列中的3是指2條記錄加1行列名),輸出到file1節(jié)點1條記錄(OUTPUT列中的2是指1條記錄加1行列名)。FlowAbort忽略上一步的輸入流,通常用在錯誤處理中,譬如不處理X條記錄后的所有記錄Appendstreams主要用來處理步驟之間有優(yōu)先級的問題。從兩個步驟從讀取數(shù)據(jù)流,指定步驟的讀取順序。BlockingStep阻塞所有的輸出直到最后一條記錄到達Detectemptystream當輸入流為空的時候,輸出一條空的記錄Dummy(donothing)空操作。是一個空操作的件Filterrows通過設定過濾條件來過濾記錄IdentifylastrowinastreamSwitch/Case類似Ja的switch語法,通過比較某一確定的字段值來將數(shù)據(jù)轉(zhuǎn)發(fā)到不同的轉(zhuǎn)化步驟JoinsMergejoin合并兩種不同輸入流,連接方式有內(nèi)連,左外連接等。需要注意的是記錄需要先按關鍵字進行排序MergeRows(diff)用于比較兩組輸入數(shù)據(jù),一般用于更新后的數(shù)據(jù)重新導入到數(shù)據(jù)倉庫中。兩組數(shù)據(jù)中一組是引用流,一組是比較流,每次比較后只有最新版本的行數(shù)據(jù)被輸出到下一步。比較結(jié)果包括:idectical一致:兩組流的主鍵一致,值一致changed有變化:兩組流的主鍵一致,值有一個或多個不同new新行:引用流中有而比較流中沒有某一主鍵deleted被刪除的行:比較流中有而引用流中沒有某一主鍵比較流里面的數(shù)據(jù)除了被標記為deleted都會進入下一個步驟里面SortedMerge對記錄按某個關鍵字進行排序XMLJoin將一個XML文作為節(jié)點添加到另一個XML里面合并前的XML文需要合并的XML合并后的XML文ScriptingExecuteSQLscript執(zhí)行SQL腳本,應該避免使用這一步驟,盡可能的使用“tableinput(select)”,”tableoutput(insert)”,”update”,”delete”等步驟來替代。譬如動態(tài)創(chuàng)建表(表名是可變的,table1,table2,table3):SQL腳本是:CREATETABLE?(IDINTEGER);ExecuterowSQLscript對Executesqlscript的補充,增加了可以自定義sql語句的字段名Formula在數(shù)據(jù)流中執(zhí)行公式ModifiedJaScriptValueModifiedJaScriptValue應該說是轉(zhuǎn)換步驟里最強大的一步,可以獲取前一步的輸入流的所有字段,調(diào)用Jaapi對數(shù)據(jù)做轉(zhuǎn)換等操作,改變所有輸出的值。還能通過設置轉(zhuǎn)換狀態(tài)常量對現(xiàn)有轉(zhuǎn)換流程做改變,(忽略轉(zhuǎn)換,設置為錯誤,繼續(xù)轉(zhuǎn)換)。腳本是Mozilla的Rhino,Rhino是一個Ja實現(xiàn)的Jascript解釋器?,F(xiàn)在已經(jīng)加入到JDK1.6的jax.script包中了。對數(shù)據(jù)流進行修改等操作提供了常量,函數(shù),輸入字段,輸出字段的列表顯示Transformationscripts已經(jīng)創(chuàng)建的腳本Transformationconstants已經(jīng)預先定義好的靜態(tài)常量,不可更改,例如SKIP_TRANSFORMATION,ERROR_TRANSFORMATION,CONTINUE_TRANSFORMATIONTransformationfunctions類型轉(zhuǎn)換,操作函數(shù):字符串,數(shù)字,日期之間的轉(zhuǎn)換,字符串截取等邏輯判斷函數(shù):isDate(var),isNumber(var)等特殊函數(shù):LoadScriptFile(var),getProcessCount(var),print(var),writeToLog(var),getVariable(var,var)文件操作函數(shù):createFolder(var),deleteFile(var),getLastModifiedTime(var,var),moveFile(var,var,var)Inputfields獲取輸入流中字段的值field.getNumber()Outputfieldsset輸出流中字段的值field.setValue(99)例子:過濾Null字段vara;if(fieldname.isNull()){a='0';}else{a=fieldName.getString();}字符串截取將字符串“12345McDonalds”前面的數(shù)字部分分割出來varstr=field.getString();varcode="";varname="";for(i=0;istr.length();i++){c=str.charAt(i);if(!ja.lang.Character.isDigit(c)){code=str.substring(0,i);name=str.substring(i);Alert("code="+code+",name="+name);break;}}過濾記錄行,控制轉(zhuǎn)換流程trans_Status=CONTINUE_TRANSFORMATIONif(field.getString()==’123’)trans_Status=SKIP_TRANSFORMATION使用ja類庫varmydate="20230723";
varparser=ja.text.SimpleDateFormat("yyyyMMdd");//Mustusefullyqualifiedjaclass
vardateObj=parser.parse(mydate);//justlikehowyouwoulddoinjaAlert(dateObj);RegexEvaluation通過正則表達式驗證輸入字段UserDefinedJaExpression執(zhí)行一些簡單的ja代碼譬如表達式:firstname+""+name也可以用Ja代碼:newStringBuffer(firstname).append("").append(name).toString()LookupCallDBProcedure執(zhí)行存儲過程并獲得返回值,返回值只有一個,參數(shù)可以多個。Checkifacolumnexists檢查數(shù)據(jù)庫表是否存在某列Databasejoin改步驟允許查詢等操作利用上一步的數(shù)據(jù),譬如參數(shù)動態(tài)綁定的查詢語句,可以被上一步某個字段的值替換掉Databaselookup和databasejoin功能類似,從數(shù)據(jù)庫查詢數(shù)值,作為新的字段添加到數(shù)據(jù)流中??蓪⑶懊娴妮敵隽鞯闹底鳛椴樵儽容^參數(shù)DynamicSQLrow動態(tài)SQL查詢記錄行數(shù)。Fileexists檢查文件是否存在,文件名由上一步傳來HTTPPost處理POST請求,url可以從上一步數(shù)據(jù)里獲取,也可以在該步驟指定,可以指定編碼,請求參數(shù)等。HTTPclient僅僅是一個帶參數(shù)的URL請求,url可以從上一步數(shù)據(jù)里獲取,也可以在該步驟指定,不支持soap例如HYPERLINK錯誤!超鏈接引用無效。Streamlookup從其他轉(zhuǎn)換步驟產(chǎn)生的數(shù)據(jù)流中查詢數(shù)據(jù)Tableexists判斷數(shù)據(jù)庫中某張表是否存在,表名由前面步驟傳來Webserviceslookup處理SOAP請求,數(shù)據(jù)類型轉(zhuǎn)換是在步驟內(nèi)部處理,如果有日期,數(shù)字等類型需要轉(zhuǎn)換,建議全部返回字符串,然后使用“Selectvalues”步驟做轉(zhuǎn)換JOB類型常用Start指定job執(zhí)行規(guī)則,是否循環(huán),循環(huán)規(guī)則等。Dummy空操作,主要用來多數(shù)據(jù)源匯總Abortjob終止,忽略一個JobDisplayMsgboxInfo使用圖形化界面執(zhí)行Job的時候顯示消息框DummypluginJob里面空操作,可以用來將執(zhí)行循環(huán)操作Job執(zhí)行已經(jīng)定義好的Job。job可以嵌套job。PingahostpingSendSNMPtrap發(fā)送SNMPtrap報文SNMPTRAP就是在SNMP設備發(fā)生狀態(tài)變化的時候向管理器發(fā)出信號。不用管理器來檢查。SetvariablesSet變量Success當出錯后可以強制將該job置成功Transformation執(zhí)行定義好的轉(zhuǎn)換TruncatetablesWaitforSQL當檢測表的記錄數(shù)是否達到一定條件WriteToLogjob里面的日志記錄,不同于程序自帶的log4j等日志郵件GetmailsfromPOP從POP服務器獲取郵件并存儲到文件夾中Mail發(fā)送文本或者HTML格式郵件,可添加附件。Mailvalidator通過發(fā)送SNMPTRAP到郵件服務器來驗證EMAIL地址是否正確文件管理Addfilenamestoresult將文件夾或者多個文件加入到數(shù)據(jù)流中,以便在下一個job步驟中使用parefolders比較兩個文件夾下面的文件是否一致,可以選擇只比較文件大小,也可以選擇比較文件內(nèi)容CopyFilesCopyorMoveresultfilenames根據(jù)上一步的執(zhí)行結(jié)果得到的文件名,或者剪切文件CreateafolderCreatefileDeletefileDeletefilenamesfromresult根據(jù)上一步的執(zhí)行結(jié)果得到的文件名,或者剪切文件DeletefilesDeletefoldersFilepare比較兩個文件的內(nèi)容HTTP通過http協(xié)議從web服務器上獲得文件MoveFiles移動文件UnzipfileUnzip解壓縮文件Waitforfile循環(huán)檢測文件是否存在,否則直到超時失敗Zipfile采用zip壓縮文件文件傳輸FTPDelete刪除FTP上的文件GetafilewithFTP從FTP獲取文件,可以設置編碼方式,連接超時時間等。文件保存路徑,文件名中是否包含日期,時間,時間日期是否需要特殊格式化,是否覆蓋文件。GetafilewithSFTP與ftp類似,只是采用SecureFTPprotocolPutafilewithFTP上傳文件,本地文件路徑,通過*等模糊匹配要上傳的文件。并執(zhí)行上傳的遠程目錄。PutafilewithSFTPSSH2GetSSH2PutScriptingJaScript編輯jascript腳本并執(zhí)行。SQL執(zhí)行SQL腳本可以執(zhí)行寫好的sql腳本,指定sql路徑即可。也可以編輯sql腳本。Shell執(zhí)行SHELL腳本,可以執(zhí)行已經(jīng)寫好的shell腳本指定shell腳本路徑即可,也可以自己,編輯shell腳本可以把前一個步驟的執(zhí)行結(jié)果當作參數(shù)傳入與現(xiàn)有應用程序集成通過圖形化界面設計出來的transformation
,job都是xml格式的文件。通過加載環(huán)境變量,初始化配置文件可以在servlet或者其他應用程序中中執(zhí)行轉(zhuǎn)換。大致執(zhí)行方式如下:publicstaticvoidrunTransformation(Stringfilename){try{StepLoader.init();EnvUtil.environmentInit();Traatraa=newTraa(filename);Transtrans=newTrans(traa);trans.execute(null);//Youcanpassargumentsinsteadofnull.trans.waitUntilFinished();if(trans.getErrors()0){thrownewRuntimeException("Therewereerrorsduringtransformationexecution.");}}catch(KettleExceptione){System.out.println(e);}}通過件擴展現(xiàn)有功能至少實現(xiàn)4個接口StepMetaInterface接口定義元數(shù)據(jù),執(zhí)行檢查等StepInterfa
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 按揭手房買賣協(xié)議書
- 灰土擠密樁施工承包合同
- 2025年南寧貨運從業(yè)資格試題答案大全
- 2025年青海貨運從業(yè)資格試題題庫
- 2025年鶴崗b2貨運資格證模擬考試
- 電工承包簡單合同(2篇)
- 2024-2025學年四年級語文上冊第二單元6天安門廣場教案1蘇教版
- 浙教版數(shù)學七年級上冊《2.1 有理數(shù)的加法》聽評課記錄
- 七年級英語上冊 Module 8 Choosing presents Unit 3 Language in use說課稿 (新版)外研版
- 2024-2025學年高中物理課時分層作業(yè)2庫侖定律含解析教科版選修3-1
- 中考語文非連續(xù)性文本閱讀10篇專項練習及答案
- 勇者斗惡龍9(DQ9)全任務攻略
- 經(jīng)顱磁刺激的基礎知識及臨床應用參考教學課件
- 小學語文人教四年級上冊第四單元群文閱讀“神話故事之人物形象”PPT
- 鄉(xiāng)村振興匯報課件
- 紅色記憶模板課件
- ISO 31000-2018 風險管理標準-中文版
- 油氣藏類型、典型的相圖特征和識別實例
- 麗聲三葉草分級讀物第四級A Friend for Little White Rabbit課件
- DBJ61_T 179-2021 房屋建筑與市政基礎設施工程專業(yè)人員配備標準
- 建筑消防設施基礎知識PPT通用課件
評論
0/150
提交評論