在复制活动中配置 Azure Cosmos DB for MongoDB
本文概述了如何在数据管道中使用复制活动从/向 Azure Cosmos DB for MongoDB 复制数据。
支持的配置
有关复制活动下每个选项卡的配置,请分别转到以下各部分。
常规
若要配置“常规”设置选项卡,请参阅“常规”设置指导。
源
转到“源”选项卡以配置复制活动源。 有关详细配置,请参阅以下内容。
需要以下属性:
- 连接:从连接列表中选择 Azure Cosmos DB for MongoDB 连接。 如果连接不存在,则通过选择连接列表底部的“更多”,创建新的 Azure Cosmos DB for MongoDB 连接。
- 数据库:从下拉列表中选择数据库。
- 集合名称:指定 Azure Cosmos DB 集合的名称。 可以从下拉列表中选择集合。
在“高级”下,可以指定以下字段:
- 筛选器:使用查询运算符指定选择筛选器。 若要返回集合中的所有文档,请省略此参数或传递空文档 ({})。
- 游标方法:选择“+ 新建”以指定执行基础查询的方式。 执行查询的方法包括:
- 项目:指定要在文档中返回的用于投影的字段。 若要返回匹配文档中的所有字段,请省略此参数。
- 排序:指定查询返回匹配文档的顺序。 有关详细信息,请转到cursor.sort()。
- 限制:指定服务器返回的最大文档数。 有关详细信息,请转到cursor.limit()。
- 跳过:指定要跳过的文档数量以及 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。 允许的值为 Insert 和 Upsert。
Upsert 的行为是,如果已存在具有相同
_id
的文档,则替换该文档;否则将插入该文档。注意
如果未在原始文档中指定
_id
,或未通过列映射指定_id
,则服务会自动为文档生成 _id。 这表示必须先确保文档有 ID,才能让 Upsert 按预期工作。写入批次超时:指定超时前等待批插入操作完成的时间。允许的值为 timespan,默认值为 00:30:00(30 分钟)。
写入批大小:此属性控制每批中要写入的文档的大小。 可尝试增大值以提高性能,并在文档大小较大时减小该值。 默认值为 10,000。
映射
对于“映射”选项卡配置,请参阅“映射”选项卡下的“配置映射”。如果源和目标均为分层数据,则映射不受支持。
设置
对于“设置”选项卡配置,请转到“设置”选项卡下的“配置其他设置”。
表摘要
下表包含有关 Azure Cosmos DB for MongoDB 中复制活动的详细信息。
源信息
名称 | 描述 | 值 | 必选 | JSON 脚本属性 |
---|---|---|---|---|
Connection | 与源数据存储的连接。 | <你的 Azure Cosmos DB for MongoDB 连接> | 是 | 连接 |
Database | 用作源的数据库。 | < 你的数据库 > | 是 | database |
集合名称 | Azure Cosmos DB 集合的名称。 | < 你的集合 > | 是 | collection |
Filter | 使用查询运算符的选择筛选器。 若要返回集合中的所有文档,请省略此参数或传递空文档 ({})。 | < 你的选择筛选器 > | 否 | filter |
游标方法 | 基础查询的执行方式。 | • project • sort • limit • skip |
否 | cursorMethods: • project • sort • limit • skip |
批次大小 | 从 MongoDB 实例的每批响应中返回的文档数量。 大多数情况下,修改批大小不会影响用户或应用程序。 Azure Cosmos DB 限制每个批次不能超过 40MB(这是文档大小的“批次大小”数值之和),因此如果文档很大,请减小该值。 | < 你的写入批大小 > (默认值为 100) |
否 | batchSize |
其他列 | 添加其他数据列以存储源文件的相对路径或静态值。 后者支持表达式。 | • 姓名 • 值 |
否 | additionalColumns: • 名称 • 值 |
目标信息
名称 | 描述 | 值 | 必选 | JSON 脚本属性 |
---|---|---|---|---|
Connection | 与目标数据存储的连接。 | <你的 Azure Cosmos DB for MongoDB 连接> | 是 | 连接 |
Database | 用作目标的数据库。 | < 你的数据库 > | 是 | database |
集合名称 | Azure Cosmos DB 集合的名称。 | < 你的集合 > | 是 | collection |
写入行为 | 介绍如何将数据写入 Azure Cosmos DB for MongoDB。 允许的值为 Insert 和 Upsert。 Upsert 的行为是,如果已存在具有相同 _id 的文档,则替换该文档;否则将插入该文档。注意:如果未在原始文档中或未通过列映射指定 _id ,则服务会自动为文档生成 _id 。 这表示必须先确保文档有 ID,才能让 Upsert 按预期工作。 |
• Insert(默认值) • 更新插入 |
否 | writeBehavior: • 插入 • 更新插入 |
写入批处理超时 | 超时前等待批插入操作完成的时间。 | timespan (默认值为 00:30:00 - 30 分钟) |
否 | writeBatchTimeout |
写入批大小 | 控制每批中要写入的文档的大小。 可尝试增大值以提高性能,并在文档大小较大时减小该值。 | < 你的写入批大小 > (默认值为 10,000) |
否 | writeBatchSize |