kettle和MongoDB之間的資料同步

2021-07-23 19:35:48 字數 1085 閱讀 5556

參考文章:

最近有乙個調優的專案設計到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 地方 全連線預...