首页 > 其他分享 >kettle从入门到精通 第四十七课 ETL之kettle mongo output 写入

kettle从入门到精通 第四十七课 ETL之kettle mongo output 写入

时间:2024-02-23 22:55:54浏览次数:24  
标签:mongo kettle 写入 指定 第四十七 文档 操作 output 节点

1、上一节课我们学习了mongo input读取步骤,本节课我们一起学习下mongo out 写入步骤,该步骤可以将数据写入到mongo中,如下图所示。

 2、 配置mongo连接,有两种方式,如截图所示。

Connection String:如String connectionString = "mongodb://username:password@localhost:27017/mydatabase?authSource=admin";

Configure Fields:单独配置每一个字段

Host name(s) or IP address(es):ip地址,多个主机名或IP地址用逗号分隔。

Port:端口号,mongo 默认为27017

Enable SSL connection: 指定连接到配置了SSL的MongoDB服务器

Use all replica set members/mongos:选择在“主机名或IP地址”字段中指定多个主机时使用所有副本集。如果一个副本集包含多个主机,Java驱动程序会自动发现所有主机。如果所选择的副本集不可用,驱动程序会连接列表中的下一个副本集。适用连接mongo集群

Authentication database:指定认证数据库。

Authenticate Mechanism:选择用户身份验证方法。取值包括 SCRAM-SHA-1、MONGODB-CR 和 PLAIN。

Username:指定访问数据库所需的用户名。如果使用Kerberos身份验证,请输入Kerberos主体。

Password:指定与用户名关联的密码。如果您正在使用Kerberos身份验证,则无需输入密码。

Authenticate using Kerberos:选择指定使用Kerberos进行身份验证。选中后,请将Kerberos主体作为用户名输入。

Connection timeout:指定(以毫秒为单位)在终止连接尝试之前等待连接到数据库的时间长度。留空以永远不终止连接。

Socket timeout:指定(以毫秒为单位)在终止写入操作之前等待的时间长度。留空以永远不终止操作。

 3、通过生成记录步骤生成一条数据,包含name和age两个字段,如下图所示。

 4、Output options ,写入mongo设置,如下图所示。

Database:写入数据的数据库的名称。单击“获取DBs”以在下拉菜单中填充服务器上数据库列表。

Collection:写入数据的集合的名称。单击“获取集合”以在下拉菜单中填充数据库中集合的列表。

Batch insert size: 规定批量插入操作的批量大小。默认值为100行。

Truncate collection:选择在插入新数据之前删除目标集合中的现有数据。

Update:设置指定数据库和集合的更新写入方法。除非选择了"Update"字段,否则"Upsert"和"Modifier"更新选项是不可用的。

Upsert:选择将写入方法从插入更改为 upsert。upsert 方法根据 Mongo 文档字段选项卡中指定的所有传入字段,将匹配的记录替换为全新的记录。如果更新的匹配条件失败,将创建一个新记录。

Multi-update:选择对每个更新或 upsert 操作更新所有匹配的文档。

Modifier update:选择启用修饰符($ operators),用于修改匹配文档中的个别字段。选择多更新选项时,将更新所有匹配的文档。

要更新多个匹配的文档,请选择 "Modifier update" 和 "Upsert"。选择 "Modifier update"、"Upsert" 和 "Multi-update" 将会将更新应用于所有匹配的文档,而不仅仅是第一个匹配的文档。

Number of retries for write operations:指定尝试写入操作的次数。

Delay, in seconds, between retry attempts:指定在下次重试之前等待的秒数。

Write concern (w option):

指定写入操作必须成功的最小服务器数量。可用的取值如下:

-1:禁用所有写入操作错误的确认。

0(零):禁用基本写入操作的确认,但返回有关套接字异常和网络错误的信息。

1:确认写入主节点上的写入操作。

大于1:等待成功写入指定数量的从节点上的写入操作,包括主节点。

点击 "获取自定义写入关注" 以检索存储在存储库中的自定义写入关注。

w Timeout:指定等待写入操作响应的时间(以毫秒为单位),然后终止操作。如果不想终止操作,请留空。

Journaled writes:选择设置写入操作等待,直到 mongod(MongoDB 系统的主要守护进程)确认写入操作并将数据提交到日志。

Read preference:

指定首先读取的节点类型

- Primary(主节点)
- Primary preferred(首选主节点)
- Secondary(从节点)
- Secondary preferred(首选从节点)
- Nearest(最近节点)

 5、使用 Mongo 文档字段选项卡来定义在步骤中写入 Mongo 文档时如何处理字段值。修改器策略列控制修改器操作何时影响特定字段的执行。当一个 Mongo 文档的数据被拆分到多个传入的 PDI 行中,或者不可能同时执行影响同一个字段的不同修改器操作时,您可以使用修改器策略。

 

 6、使用“创建/删除索引”选项卡来在一个或多个字段上创建和删除索引。除非使用唯一索引,否则 MongoDB 允许插入重复记录。索引是在步骤处理完所有行之后执行的。

 

 

 

 

标签:mongo,kettle,写入,指定,第四十七,文档,操作,output,节点
From: https://www.cnblogs.com/zjBoy/p/18025914

相关文章

  • kettle从入门到精通 第四十五课 ETL之 kettle redis
    1、kettle9.3/9.4spoon客户端中默认是没有redis步骤的,首先想到在kettle的插件市场进行下载redis步骤。 2、可能因为网络原因,直接下载失败了。索性放弃redis原有插件步骤,改为自己通过java代码进行实现,(有java基础的可以通过java代码步骤结合自定义jar包实现一切功能)。 3、将j......
  • ffmpeg之avformat_alloc_output_context2
    函数原型:intavformat_alloc_output_context2(AVFormatContext**ctx,constAVOutputFormat*oformat,constchar*format_name,constchar*filename);功能:查找根据format_name或者filename或者oformat输出类型,并且初始化ctx结......
  • kettle从入门到精通 第四十四课 kettle 去重
     1、我们平常在写应用程序的时候,会有去重的业务场景,可以在数据库层面解决,也可以在内存层面解决。同样kettle也有去重的步骤【唯一行(哈希值)】和【去除重复记录】唯一行(哈希值):使用HashSet来删除重复行,只保留唯一的行。去除重复记录(UniqueRows):删除重复行,只保留唯一的行。这只......
  • flink的分流器-sideoutput Flink 有两种常见的 State类型,分别是:Keyed State (键控状态
    flink的分流器-sideoutputFlink有两种常见的State类型,分别是:KeyedState(键控状态)和OperatorState(算子状态)为了说明侧输出(sideouptut)的作用,浪尖举个例子,比如现在有一篇文章吧,单词长度不一,但是我们想对单词长度小于5的单词进行wordcount操作,同时又想记录下来哪些单词的长度......
  • ETL数据集成工具DataX、Kettle、ETLCloud特点对比
    ETL数据集成工具对于数据仓库,大数据集成类应用,通常会采用ETL工具辅助完成。ETL,是英文 Extract-Transform-Load 的缩写,用来描述将数据从来源端经过抽取(extract) 、交互转换(transform) 、加载(load)至的端的过程当前的很多应用也存在大量的ELT应用模式。常见的ETL工具或类ETL......
  • Kettle如何连接SQL Server和问题处理
    简介Kettle(也称为PentahoDataIntegration)是一款开源的ETL(Extract,Transform,Load)工具,由Pentaho开发。ETL是指从一个数据源(通常是数据库)中提取数据,进行转换,然后加载到目标系统中。Kettle为数据集成和数据仓库开发提供了强大的工具和功能。环境kettle版本:7.1数据库......
  • kettle 数据转换学习
    案例1:  把excel数据抽取到mysql数据库表中 步骤1:编辑EXCEL输入控件选择要抽取的excel文件,并指定哪些字段需要抽取 步骤2: 按照图示步骤操作,最后点击确定设置Mysql的字符集编码characterEncoding          utf8 选择要写入的目标表 ......
  • kettle从入门到精通 第四十课 kettle 增量同步(分钟/小时级)
     1、上一课我们学习了在数据量大的情况下的分页全量同步示例,本次我们一起学习下kettle增量全量同步。有些业务场景不需要实时数据,比如每N分钟抽取一次数据等。  2、kettle增量全量同步示例依然基于test数据库,从t1表增量同步数据到t2表,假定每N(这里的N可以根据业务场景自定......
  • kettle从入门到精通 第四十一课 kettle 事务(单个转换文件)
    1、大家都知道,我们在平常写java或者C#等代码时,如果涉及操作多个表时为了保持数据一致性需要开启事务,同样kettle也支持事务,今天我们一起来学习下kettle单个转换文件内的事务特性。转换文件中的步骤是并行执行的,每个步骤都打开一个独立的数据库连接并开始一个事务。尽管这样在很多......
  • kettle从入门到精通 第三十九课 kettle 增量同步(日级)
     1、上一课我们学习了在数据量大的情况下的分页全量同步示例,本次我们一起学习下kettle增量全量同步。有些业务场景不需要实时数据,比如统计t-1日的销售业绩情况等。  2、kettle增量全量同步示例依然基于test数据库,从t1表增量同步数据到t2表,假定每天0点跑批将t1表中的t-1日......