❶ 如何使用kettle進行數據導入.csv
在kettle中新建一個轉換,再保存,再點擊新建一個DB連接
2.Csv文件內容
3.按住shift連接兩個圖標,只能連接出錯的紅線。
4.點擊連線上的紅叉(不是太容易點,多試試),出現下面的窗口,將啟用錯誤處理後的框去掉,點擊ok
5. 再編輯表輸出,瀏覽目標表並選擇。勾選指定資料庫欄位,可以在右邊的列映射中配置,或自己輸入。表欄位就是輸出表的對應欄位,同一行對應的流欄位是輸入的欄位。
6.執行轉換,轉換完成
❷ kettle提取postgresql數據
kettle提取postgresql數據步驟如下
1 遍歷區域和像素
其中xingzheng是行政區域數據表,thematic是專題像素分類表
2 影像分割
通過查詢某個區域和影像的交,達到影像分割的目的,
查詢區域gid=24,波段為1,像素值為4的像素個數的sql語句為:
其中函數ST_Intersects查詢兩個幾何的交集,示例如下
3 柵格統計與數據提取
通過提取函數ST_ValueCount,查詢分割後的柵格、指定波段和像素的像素總個數,並乘以單個像元值大小,實現數據面積提取。
其中28.15132773 * 28.15132773為單個像元值面積大小,具體使用albers投影(雙標准緯線投影)計算得出,0.000001單位換算成平方公里。
區域gid和像素類型作為輸入,實現影像分割和柵格面積統計,完整的sql如下:
4 kettle數據提取轉換
kettle數據提取轉換過程如下:
kettle遍歷區域和像素,如kettle數據轉換圖所示「表輸入2」,sql見步驟1;
kettle影像分割和柵格統計,如kettle數據轉換圖所示「表輸入」,sql見步驟3;
將提取出的數據保存到文件中。
❸ 開源ETL工具比較,Kettle和Talend,都有什麼優勢和劣勢
Pentaho Data Integration (Kettle)是Pentaho生態系統中默認的ETL工具。通過非常直觀的圖形化編輯器(Spoon),您可以定義以XML格式儲存的流程。在Kettle運行過程中,這些流程會以不同的方法編譯。用到的工具包括命令行工具(Pan),小型伺服器(Carte),資料庫存儲庫(repository)(Kitchen)或者直接使用IDE(Spoon)。
Talend Open Studio是 Talend 開發的ETL工具——Talend 是一家主營數據集成和數據管理解決方案的企業。Talend 採用用戶友好型,綜合性很強的IDE(類似於Pentaho Kettle 的 Spoon)來設計不同的流程。這些流程可以在IDE內部測試並編譯成Java 代碼。您可以隨時查看並編輯生成的Java代碼,同時實現強大的控制力和靈活性。
兩者都非常優秀,都屬於用戶友好型的交叉平台(基於Java的)工具。它們的主要差異在於Kettle 將 ELT 流程編譯為 XML 格式,然而Talend Open Studio 則生成 Java 代碼。
易用性:
Talend:有 GUI 圖形界面但是以 Eclipse 的插件方式提供。
Kettle:有非常容易使用的 GUI,出現問題可以到社區咨詢。
技術支持:
Talend:主要在美國
Kettle:在美國,歐洲(比利時,德國,法國,英國),亞洲(中國,日本,韓國)都可以找到相關技術支持人員。
部署:
Talend:創建 java 或perl 文件,並通過操作系統調度工具來運行
Kettle:可以使用 job 作業方式或操作系統調度,來執行一個轉換文件或作業文件,也可以通過集群的方式在多台機器上部署。
速度:
Talend:需要手工調整,對特定數據源有優化知識。
Kettle:比 Talend 快,不過也需要手工調整,對 Oracle 和 PostGre 等數據源做了優化,同時也取決於轉換任務的設計。
數據質量:
Talend:在 GUI 里有數據質量特性,可以手工寫 SQL 語句。
Kettle:在 GUI 里有數據質量特性,可以手工寫 SQL 語句、java腳本、正則表達式來完成數據清洗。
監控:
Talend:有監控和日誌工具
Kettle:有監控和日誌工具
連接性:
Talend:各種常用資料庫,文件,web service。
Kettle:非常廣泛的資料庫,文件,另外可以通過插件擴展
❹ 為什麼kettle可以接入多種數據源
kettle可以接入多種數據源原因:由於kettle是純java編輯,所以kettle連接mysql庫的時候需要mysql的java連接包,網路下載一個mysql的java連接驅動。
kettle使用文件資源庫不需要用戶名和密碼,如果沒有資源庫可以點擊右上角的"+"新建資源庫。為建立資料庫的資源庫,本例選擇使用文件資源庫,選擇確定後會要求選擇文件資源庫的路徑,並給文件資源庫設置一個ID和名稱。
kettle無代碼拖拽式構建數據管道:
kettle可Pentaho採用拖拽組件、連線、配置的方式來構建數據管道,透過超過200個不同的組件,用戶可以在不編寫一句代碼就能輕松完成對數據源讀取。
對數據進行關聯、過濾、格式轉換、計算、統計、建模、挖掘、輸出到不同的數據目標。極大程度地降低開發技術門檻和有效減低開發和維護成本。
❺ kettle抽取數據時提示轉換被檢測到,轉換正在殺死其他步驟是什麼錯誤
」轉換被檢測到,轉換正在殺死其他步驟「 這並不是一個錯誤,這只是一個提示信息。
意思是 你這個轉換有幾個並行執行的步驟 ,其中有個步驟報錯了,結果整個轉換失敗 進而殺死其他正常執行的步驟。
你需要仔細找日誌 找到發生錯誤的那個步驟及其 錯誤日誌信息
如果你正在學習kettle 可以參考我寫的:http://blog.csdn.net/xiaohai798/article/details/45367617
開頭為kettle 入門 的博文
❻ kettle怎麼實現重復抽取更新數據
插入/更新
1.你是否遇到了需要將mysql資料庫中的所有表與數據遷移到Oracle。
2.你是否還在使用kettle重復的畫著:表輸入-表輸出、創建表,而煩惱。下面為你實現了一套通用的資料庫遷移流程。技術引導:實現之初,在kettle提供的例子中找到了一個類似的(samplesjobsprocessalltables)。通過相關改造,終於達到目標。實現過程解剖:整套流程分為:2個job,4個trans。使用到的Trans插件:表輸入、欄位選擇、復制記錄到結果、從結果獲取記錄、設置變數、自定義java腳本、表輸出。1.大job。2.要遷移的源庫表名稱獲取,並設置到結果集,為下面的job使用。
3.配置子job為前面的每一條記錄(即每個表)執行一次該子job4.下面是子job。5.獲取記錄中的表名稱,並設置為到變數。6.讀取當前表的結果信息,並在目標庫中創建表(這個是難點)。因為只需要獲取抓取要抽取表的結構信息,故在sql後面加上where1=2。下面代碼是創建目標庫表。Java代碼publicbooleanprocessRow(StepMetaInterfacesmi,StepDataInterfacesdi)throwsKettleException{//First,getarowfromthedefaultinputhop//Object[]r=getRow();org.pentaho.di.core.database.DatabaseMetadbmeta=null;java.util.Listlist=getTrans().getRepository().readDatabases();//3.x中獲取資源庫的所有資料庫連接信息用getDatabases();if(list!=null&&!list.isEmpty()){for(inti=0;i
❼ kettle 處理來自兩個數據流的數據
使用Merge Join,按照你說的「同時在兩個filed裡面的數據被篩選出來」,應該使用內連接【INNER】方式,然後再在後續步驟中將自己需要的欄位輸出。
❽ 怎麼使用kettle進行增量數據的抽取
使用工具:
kettle
首先需要考慮的問題是不可能是全量進行數據的拷貝,數據量如此龐大!
那麼就得考慮增量,何為增量去網路。。哈哈哈
至於如何增量抽取數據,有很多種辦法,我這里示範的是通過時間去增量抽取(因為剛好別人的庫中每條記錄的時間記錄的都相當詳細,所以我認為這個比較好)。
首先創建好實例庫:
SQL> desc timejob; Name Type Nullable Default Comments --------- ------------ -------- ------- -------- UUID VARCHAR2(36) Y BEGINTIME DATE Y
1
2
3
4
5
SQL> desc timejob_bak; Name Type Nullable Default Comments --------- ------------ -------- ------- -------- UUID VARCHAR2(36) Y BEGINTIME DATE Y
1
2
3
4
5
kettle中有自動生成UUID的功能,所以直接拿過來耍,為了簡潔方便,欄位使用比較少。
首先利用kettle自動生成測試數據:
主要生成UUID和當前系統時間到timejob表中(每隔2s執行一次),我們後續的操作都是對這張表中的數據進行一個備份。
下面第二步就是抽取該表中的數據到一個備份表中,timejob_bak。
這里由於是我第一次操作,比較簡單,就直接上圖了。。
獲得上次操作時間和系統時間存到變數中:
這里的開始時間是通過表數據選項獲得上一次操作的最終結束時間,以作為我此次增量抽取的開始時間。第二個變數是獲得系統的當前時間。
根據時間抽取timejob表中的數據:
獲取變數的寫法:
此處獲取的變數就是上一步存入的變數,下面的抽取增量數據就是一個sql,從timejob表中抽取數據,存數據就是一個表輸出。
抽取數據sq
❾ 關於KETTLE抽取數據的問題,具體見補充描述
你可以直接用表輸入控制項,在裡面把a,b,c三張表的關聯關系寫好,select那3個欄位,這樣是最簡單的,否則就是通過控制項實現關聯關系
❿ kettle如何解析不規則的數據從而獲取裡面的數據
如果你用的是INNODB資料庫,有一個最簡單有效的調整,就是將INI文件裡面的下面參數調整:
原始:
innodb_flush_log_at_trx_commit=1
調整為:
innodb_flush_log_at_trx_commit=2
具體什麼意思就不解釋了,試了效果好再去找度娘