拱拱大白菜的博客

一知半解比一无所知更痛苦。QQ:623535597

【原创】kettle5.X 6.X 读入 mongodb数据【3.0+版本有用户密码认证情况下】

正文开始


测试平台:

win10+64位平台

kettle(5.2.0版本)

mongo(MongoDB server version: 3.4.1)



问题描述:

经过测试发现,如果 MongoDB 需要验证的话,

kettle6.0以及以下版本是无法使用 “MongoDB input” 组件连接 MongoDB 的。

目前的常用解决方法是把mongo的数据导出成json文件或者csv文件,然后再解析出来。



解决办法:

mongod 3.0 以上版本默认使用SCRAM-SHA-1认证,低版本则默认使用mongo-CR认证。

而6.0以下版本的kettle中的mongo-java-driver.jar默认不使用SCRAM-SHA-1认证的认证方式。

所以只需要将mongo-java-driver.jar中的相关类替换为默认使用SCRAM-SHA-1认证即可。

也就是修改mongo-java-driver.jar的class文件,然后将新的jar包复制到kettle对应目录下即可。



操作步骤:

01.下载附件中经过我修改的:mongo-java-driver-2.14.3-sources.jar(即下文中的经过改造的mongo-java-driver-2.14.3.jar.zip

02.将mongo-java-driver-2.14.3-sources.jar放到:data-integration\plugins\pentaho-mongodb-plugin\lib目录中:

如下图所示:

03.启动kettle

04.配置mongoinput组件(填写用户名密码以及DBname)

05.成功的标志即为点击get collection之后能看到collections列表:

06.贴出点击get fields和预览之后的数据:




经过修改后的jar包资源地址:

下载资源《经过改造的mongo-java-driver-2.14.3.jar.zip



jar包修改过程:

下载资源《jar包改造过程.v1.0.20180517.zip


以上问题已经在kettle7.X和kettle8.X中解决

在kettle7.X,8.X版本中已经可以选择Authentication database、Authenticate Mechanism了。

如下图所示:

image.png



有问题QQ联系623535597或者

添加微信:


阅读更多
个人分类: kettle
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

【原创】kettle5.X 6.X 读入 mongodb数据【3.0+版本有用户密码认证情况下】

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭