在复制活动中配置 MongoDB

本文概述了如何使用数据管道中的复制活动从 MongoDB 复制数据。

支持的配置

有关复制活动下每个选项卡的配置,请分别转到以下部分。

概况

请参阅 常规 设置 指南,以配置 常规 设置选项卡。

来源

转到“源”选项卡以配置复制活动源。 有关详细配置,请参阅以下内容。

显示源选项卡和属性列表的屏幕截图。

需要以下属性:

  • 连接:从连接列表中选择 MongoDB 连接。 如果不存在连接,则通过选择“ 新建”创建新的 MongoDB 连接。
  • 数据库:从下拉列表中选择数据库。
  • 集合名称:指定 MongoDB 数据库中的集合的名称。 可以从下拉列表中选择集合,或选择 “编辑” 以手动输入它。
  • 版本:指定的版本。 建议升级到最新版本,以利用最新的增强功能。 若要了解不同版本之间的差异,请转到本 部分

在“高级”下,可以指定以下字段:

  • 筛选器:使用查询运算符指定选择筛选器。 若要返回集合中的所有文档,请省略此参数或传递空文档 ({})。
  • 游标方法:选择 “+ 新建 ”以指定执行基础查询的方式。 执行查询的方法包括:
    • 项目:指定要在文档中返回的投影字段。 若要返回匹配文档中的所有字段,请省略此参数。
    • sort:指定查询返回匹配文档的顺序。 有关详细信息,请转到 cursor.sort()。
    • limit:指定服务器返回的最大文档数。 有关详细信息,请转到 cursor.limit()。
    • skip:指定要跳过的文档数,以及 MongoDB 开始返回结果的位置。 有关详细信息,请转到 cursor.skip()。
  • 批大小:指定要在 MongoDB 实例的每个响应批次中返回的文档数。 大多数情况下,修改批大小不会影响用户或应用程序。
  • 其他列:添加其他数据列以存储源文件的相对路径或静态值。 后者支持表达式。

目的地

转到“目标”选项卡,配置复制活动目标。 有关详细配置,请参阅以下内容。

显示目标选项卡和属性列表的屏幕截图。

需要以下属性:

  • 数据存储类型:选择 外部
  • 连接:从连接列表中选择 MongoDB 连接。 如果不存在连接,则通过选择“ 新建”创建新的 MongoDB 连接。
  • 数据库:从下拉列表中选择数据库。
  • 集合名称:指定 MongoDB 数据库中的集合的名称。 可以从下拉列表中选择集合,或选择 “编辑” 以手动输入它。

在“高级”下,可以指定以下字段:

  • 写入行为:介绍如何将数据写入 MongoDB。 允许的值: 插入向上插入

    Upsert 的行为是,如果已存在同样的文档_id,则替换该文档;否则,插入新文档。

    注释

    如果在原始文档或列映射中未指定_id,该服务会自动生成一个_id。 为了确保 Upsert 能按预期工作,请确保您的文档具有一个 ID。

  • 写入批处理超时:指定批处理插入操作在超时之前完成的等待时间。允许的值为时间跨度。

  • 写入批大小:此属性控制每个批中要写入的文档的大小。 如果文档大小较大,可以尝试增加该值以提高性能并降低该值。

映射

有关 “映射 ”选项卡配置,请参阅 “映射”选项卡下的“配置映射”。当源数据和目标都是分层数据时,不支持映射。

MongoDB 的数据类型映射

从 MongoDB 复制数据时,以下映射将 MongoDB 数据类型转换为服务内部使用的临时数据类型。

MongoDB 数据类型 临时服务数据类型(对于版本 1.1) 临时服务数据类型(适用于版本 1.0)
日期 日期时间 字符串
对象标识符 (ObjectId) 字符串 字符串
Decimal128 字符串 字符串
时间戳 最重要的 32 位 -> 日期时间
最小有效 32 位 -> Int32
Int32
字符串 字符串 字符串
数组 数组 数组
加倍 加倍 字符串
Int32 Int32 字符串
Int64 Int64 字符串
布尔型 布尔型 布尔型
NullData
文档 字典 字典
javaScript 字符串 字符串
正则表达式 字符串 字符串
minKey 字符串 Int32
maxKey 字符串 Int32
二进制 GUID (当 SubType 为“04”时)
字符串
字符串

设置

对于“设置”选项卡配置,请转到“设置”选项卡下的“配置其他设置”。

MongoDB 版本之间的差异

下表显示了不同版本之间的功能差异。

版本 1.1 版本 1.0
以下映射用于从 MongoDB 数据类型到中间服务数据类型。

日期 -> Datetime
TimeStamp -> 最高有效的 32 位 -> DateTime; 最小有效的 32 位 -> Int32
双 -> 双
Int32 -> Int32
Int64 -> Int64
minKey - > 字符串
maxKey -> 字符串
二进制 -> GUID (当 SubType 为“04”) / 字符串
以下映射用于从 MongoDB 数据类型到中间服务数据类型。

日期 -> 字符串
TimeStamp -> Int32
Double -> 字符串
Int32 -> 字符串
Int64 -> 字符串
minKey -> Int32
maxKey -> Int32
二进制 -> 字符串

表摘要

下表包含有关 MongoDB 中复制活动的详细信息。

源信息

名称 DESCRIPTION 价值 必选 JSON 脚本属性
数据存储类型 你的数据存储类型。 外部 是的 /
连接 与源数据存储的连接。 < 您的 MongoDB 连接 > 是的 连接
数据库 用作源的数据库。 < 你的数据库 > 是的 数据库
集合名称 MongoDB 数据库中集合的名称。 < 你的收藏 > 是的 集合
版本 指定的版本。 • 1.1
• 1.0
是的 版本:
• 1.1
• 1.0
滤波器 使用查询运算符的选择筛选器。 若要返回集合中的所有文档,请省略此参数或传递空文档 ({})。 < 选择筛选器 > 过滤器
游标方法 执行基础查询的方式。 项目
排序
限制
跳过
cursorMethods:
•项目
•排序
•限制
跳过
批大小 从 MongoDB 实例响应中每个批次数返回的文档数量。 < 你的写入批大小 >
(默认值为 100)
批处理大小
其他列 添加其他数据列以存储源文件的相对路径或静态值。 后者支持表达式。 • 姓名
•价值
附加列:
•名字
•价值

目的地信息

名称 DESCRIPTION 价值 必选 JSON 脚本属性
数据存储类型 你的数据存储类型。 外部 是的 /
连接 与目标数据存储的连接。 < 您的 MongoDB 连接 > 是的 连接
数据库 用作目标的数据库。 < 你的数据库 > 是的 数据库
集合名称 MongoDB 数据库中集合的名称。 < 你的收藏 > 是的 集合
写入行为 介绍如何将数据写入 MongoDB。 允许的值: 插入向上插入

Upsert 的行为是,如果已存在同样的文档_id,则替换该文档;否则,插入新文档。

注意:如果在原始文档或列映射中未指定_id,该服务会自动为文档生成一个_id。 为了确保 Upsert 能按预期工作,请确保您的文档具有一个 ID。
插入 (默认值)
Upsert
writeBehavior:
• 插入
• 更新插入
写入批处理超时 超时前等待批插入操作完成的时间。 时间跨度
(默认值为 00:30:00 - 30 分钟)
writeBatchTimeout
写入批大小 控制每批中要写入的文档的大小。 如果文档大小较大,可以尝试增加此值以提高性能并降低该值。 < 你的写入批大小 > writeBatchSize