參考文章:
最近有乙個調優的專案設計到mongodb資料轉移到mysql庫進行資料分析。
以下是利用kettle對資料的轉換的介紹:
1:mongodb的查詢:
主要是基於json格式:具體的查詢可以見連線
mongodb的查詢語句。
資料集是
由於帶有時間戳timestamp,可以在kettle中基於時間戳對其增量讀取。
2:kettle對於這種非關係型的資料庫的設定主要是利用bigdata的控制項:
配置如下:
1)mongodb的資料集
2)query 查詢語句
由於利用時間戳進行增量查詢,
所以利用了兩個變數$,$來控制時間窗的大小。
3.將資料流傳入到json輸入中,將其轉化為標準格式:
path的書寫格式是:
$.uid:uid是指mongodb中的項uid,
$ :代表根目錄
. :代表子節點
:陣列節點
由於在mongodb中uid是直接掛在根目錄下的子節點中,所以其路徑為$.uid,actionid依次類似。 例:
, ]} }
$..city表明元素city是在根節點下data節點內的museum節點內。
$.data.museum[1].city表明指定的元素,即上述museum陣列第二個節點的city值
資料讀取流程圖:
job的流程如下:
kettle之gpload元件使用
greenplum已經很少人用了,最近新專案要用這個的時候發現網上資料不多,尤其是kettle gp的組合。所以最後經過幾天加班才研究出來,特地記錄一下。這裡用的kettle是最新的版本kettle9.0.0.0 423 greenplum是6.0.1的 gp安裝在linux上的虛擬機器上,這裡說寫...
Kettle開發之常用步驟開發
csv 輸入對應的 如下所示 csvinputmeta csvinputmeta new csvinputmeta csvinputmeta.setdefault csvinputmeta.setdelimiter csvinputmeta.setfilename etl data.csv csvi...
Kettle 外掛程式之 Merge Join 的使用
今天遇到了乙個問題 不同的資料庫之間需要用全連線,於是毫不猶豫的merge join外掛程式,但是在使用的過程中遇到了很多問題。連線後獲取欄位後,會出現重複字段。解決方法 把需要關聯的字段改為不相同的名字。2.獲取的資料不是我們想要的資料 例如 a表 1 a 2 b b表 1 的 3 地方 全連線預...