经过测试发现,如果 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 配置如下:
预览数据如下: