首页 > 数据库 >kettle MongoDB Output 配置说明

kettle MongoDB Output 配置说明

时间:2024-03-07 11:23:02浏览次数:26  
标签:old Mongo MongoDB kettle 更新 hours Tab Output Modifier

基本配置

Configure Connection Tab

数据库连接
  • Connection timeout:尝试连接数据库所等待的最大时间(毫秒),空为无限,建议5000
  • Socket timeout:sql在执行成功之前等待读写操作的时间(毫秒),空为无限,建议5000

Output Options Tab

输入表与相关设置
  • Truncate option:在数据传输前清空表
  • Update 与 Upsert:
UpdateUpsert是否更新是否插入
未选 未选 不更新 只插入
选中 未选 只更新 不插入
选中 选中 更新 插入
  • Multi-update:更新所有匹配的文档,默认是只更新符合查询条件的第一个
  • Modifier update:允许修饰符运算符用于修改匹配文档中的各个字段($运算符),此类更新速度快,涉及的网络流量最小。只有当这个选项选中时,Mongo Document Fields Tab 的 Modifier operation 和 Modifier policy 才会生效

Mongo Document Fields Tab

输入字段与查询条件
  • Name:字段名
  • Mongo document path:字段路径,可以为 Name 设置新字段名
示例
  • Use field name:为 N 时字段会使用 Mongo document path 为新字段名
  • JSON:以 json 格式存储数据
  • Match field for upsert column:为 Y 的字段将作为查询条件
  • Modifier operation:当 Output Options Tab 的 Modifier update 选中时,此设置生效,其中,N/A 为不更新,$set 为覆盖更新 $inc 为数字的加法更新,$push 为数组的追加更新
  • Modifier policy:当 Output Options Tab 的 Modifier update 选中时,此设置生效,其中,Insert 为插入,Update 为更新,可为不同字段设置不同的更新方法

示例

需求1,更新标志位

读取数据后将字段hours更改,之后需要将改动更新到原数据,但是数据的唯一标识就是hours,所以在hours更改之前复制给old_hours,在最后根据old_hours把新hours更新。

配置1
  • 只勾选 Update 确保作业只更新不插入
  • 勾选 Modifier update 从而只更新特定的字段,否则会更新所有字段,没有值的为 null
配置2
  • 字段 old_hours 必须指定 Mongo document path 为 hours,同时将 Use field name 设为 N,否则 kettle 找不到此字段
  • 字段 old_hours 的 Match field for upsert column 设为 Y,以字段作为更新的查询条件
  • 将 old_hours 的 Modifier operation 设为 N/A,hours 的 Modifier operation 设为 $set,即可达到以 old_hours 查询然后更新为 hours 的效果
  • old_hours 的 Modifier operation 设为 N/A 之后,Modifier policy 怎么设置都无所谓,没有效果

标签:old,Mongo,MongoDB,kettle,更新,hours,Tab,Output,Modifier
From: https://www.cnblogs.com/zouhong/p/18058494

相关文章

  • 【Docker】Docker安装MongoDB最新版并连接使用附加docker常用命令
    【Docker】Docker安装MongoDB最新版并连接使用附加docker常用命令前言确保centos7已经安装docker,没安装docker的可以百度自行安装一、docker安装mongodb步骤1、docker拉取mongo镜像dockerpullmongo:latest2、查看本地镜像命令#查看镜像命令dockerimages#查看正在运......
  • MongoDB Server 用户名和密码登录
    一、前言#默认情况下,MongoDB实例启动运行时是没有启用用户访问权限控制的,也就是说,在实例本机服务器上都可以随意连接到实例进行各种操作,MongoDB不会对连接客户端进行用户验证,这是非常危险的MongoDBServer默认不进行安全认证,即任何MongoDBClient都可以连接并拥有操作权限。在个......
  • resurfaceio goreplay output-s3 minio 兼容处理
    实际上此问题与以前版本goreplay对于s3的支持是一样的参考处理添加了新的环境变量AWS_FORCE_PATH_STYLE以及AWS_DISABLE_SSL,具体代码在rongfengliang/goreplay-new/blob/resurface/s3_reader.go中参考使用exportAWS_ACCESS_KEY_ID=minioexportAWS_SECRET_ACCE......
  • MongoDB
    1.简介MongoDB是一个非关系型数据库(NoSQL).非常适合超大数据集的存储,由C++语言编写,旨在为WEB应用提供可扩展的高性能数据存储解决方案。MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。下面是Sql与mongodb的术......
  • .NET Core连接MongoDB数据库
    MongoDB是一个非关系型数据库,它以文档形式存储数据,具有高性能、可扩展和灵活的特点。在.NETCore中使用MongoDB驱动程序可以很方便地连接和操作MongoDB数据库。本文将介绍如何在.NETCore项目中连接MongoDB数据库,并提供一些常用的操作示例。安装MongoDB驱动程序在.NETCore项目中......
  • mongoDB操作命令
    更新列名db.Youzy_Stores.update({},{$rename:{"StoreId":"MetaId"}},false,true)查询长度db.getCollection("Youzy_Stores_Navigations").find({$where:'this.StoreId.length>2'},{Name:0})查询总条数db.getCollection("Youzy_S......
  • MongoDB 聚合
    MongoDB中聚合(aggregate)主要用于处理数据(诸如统计平均值,求和等),并返回计算后的数据结果。有点类似sql语句中的count(*)。aggregate()方法MongoDB中聚合的方法使用​aggregate()​。语法​aggregate()​方法的基本语法格式如下所示:>db.COLLECTION_NAME.aggregate(AGGR......
  • MongoDB 索引
    索引通常能够极大的提高查询的效率,如果没有索引,MongoDB在读取数据时必须扫描集合中的每个文件并选取那些符合查询条件的记录。这种扫描全集合的查询效率是非常低的,特别在处理大量的数据时,查询可以要花费几十秒甚至几分钟,这对网站的性能是非常致命的。索引是特殊的数据结构,索引存......
  • kettle从入门到精通 第四十九课 ETL之kettle 自定义插件01
    1、kettle插件是什么kettle本身有足够多的转换或者job步骤,但是依然不能覆盖所有的业务场景,所以Kettle自定义插件在有些独特的业务场景可以大显身手。Kettle的插件架构使得我们可以不用修改Kettle本身代码,通过一些独立的代码就可以扩展Kettle的功能。这些独立的代码称为插件。Ke......
  • kettle从入门到精通 第四十八课 ETL之kettle webspoon
    1、kettle自带的客户端spoon工具是cs架构,多人协同办公起来不是特别方便。当然spoon也可以通过文件仓库设置为database模式进行协同办公。每个人在自己电脑上安装&打开spoon客户端,然后设置相同的文件仓库地址。如下图所示。 2、Web-basedSpoon(也称为webSpoon)webSpoon是一个基......