Datastream 支持从 MongoDB 来源复制变更事件。 MongoDB 是一种开源 NoSQL 数据库,使用类似 JSON 的文档。一个文档可以嵌入其他文档。文档会收集到集合中,而 MongoDB 数据库会存储一个或多个文档集合。
与关系型 SQL 数据库将数据存储在由行和列组成的表中不同,MongoDB 数据库中的每条记录都是一个以二进制 JSON (BSON)(数据的二进制表示法)描述的文档。然后,应用可以检索 JSON 格式的这些数据。
本页面包含以下信息:
- 从 MongoDB 数据库复制时需要了解的关键术语
- Datastream 如何处理从源 MongoDB 数据库拉取的数据
- Datastream 支持的 MongoDB 版本和版次
- 将 MongoDB 用作来源时的已知限制
关键词
以下是您在使用 MongoDB 来源时需要了解的关键术语:
SRV 连接:连接字符串,其主机名对应于域名服务 (DNS) 服务记录 (SRV)。该字符串采用以下格式:
mongodb+srv://[username:password@]host[/[defaultauthdb][?options]]如需了解详情,请参阅 MongoDB 文档。
标准连接字符串:MongoDB 连接 URI 的标准格式,用于连接到自托管 MongoDB 独立部署、副本集或分片集群。该字符串采用以下格式:
mongodb://[username:password@]host1[:port1][,...hostN[:portN]][/[defaultauthdb][?options]]如需了解详情,请参阅 MongoDB 文档。
副本集:实现复制和自动故障切换的 MongoDB 服务器集群。副本集提供冗余和高可用性,是所有生产部署的基础。
分片集群:MongoDB 分片集群由分片、mongos 和配置服务器组成。MongoDB 在集合级别对数据进行分片,将集合数据分布在集群中的各个分片上。
mongos:客户端应用与分片集群之间的接口。
mongos充当查询路由器,并将操作写入分片。集合:MongoDB 以分层结构整理数据。MongoDB 部署包含一个或多个数据库,每个数据库包含一个或多个集合。在每个集合中,MongoDB 将数据存储为包含字段和值对的文档。集合类似于关系型数据库中的表。
行为
源 MongoDB 数据库依靠变更数据流将更改复制到目标位置。变更数据流可让您访问实时数据,并且副本集和分片集群支持变更数据流。
- 如果已配置,系统会为包含的对象复制所有历史数据。
- 系统会复制指定对象的所有更改,例如插入、更新和删除。
版本
Datastream 支持 5.0 之后的 MongoDB 版本。
已知限制
将 MongoDB 用作来源的已知限制包括:
- 使用 Datastream API 时,您只能指定要在数据流中排除哪些字段。不支持为字段指定包含列表。
- 严格模式不支持
Infinity、-Infinity和NaN数值。在严格模式下,如果文档包含这些值,则会被舍弃。 如果您的数据库包含这些值,请使用规范模式(默认)。 如需了解详情,请参阅 MongoDB 数据类型。 - Datastream 不支持基于请求单位 (RU) 的 Azure Cosmos DB。
- Datastream 不支持 Amazon DocumentDB 弹性集群。
- Datastream 不会复制 MongoDB 时序集合中的变更事件,因为 MongoDB 不支持这些集合上的变更数据流。Datastream 仅回填时序集合,不会复制回填后执行的插入、更新或删除操作。
后续步骤
- 了解如何配置 MongoDB 来源以与 Datastream 搭配使用。
- 了解如何使用 API 和 gcloud CLI 创建 MongoDB 流。