在复制活动中配置 Azure Cosmos DB for MongoDB

本文概述了如何在管道中使用复制活动从 Azure Cosmos DB for MongoDB 复制数据并写入其中。

支持的配置

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

概况

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

来源

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

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

需要以下属性:

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

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

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

目的地

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

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

需要以下属性:

  • 连接:从连接列表中选择 Azure Cosmos DB for MongoDB 连接。 如果不存在连接,则通过选择连接列表底部的 “更多” 来创建新的 Azure Cosmos DB for MongoDB 连接。
  • 数据库:从下拉列表中选择数据库。
  • 集合名称:指定 Azure Cosmos DB 集合的名称。 可以从下拉列表中选择集合。

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

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

    Upsert 的行为是在文档已存在时_id替换文档;否则,插入文档。

    注释

    如果未_id在原始文档或列映射中指定文档,该服务会自动为文档生成一个_id。 这意味着必须确保,为了使 Upsert 按预期工作,文档具有 ID。

  • 写入批处理超时:指定批处理插入作在超时之前完成的等待时间。允许的值为时间跨度,默认值为 00:30:00(30 分钟)。

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

映射

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

Azure Cosmos DB for MongoDB 的数据类型映射

从 Azure Cosmos DB for MongoDB 复制数据时,以下映射用于从 Azure Cosmos DB for MongoDB 数据类型复制到服务内部使用的临时数据类型。

用于 MongoDB 的 Azure Cosmos DB 数据类型 临时服务数据类型(对于版本 1.1) 临时服务数据类型(适用于版本 1.0)
日期 日期时间 Int64
对象标识符 (ObjectId) String String
Decimal128 String String
时间戳 最重要的 32 位 -> DateTime
最小有效 32 位 -> Int64
最重要的 32 位 -> Int64
最小有效 32 位 -> Int64
String String String
Double Double Double
Int32 Int64 Int64
Int64 Int64 Int64
布尔 布尔 布尔
Null Null Null
JavaScript String String
正则表达式 String String
最小键 String Int64
最大键 String Int64
Binary GUID (当 SubType 为“04”时)
String
String

设置

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

Azure Cosmos DB for MongoDB 版本之间的差异

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

版本 1.1 版本 1.0
以下映射用于从 Azure Cosmos DB for MongoDB 数据类型到临时服务数据类型。

日期 -> Datetime
TimeStamp (最重要的 32 位) -> DateTime
Min 键 -> 字符串
最大键 -> 字符串
二进制 -> GUID (当 SubType 为“04”) / 字符串
以下映射用于从 Azure Cosmos DB for MongoDB 数据类型到临时服务数据类型。

日期 -> Int64
TimeStamp (最重要的 32 位) -> Int64
最小键 -> Int64
最大键 -> Int64
二进制 -> 字符串

表摘要

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

源信息

Name Description 价值 必选 JSON 脚本属性
连接 与源数据存储的连接。 < 用于 MongoDB 的 Azure Cosmos DB 连接 > 是的 连接
Database 用作源的数据库。 < 你的数据库 > 是的 数据库
集合名称 Azure Cosmos DB 集合的名称。 < 你的集合 > 是的 收藏
版本 指定的版本。 • 1.1
• 1.0
是的 版本:
• 1.1
• 1.0
Filter 使用查询运算符的选择筛选器。 若要返回集合中的所有文档,请省略此参数或传递空文档({})。 < 选择筛选器 > 筛选器
游标方法 执行基础查询的方式。 项目
排序
限制
跳过
cursorMethods:
•项目
•排序
•限制
•跳
批大小 要在 MongoDB 实例的每个响应批次中返回的文档数。 在大多数情况下,修改批大小不会影响用户或应用程序。 Azure Cosmos DB 限制每个批的大小不能超过 40MB,这是 文档大小的批处理大小 之和,因此,如果文档大小较大,请减小此值。 < 写入批大小 >
(默认值为 100)
批处理大小
其他列 添加其他数据列以存储源文件的相对路径或静态值。 后者支持表达式。 •名字
•价值
additionalColumns:
•名字
•价值

目标信息

Name Description 价值 必选 JSON 脚本属性
连接 与目标数据存储的连接。 < 用于 MongoDB 的 Azure Cosmos DB 连接 > 是的 连接
Database 用作目标的数据库。 < 你的数据库 > 是的 数据库
集合名称 Azure Cosmos DB 集合的名称。 < 你的集合 > 是的 收藏
写入行为 介绍如何将数据写入 Azure Cosmos DB for MongoDB。 允许的值: 插入向上插入

Upsert 的行为是在文档已存在时_id替换文档;否则,插入文档。

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