1、在学习kettle连接mongo之前,先给大家简单科普下mongo,避免有的童鞋跟不上节奏,老鸟跳过即可。

MongoDB(简称Mongo)是一种开源的文档数据库管理系统,它采用了非常灵活的文档模型,可以存储和处理各种类型和结构的数据。MongoDB是一个面向文档的数据库,意味着它的数据存储在称为文档的BSON(二进制JSON)格式中。适合非结构化或半结构化数据存储、实时分析、日志记录、内容管理等需要灵活数据模型和高可扩展性的应用场景。

MongoDB中的数据库(database)和MySQL中的数据库类似

MongoDB中的集合(collection)类似于MySQL中的表(table)

MongoDB中的文档(document)类似于MySQL中的记录(row)

2、步骤【MongoDB input】可以实现从mongo中读取数据,如下图所示。

kettle mongodb 性能 kettle抽取mongodb_kettle mongodb 性能

 3、配置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:指定(以毫秒为单位)在终止写入操作之前等待的时间长度。留空以永远不终止操作。

Connection timeout

kettle mongodb 性能 kettle抽取mongodb_数据库_02


kettle mongodb 性能 kettle抽取mongodb_数据库_02

 4、Input options ,指定您希望从哪个数据库和集合中检索信息。您还可以指定读取首选项和标签集。

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

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

Read preference(针对集群配置):指定首先读取哪个节点:主节点(primary)、首选主节点(primary preferred)、从节点(secondary)、首选从节点(secondary preferred)或最近节点(nearest)。

kettle mongodb 性能 kettle抽取mongodb_etl_04

 5、Query,设置mongo查询语句。

kettle mongodb 性能 kettle抽取mongodb_kettle_05

 6、Fields,输出字段,可以选择以整体json字符串格式输出,也可以选择将json字符串解析为单个字段,如下图所示。

kettle mongodb 性能 kettle抽取mongodb_数据仓库_06