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