先前一直使用的是postgresql,由於網速的緣由,因此打算將數據統一放到HDFS上,可是一條一條寫HDFS是很慢的,所有寫到本地文件再傳到HDFS上也是同樣慢,這樣一來就有了本文,將部分先放到內存數據庫中,而後再寫到HDFS上,這樣數據抽取和寫入的速度一下翻了好幾倍!好了,說說怎麼在kettle中使用H2html
先去下載H2,點擊下載
java
我測試的時候下的是windows版本,解壓後,執行h2/bin/h2.bat,執行成功後,會打開下圖的界面sql
紅框中的內容輸入什麼見下面代碼數據庫
Database URLs Embedded //嵌入式 jdbc:h2:~/test 'test' in the user home directory jdbc:h2:/data/test 'test' in the directory /data jdbc:h2:test in the current(!) working directory In-Memory //內存式 jdbc:h2:mem:test multiple connections in one process jdbc:h2:mem: unnamed private; one connection Server Mode //服務器模式 jdbc:h2:tcp://localhost/~/test user home dir jdbc:h2:tcp://localhost//data/test absolute dir Server start:java -cp *.jar org.h2.tools.Server Settings //配製模式(這個我很少用) jdbc:h2:..;MODE=MySQL compatibility (or HSQLDB,...) jdbc:h2:..;TRACE_LEVEL_FILE=3 log to *.trace.db
我先試用的是內存模式,可是試了之後才發現,H2支持的場景對我不適用,由於內存模式,要求全部的連接都在一個進程內,這對於kettle來講是不現實的,若是非要用,那隻能將建立表的語句,和使用表的模塊放到一個transform中,以下圖windows
看到了,最上面的圖標是建表語句,下面的是往表中插入數據,必須這樣使用,放到JOB中無效,只能在一個transform中,好了,看下圖看看咱們怎麼用kettle鏈接內存模式的H2服務器
以上這兩種方式均可以鏈接到內存模式的H2,選擇一種使用便可。tcp
下面說說適合我場景的嵌入式模式post
先看鏈接方式,只能這樣鏈接測試
使用嵌入式模式的好處是,建立表的模塊和入庫的模塊能夠在兩個不一樣的transform中,由於嵌入式的模式是將數據寫到默認的硬盤上了,好了就先寫到這兒了,快去試試,有啥問題,直接留言。
postgresql