Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
适用于:
Azure 数据工厂
Azure Synapse Analytics
本文概述了如何在 Azure 数据工厂 或 Synapse Analytics 管道中使用复制活动,将数据从 MongoDB Atlas 数据库复制到其他地方,或从其他地方复制到 MongoDB Atlas 数据库。 基于提供复制活动一般概述的复制活动概述一文。
支持的功能
此 MongoDB Atlas 连接器支持以下功能:
| 支持的功能 | IR |
|---|---|
| 复制活动 (源/接收器) | (1) (2) |
(1) Azure集成运行时 (2) 自承载集成运行时
如需可以用作源/接收器的数据存储的列表,请参阅支持的数据存储表。
先决条件
如果数据存储位于本地网络、Azure虚拟网络或 Amazon 虚拟私有云中,则需要配置自承载集成运行时以连接到它。
如果数据存储是托管的云数据服务,则可以使用Azure Integration Runtime。 如果访问仅限于防火墙规则中批准的 IP,则可以将 Azure Integration Runtime IP 添加到允许列表。
还可以在 Azure 数据工厂 中使用 托管虚拟网络集成运行时功能访问本地网络,而无需安装和配置自承载集成运行时。
要详细了解网络安全机制和数据工厂支持的选项,请参阅数据访问策略。
入门
若要使用管道执行复制活动,可以使用以下工具或 SDK 之一:
在 UI 中创建连接到 MongoDB Atlas 的服务
使用以下步骤在 Azure 门户 UI 中创建到 MongoDB Atlas 的链接服务。
浏览到Azure 数据工厂或 Synapse 工作区中的“管理”选项卡并选择“链接服务”,然后单击“新建”:
搜索 MongoDB Atlas 并选择 MongoDB Atlas 连接器。
配置服务详细信息、测试连接并创建新的链接服务。
连接器配置详细信息
以下各部分提供了有关用于定义特定于 MongoDB Atlas 连接器的数据工厂实体的属性的详细信息。
连接的服务属性
MongoDB Atlas 链接服务支持以下属性:
| 属性 | 描述 | 必需 |
|---|---|---|
| 类型 | type 属性必须设置为:MongoDbAtlas | 是 |
| connectionString | 指定 MongoDB Atlas 连接字符串,例如 mongodb+srv://<username>:<password>@<clustername>.<randomString>.<hostName>/<dbname>?<otherProperties>。 还可以在 Azure 密钥保管库 中存放连接字符串。 有关更多详细信息,请参阅《Azure 密钥保管库 中存储凭据》。 |
是 |
| 数据库 | 要访问的数据库的名称。 | 是 |
| 驱动程序版本 | 将驱动程序版本指定为 v2,它支持 MongoDB 3.6 及更高版本。�有关详细信息,请转到此文章。 | 否 |
| connectVia | 连接到数据存储时要使用的Integration Runtime。 在先决条件部分了解更多信息。 如果未指定,则使用默认Azure Integration Runtime。 | 否 |
示例:
{
"name": "MongoDbAtlasLinkedService",
"properties": {
"type": "MongoDbAtlas",
"typeProperties": {
"connectionString": "mongodb+srv://<username>:<password>@<clustername>.<randomString>.<hostName>/<dbname>?<otherProperties>",
"database": "myDatabase",
"driverVersion": "<driver version>"
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
数据集属性
有关可用于定义数据集的各部分和属性的完整列表,请参阅数据集和链接服务。 MongoDB Atlas 数据集支持以下属性:
| 属性 | 描述 | 必需 |
|---|---|---|
| 类型 | 数据集的 type 属性必须设置为:MongoDbAtlasCollection | 是 |
| collectionName | MongoDB Atlas 数据库中集合的名称。 | 是 |
示例:
{
"name": "MongoDbAtlasDataset",
"properties": {
"type": "MongoDbAtlasCollection",
"typeProperties": {
"collectionName": "<Collection name>"
},
"schema": [],
"linkedServiceName": {
"referenceName": "<MongoDB Atlas linked service name>",
"type": "LinkedServiceReference"
}
}
}
复制活动 属性
有关可用于定义活动的各部分和属性的完整列表,请参阅管道一文。 本部分提供 MongoDB Atlas 源和接收器支持的属性列表。
MongoDB Atlas 作为源
复制活动source部分支持以下属性:
| 属性 | 描述 | 必需 |
|---|---|---|
| 类型 | 复制活动 "source" 的 "type" 属性必须设置为:MongoDbAtlasSource | 是 |
| 筛选器 | 使用查询运算符指定选择筛选器。 若要返回集合中的所有文档,请省略此参数或传递空文档 ({})。 | 否 |
| cursorMethods.project | 指定要在文档中返回用于投影的字段。 若要返回匹配文档中的所有字段,请省略此参数。 | 否 |
| cursorMethods.sort | 指定查询返回匹配文档的顺序。 请参阅 cursor.sort()。 | 否 |
| cursorMethods.limit | 指定服务器返回的文档的最大数量。 请参阅 cursor.limit()。 | 否 |
| cursorMethods.skip(跳过方法) | 指定要跳过的文档数量以及 MongoDB Atlas 开始返回结果的位置。 请参阅 cursor.skip()。 | 否 |
| 批量大小 | 指定从 MongoDB Atlas 实例的每批响应中返回的文档的数量。 大多数情况下,修改批大小不会影响用户或应用程序。 Azure Cosmos DB限制每个批处理的总大小不能超过 40MB,这个限制是由批处理中所有文档的大小总和决定的,因此,如果其中某个文档的大小较大,请减小此值。 | 否 (默认值为 100) |
提示
服务支持在严格模式下处理 BSON 文档。 请确保筛选器查询处于严格模式,而不是 Shell 模式。 有关详细说明,请参阅 MongoDB 手册。
示例:
"activities":[
{
"name": "CopyFromMongoDbAtlas",
"type": "Copy",
"inputs": [
{
"referenceName": "<MongoDB Atlas input dataset name>",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "<output dataset name>",
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "MongoDbAtlasSource",
"filter": "{datetimeData: {$gte: ISODate(\"2018-12-11T00:00:00.000Z\"),$lt: ISODate(\"2018-12-12T00:00:00.000Z\")}, _id: ObjectId(\"5acd7c3d0000000000000000\") }",
"cursorMethods": {
"project": "{ _id : 1, name : 1, age: 1, datetimeData: 1 }",
"sort": "{ age : 1 }",
"skip": 3,
"limit": 3
}
},
"sink": {
"type": "<sink type>"
}
}
}
]
MongoDB Atlas 作为数据接收端
在复制活动的 sink 节中支持以下属性:
| 属性 | 描述 | 必需 |
|---|---|---|
| 类型 | 复制活动接收器的“type”属性必须设置为“MongoDbAtlasSink”。 | 是 |
| writeBehavior | 介绍如何将数据写入 MongoDB Atlas。 允许的值为 insert 和 upsert。 upsert 的行为是,如果已存在具有相同 _id 的文档,则替换该文档;否则将插入该文档。注意:如果在原始文档中未指定 _id,或未通过列映射指定 _id,则服务会自动为文档生成 _id。 这表示必须先确保文档有 ID,才能让 upsert 按预期工作。 |
否 (默认值为 insert) |
| writeBatchSize | writeBatchSize 属性控制每个批中可写入的文档大小。 可尝试增大 writeBatchSize 的值以提高性能,并在文档大小较大时减小该值。 | 否 (默认值为 10,000) |
| writeBatchTimeout | 在超时发生前,等待批量插入操作完成的时间。允许的值为时间跨度。 | 否 (默认值为 00:30:00 - 30 分钟) |
提示
若要按原样导入 JSON 文档,请参阅导入或导出 JSON 文档部分;若要从表格形数据复制,请参阅架构映射。
示例
"activities":[
{
"name": "CopyToMongoDBAtlas",
"type": "Copy",
"inputs": [
{
"referenceName": "<input dataset name>",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "<Document DB output dataset name>",
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "<source type>"
},
"sink": {
"type": "MongoDbAtlasSink",
"writeBehavior": "upsert"
}
}
}
]
导入和导出 JSON 文档
可以使用此 MongoDB Atlas 连接器轻松地:
- 在两个 MongoDB Atlas 集合之间按原样复制文档。
- 将 JSON 文档从各种源导入 MongoDB Atlas,包括从 Azure Cosmos DB、Azure Blob 存储、Azure Data Lake Storage和其他支持的基于文件的存储。
- 将 JSON 文档从 MongoDB Atlas 集合导出到各种基于文件的存储。
为了实现与架构无关的复制,请在数据集中的“架构”(也称为< c0 >schema< /c0 >)部分和复制活动中的架构映射中跳过该节。
模式映射
要将数据从 MongoDB Atlas 复制到表格接收器或进行反向复制,请参阅架构映射。
MongoDB Atlas 的数据类型映射
从 MongoDB Atlas 复制数据时,会使用以下从 MongoDB Atlas 数据类型到服务内部使用的临时数据类型的映射。 若要了解复制活动如何将源架构和数据类型映射到接收器,请参阅架构和数据类型映射。
| MongoDB Atlas 数据类型 | 临时服务数据类型 |
|---|---|
| 日期 | String |
| 对象标识符 (ObjectId) | String |
| Decimal128 | String |
| 时间戳 | 最重要的 32 位 -> Int64 最小有效 32 位 -> Int64 |
| String | String |
| Double | String |
| Int32 | String |
| Int64 | String |
| 布尔 | 布尔 |
| Null | Null |
| JavaScript | String |
| 正则表达式 | String |
| 最小键 | Int64 |
| 最大键 | Int64 |
| Binary | String |
相关内容
为了获取复制活动支持的数据源和汇集列表,请参阅支持的数据存储。