您好,登錄后才能下訂單哦!
kettle的文件批量入庫功能是怎樣實(shí)現(xiàn)的,相信很多沒有經(jīng)驗(yàn)的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。
kettle 除了作為 ETL 工具外,還有很多數(shù)據(jù)處理方面的實(shí)用功能,下面介紹幾個實(shí)用的小功能。
1. 文件批量入庫
該功能可以將一個目錄下的全部或部分文件加載到數(shù)據(jù)庫中。
第一步: “獲取文件名” 步驟獲取一個目錄下的文件名,使用一個正則表達(dá)式來指定文件名。
指定了 E:/opensource/kettle-trunk/ui/images 目錄下所有以 .png 結(jié)尾的文件名。在這個步驟里創(chuàng)建了下面幾個字段來描述所有獲取的文件:
FILENAME,
SHORT_FILENAME,
PATH,
TYPE,
EXISTS,
ISHIDDEN,
ISREADABLE,
ISWRITEABLE,
LASTMODIFIEDTIME,
SIZE,
EXTENSION,
URI,
ROOTURI
第二步: 使用一個 javascript 腳本,讀取文件內(nèi)容,如果你不想把文件內(nèi)容入庫,可以不用這一步。下面是 javascript 腳本的內(nèi)容:
file = new Packages.java.io.File(filename.getString());
fileInputStream = new Packages.java.io.FileInputStream(file);
var content = Packages.org.pentaho.di.core.Const.createByteArray(file.length());
fileInputStream.read(content, 0, file.length());
fileInputStream.close();
不要忘了,選中 “獲取變量” 按鈕,將 content 也作為一個輸出字段, 類型 Binary。
第三步:“表輸出”,將前兩個步驟獲得的字段,輸出到數(shù)據(jù)庫的表里。如果數(shù)據(jù)庫里沒有相應(yīng)的表,需要使用 “SQL” 按鈕獲得并執(zhí)行創(chuàng)建表的 SQL 語句。
通過這三個步驟可以將文件名,文件屬性,文件內(nèi)容都保存到數(shù)據(jù)庫里,
如果文件是二進(jìn)制文件,文件內(nèi)容一般保存為 BLOB 、Binary 、Image 等類型。
如果文件是字符型文件,文件內(nèi)容一般保存為 CLOB 、varchar、Text 等類型。
注意:因?yàn)樵摲椒ㄊ且淮涡詫⑽募?nèi)容都讀到了內(nèi)存中,因此只能處理比較小的文件。
看完上述內(nèi)容,你們掌握kettle的文件批量入庫功能是怎樣實(shí)現(xiàn)的的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。