从 MongoDB 数据库流式传输数据

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 仅回填时序集合,不会复制回填后执行的插入、更新或删除操作。

后续步骤