MongoDB資料轉移到Mysql庫進行資料分析
最近有一個調優的專案設計到MongoDB資料轉移到Mysql庫進行資料分析。
以下是利用kettle對資料的轉換的介紹:
1:MongoDb的查詢:
主要是基於json格式:具體的查詢可以見連線MonGoDb的查詢語句。
資料集是
由於帶有時間戳timestamp,可以在kettle中基於時間戳對其增量讀取。
2:kettle對於這種非關係型的資料庫的設定主要是利用bigdata的控制元件:
配置如下:
1)mongodb的資料集
2)query 查詢語句
由於利用時間戳進行增量查詢,所以利用了兩個變數${STARTDATE},${ENDDATE}來控制時間窗的大小。
3.將資料流傳入到json輸入中,將其轉化為標準格式:
Path的書寫格式是:
$.uid :uid是指mongodb中的項uid,
$ :代表根目錄
. :代表子節點
[]:陣列節點
由於在mongodb中 uid是直接掛在根目錄下的子節點中,所以其路徑為$.uid,actionID依次類似。
例:
{"data" :{
"museum":[
{
"country":"italy",
"city": "Vencie",
"id_museum":"109",
"name":"pa"},
{
"country":"Mexico",
"city": "Mexico city",
"id_museum":"36",
"name":"Musre"}
]
}
}
$..city表明元素
$.data.museum[1].city表明指定的元素,即上述museum陣列第二個節點的city值
資料讀取流程圖:
JOB的流程如下: