本文概述了如何在管道中使用复制活动从 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 |