經過測試發現,如果 MongoDB 需要驗證的話,kettle 的 “MongoDB input” 組件是無法連接 MongoDB 的。
(kettle 6.1 以及以下,如果你的連接成功了,請指教,謝謝,QQ:415426435)
那么我們怎么用 kettle 讀入 MongoDB 的數據呢,筆者是如下操作的。
第一步:把 MongoDB 的數據導出成 JSON 文件
參考鏈接:http://www.cnblogs.com/wanggs/p/5737402.html
第二步:把第一步的操作設置成定時任務
參考鏈接:http://www.cnblogs.com/wanggs/p/5740163.html
第三步:讀取 JSON 文件
經過測試發現,kettle 無法直接讀取 MongoDB 導出的 JSON 文件。(參考鏈接:http://blog.csdn.net/hubeilihao/article/details/43567815)
json 文件如下:
{"_id":{"$oid":"57a2151ee4b04c98a83e27aa"},"content":{"localIP":"172.*.*.26","remoteIP":"171.*.*.166","timestamp":"2016-08-04 00:00:29"},"funcNo":"AS001","payLoad":{"cacheLevel":"2","instId":"00001","userID":"1015375ce2*******"},"result":{"erroCode":"0000","msg":"獲取數據成功"}}
{"_id":{"$oid":"57a2151ee4b04c98a83e27aa"},"content":{"localIP":"172.*.*.26","remoteIP":"171.*.*.166","timestamp":"2016-08-04 00:00:29"},"funcNo":"AS001","payLoad":{"cacheLevel":"2","instId":"00001","userID":"1015375ce2*******"},"result":{"erroCode":"0000","msg":"獲取數據成功"}}
{"_id":{"$oid":"57a2151ee4b04c98a83e27aa"},"content":{"localIP":"172.*.*.26","remoteIP":"171.*.*.166","timestamp":"2016-08-04 00:00:29"},"funcNo":"AS001","payLoad":{"cacheLevel":"2","instId":"00001","userID":"1015375ce2*******"},"result":{"erroCode":"0000","msg":"獲取數據成功"}}
筆者是先把 JSON 文件讀入字段,再解析 JSON 字段的。
trans 如下:

文本文件輸入配置如下:



json input 配置如下:



預覽數據如下:

