类型 | 支持版本 |
自建 MongoDB | 3.6 / 4.0 / 4.2 / 4.4 / 5.0 / 6.0 / 7.0 / 8.0 |
腾讯云数据库 MongoDB | 3.6 / 4.0 / 4.2 / 4.4 / 5.0 / 6.0 / 7.0 / 8.0 |
能力 | 支持情况 | 说明 |
离线同步(读 / 写) | ✓ / - | 支持作为离线同步任务的源端读取数据;DataBuddy 数据源仅支持接入读取,不支持写入 |
实时同步(读 / 写) | ✓ / - | 支持作为实时同步任务的源端读取整库数据变更;DataBuddy 数据源仅支持接入读取,不支持写入 |
限制项 | 说明 |
版本要求 | MongoDB 版本必须 ≥ 3.6 |
副本集 | 需配置为副本集(Replica Set)模式才能使用 Change Streams |
oplog 保留 | 需要足够的 oplog 保留时间以支持增量同步 |
系统集合 | 不支持 system.* 等系统集合的同步 |
限制项 | 说明 |
单文档大小 | 不超过 16 MB(MongoDB 限制) |
嵌套深度 | 建议控制文档嵌套深度,过深可能影响性能 |
字段类型 | 离线读 | 实时读 |
Int32 / Int64 / Long / Double / Decimal128 | ✅ | ✅ |
Boolean / String / ObjectId / UUID / Symbol / Regex | ✅ | ✅ |
JavaScript / BinData | ✅ | ✅ |
Date / Timestamp | ✅ | ✅ |
Object / Array / Null / Undefined / MinKey / MaxKey / DBPointer | ✅ | ✅ |
源端类型(BSON) | DataBuddy 内部类型 | 备注 |
Int32 / Int64 | Long | - |
Double(声明为 INT / INT32 / INTEGER / INT64 / BIGINT) | Long | 截断取整,丢失小数部分 |
Double(其他声明) | Double | 遵循 IEEE 754 浮点精度 |
Decimal128 | String | 按文本读取,高精度的十进制语义保留为字符串 |
Boolean | Boolean | - |
Date / Timestamp | Date | - |
String | String | - |
ObjectId / Symbol / Regex / JavaScript / JavaScript(with scope) | String | 按文本读取,不做结构解析 |
BinData / UUID | String | 按文本读取,不做内容解析 |
Object / Array | String | 按 JSON 文本序列化读取 |
Null / Undefined / MinKey / MaxKey / DBPointer | String | 取不到值时按空值读取 |
源端类型(BSON) | TCLake 目标类型 | 备注 |
Int | INTEGER | - |
Long | LONG | - |
Double | DOUBLE | - |
Decimal128 | DECIMAL | - |
Boolean | BOOLEAN | - |
Date | TIMESTAMP | - |
Timestamp | TIMESTAMP | 精度为秒级 |
String | STRING | - |
Object / Array | STRING | 按文本读取,不解析结构 |
ObjectId / Symbol / Regex / JavaScript / JavaScript(with scope) | STRING | 按文本读取 |
BinData | STRING | 二进制按字符串承载 |
DBPointer / MinKey / MaxKey / Null / Undefined | STRING | 按文本读取 |
操作 | 是否支持 | 说明 |
INSERT / UPDATE / REPLACE / DELETE | 是 | 文档级变更操作 |
操作 | 是否支持 |
DROP COLLECTION / DROP DATABASE / RENAME COLLECTION | 否 |
rs.status()
use admindb.createUser({user: "wedata_user",pwd: "your_password",roles: [{ role: "read", db: "your_database" }]})
use admindb.createUser({user: "wedata_cdc_user",pwd: "your_password",roles: [{ role: "read", db: "your_database" },{ role: "read", db: "local" } // 读取 oplog 必需]})
use localdb.oplog.rs.stats() // 查看当前 oplog 配置db.adminCommand({ replSetResizeOplog: 1, size: 10240 }) // 单位 MB
参数 | 说明 | 是否必填 |
数据源名称 | 数据源在工作空间内的唯一标识 | 是 |
连接地址 | MongoDB 连接地址(见下方格式) | 是 |
数据库 | 默认连接的数据库 | 是 |
用户名 | 数据库连接账号(如开启认证) | 视认证情况 |
密码 | 数据库连接密码(如开启认证;支持 SSM 凭证托管) | 视认证情况 |
数据源版本 | 见 支持的版本 | 是 |
部署方式 | 格式示例 |
单节点 | mongodb://host:port |
副本集 | mongodb://host1:port1,host2:port2,host3:port3/?replicaSet=rsName |
分片集群 | mongodb://mongos1:port1,mongos2:port2 |
mongodb://10.0.0.1:27017,10.0.0.2:27017,10.0.0.3:27017/?replicaSet=rs0mongodb://10.0.0.1:27017/mydb?authSource=admin
配置项 | 说明 |
来源表范围 | 指定集合 (仅同步选中的几个,新增集合需重启)/ 正则匹配 (指定库名 + 集合名正则,符合规则的新增集合自动接入) |
读取模式 | 全量 + 增量 / 仅增量 |
订阅类型 | 可勾选 INSERT / UPDATE / DELETE,至少勾选一种 |
参数 | 说明 |
库 / 集合 | 必填;支持选择或手动输入 |
筛选条件 | MongoDB 查询条件(JSON 格式) |
{"age": {"$gte": 18}, "status": "active"}{"create_time": {"$gte": {"$date": "2024-01-01T00:00:00Z"}}}
authSource 配置。db.adminCommand({ replSetResizeOplog: 1, size: 20480 })
文档反馈