kettle mogodb output详解

以下主要来自官网文档,原文:https://wiki.pentaho.com/display/EAI/MongoDB+Output

Configure Connection Tab

 

 

1 Host name or IP address 输入本机或者服务器的ip地址
2 Port 端口号默认端口号27017
3 Username 和 Password 如果目标集合需要验证详细信息,可以使用用户名和密码字段提供验证细节

4 如果已经设置了有效的主机名和端口,那么可以使用Get DBs按钮和Get collection按钮分别检索选定数据库中现有数据库和集合的名称如下图:

5 如果多个主机,可以用逗号分隔,并且勾上Use all replicate set members/mongos

 

Create and Drop Indexes Tab

 

kettle 可以写入数据时候,在mongodb中创建索引

Output Options Tab

1 使用Get DBs按钮和Get collection按钮分别检索选定数据库中现有数据库和集合,如果输入一个集合名字,这个集合名字在数据库中不存在,那么会自动创建一个集合,并且将对应数据插入该集合中。
2 Truncate collection 如果勾上之后,在插入目标集合之前会把集合数据清空,然后再插入
3 除非使用唯一索引,否则mongodb允许插入重复数据
4 Mongo DB允许快速批量插入操作—可以使用批插入大小字段配置批大小。如果这里没有提供值,则使用默认的100行大小

5 选择Update,但不选择Upsert的时候,只更新,不插入。如果数据库中没数据,也不插入。有数据则更新。

选择Update的时候,Mongo Document Fields 里面的 Match field for update 必须有一个选择Y才可以,然后Modifier policy 选择Insert&Update时候,如果有数据就更新。

 

同时选择Update,Upsert时候,在数据库中找到则更新,找不到则插入。

(在mongodb使用update功能的时候upsert本身就是一个可选择的功能,true是库里没有则插入,false是库里没有不做操作。默认false。因此kettle在选择update功能时候下面还有一个upsert)

最终生效则必须在Mongo document fields 选项卡中选择Match field for update,必须有一个是Y,如下图:

Match field for update选择为Y,则是用这个自动去匹配。比如途中选择note为Y,note作为更新参照字段。

相当于sql语句:update 表 set shebei_zhi = value1,shebei_type = value2 where note = value3

6 勾选Modifier update,可以对update操作进一步设置如可以增加操作符设置:$set,$inc和$push。勾选之后, Mongo document fields 选项卡中Modifier operation 和Modifier policy才起作用。

 

7 勾选Modifier update之后,可以再勾选Multi-update。mongodb默认只更新找到的第一条记录,如果勾选,就把按条件查出来多条记录全部更新,即更新找到的多条记录。

 

 

 

参考:https://blog.csdn.net/qq_26645205/article/details/78341196

posted @ 2018-08-24 15:48  kaixinmao1987  阅读(3236)  评论(0编辑  收藏  举报