You need to enable JavaScript to run this app.
导航

配置 Mongo 数据源

最近更新时间2023.11.03 17:48:30

首次发布时间2023.03.17 16:07:31

DataSail 数据集成中的 MongoDB 数据源为您提供读取和写入 MongoDB 的双向通道数据集成能力,实现不同数据源与 MongoDB 之间进行数据传输。
下文为您介绍 MongoDB 数据同步的能力支持情况。

1 支持的版本

MongoDB 使用的驱动版本是 mongo-java-driver 3.11.0,该驱动支持的内核版本为 3.X 版本。
驱动能力详情请参见MongoDB官方文档

2 支持的字段类型

MongoDB 读写支持的字段类型:

类型离线写入离线读取
OBJECTID支持支持
LONG支持支持
STRING支持支持
INT支持支持
DECIMAL支持支持
NULL支持支持
DOUBLE支持支持
DATE支持支持
TIMESTAMP支持支持
BINDATA支持支持
BOOL支持支持
REGEX支持支持
JAVASCRIPT支持支持
UNDEFINED支持支持
JAVASCRIPTWITHSCOPE支持支持
ARRAY支持支持

3 数据同步任务开发

3.1 数据源注册

新建数据源操作详见配置数据源,下面为您介绍用连接串方式配置 MongoDB 数据源信息.
其中参数名称前带 * 的为必填参数,名称前未带 * 的为可选填参数。

参数说明
基本配置
*数据源类型MongoDB
*接入方式连接串
*数据源名称数据源的名称,可自行设置,仅支持中文,英文,数字,“_”,100个字符以内。
参数配置
*主机名或 IP 地址MongoDB 接入地址,格式为主机名: 端口,单击新增按钮,支持配置多个 Hosts。
鉴权数据库身份认证所用库。
*数据库名创建 MongoDB 数据库时,数据库的名称。
*用户名数据库登录账号名称。
*密码数据库账号密码。

3.2 新建离线任务

MongoDB 数据源测试连通性成功后,进入到数据开发界面,开始新建 MongoDB 相关通道任务。
新建任务方式详见离线数据同步

3.3 可视化配置说明

任务创建成功后,您可根据实际场景,配置 MongoDB 离线读MongoDB 离线写等通道任务。

3.3.1 MongoDB 离线读

数据来源选择 MongoDB,并完成以下相关参数配置:
其中参数名称前带 * 的为必填参数,名称前未带 * 的为可选填参数。

参数说明
*数据源类型下拉选择 MongoDB 数据源类型。

*数据源名称

已在数据源管理中注册成功的 MongoDB 数据源,下拉可选。
若还未建立相应数据源,可单击数据源管理按钮,前往创建 MongoDB 数据源。

*集合名选择需要采集的数据集合名称,下拉可选。
*主键名MongoDB 中主键字段的名称信息。

3.3.2 MongoDB 离线写

数据目标端选择 MongoDB,并完成以下相关参数配置:
其中参数名称前带 * 的为必填参数,名称前未带 * 的为可选填参数。

参数说明
*目标类型数据去向目标类型选择 MongoDB。

*数据源名称

已在数据源管理界面注册的 MongoDB 数据源,下拉可选。
若还未建立相应数据源,可单击数据源管理按钮,前往创建 MongoDB 数据源。

*集合名对应数据源下,选择需要写入数据的集合名称,下拉可选。

*数据写入方式

写入模式指定了传输数据时是否覆盖的信息:

  • 覆盖式写入:写入时,不清除数据,唯一键相同,用新的数据覆盖旧数据,唯一键不同时,直接插入新数据。

  • 直接写入:不做其他操作,直接写入数据,表示不覆盖,出现唯一键冲突时,任务会执行失败。

*业务主键当写入方式为覆盖写入时,需填写 MongoDB 集合的业务主键字段名称,支持配置多个业务主键,多个主键分隔符为逗号,配置形式为:a.b.c,a.d,k。
写入前准备语句表示数据写入 MongoDB 前,对 MongoDB 中已有数据的前置操作,例如清理历史数据等,需确保输入语句符合 JSON 语法要求。

3.3.3 字段映射

数据来源和目标端配置完成后,需要指定来源和目标端的字段映射关系,根据字段映射关系,数据集成任务将源端字段中的数据,写入到目标端对应字段中。
您可通过以下三种方式操作字段映射关系:

  • 同名映射:单击同名映射按钮,根据目标端/源端数据表信息,可以自动填充源端/目标端的字段信息。

  • 手动添加:单击手动添加按钮,可以手动编辑来源和目标的字段信息,可以逐个添加。

  • 移动\删除字段:您也可以根据需要移动字段映射顺序或删除字段。

4 高级参数说明

对于可视化通道任务,读参数需要加上 job.reader. 前缀,写参数需要加上 job.writer. 前缀,如下图所示:

4.1 MongoDB 离线读

离线读支持以下高级参数,您可根据实际情况进行配置:

参数名描述默认值
reader_fetch_size单批次读取文档 doc 的数量。100000

filter

指定读取过滤条件,满足 MongoDB 语法,如读取 id = 1000 的数据,填写示例如下:
{id: {$eq: 1000}}

split_mode

分片模式支持两种:

  1. paginating:单个分片的数量为:totalRecords / batchSize

  2. parallelism:若 MongoDB 支持 splitVector 功能,则使用 MongoDB 内置切片功能,否则将根据文档数量/parallelism 平均划分,单个分片的数量为:totalRecords / parallelismpaginating:根据数据量/fetchsize精确分片

说明

若需关闭分片,可设置并发度为 1。

parallelism

4.1 MongoDB 离线写

离线写支持以下高级参数,您可根据实际情况进行配置:

参数名描述默认值
max_connection_per_host连接池最大连接数。100
connect_timeout_ms连接超时时间。10000
batch_size单批次写入 MongoDB 的数据量。100