MongoDB数据源
MongoDB是一个面向文档的NoSQL数据库,以灵活的JSON格式存储数据,支持高并发和水平扩展。
本数据集成服务支持开源及云上MongoDB产品,支持其主流版本,可满足不同用户在多种部署环境下的数据同步需求。
使用前准备及限制
- 网络要求
MongoDB数据源必须与CDM网络进行通讯,以确保数据传输的顺畅性。详情请参见网络打通。
- 权限要求
- 读权限:数据集成服务需要从MongoDB读取数据,可在目标数据库授予read内置角色。该角色允许用户执行find、aggregate、listCollections、listIndexes等读取操作。
- 写权限:数据集成服务需要向MongoDB写入数据,可在目标数据库授予readWrite内置角色。该角色涵盖read 全部权限,并额外支持insert、update、remove、createCollection、createIndex等写入与结构变更操作。
- 端口放通
MongoDB端口(27017):需放通TCP 27017(及副本集/分片集群实际监听端口)供华为云数据集成服务访问。
支持的数据类型
| 分类 | 字段类型 | 读取是否支持 | 写入是否支持 |
|---|---|---|---|
| 数值 | Integer | √ | √ |
| Long | √ | √ | |
| Double | √ | √ | |
| Decimal | √ | √ | |
| ObjectId | ObjectId | √ | √ |
| 时间 | Date | √ | √ |
| Timestamp | √ | √ | |
| 文档 | Document | √ | √ |
| 字符 | String | √ | √ |
| 数组 | Array | √ | √ |
| 布尔 | Boolean | √ | √ |
| 二进制 | Binary | √ | √ |
| Null | Null | √ | √ |
支持的迁移场景
数据集成离线同步支持以下三种同步方式,以满足不同数据迁移场景的需求:
- 单表同步
适用于数据入湖和数据上云场景下,表或文件级别的数据同步。
- 分库分表同步
适用于数据入湖和数据上云场景下,多库多表同步场景。
- 整库迁移
适用于数据入湖和数据上云场景下,离线或自建数据库整体同步场景。
需要注意的是,分库分表与整库迁移能力会根据不同region的上线支持情况有所不同,具体支持情况以页面为准。以下是针对MongoDB的支持迁移场景概览:
| 支持迁移场景 | 单表读取 | 单表写入 | 分库分表读取 | 分库分表写入 | 整库读取 | 整库写入 |
|---|---|---|---|---|---|---|
| 是否支持 | √ | √ | x | √ | x | x |
核心能力速览
- 连接配置
配置项
支持情况
说明
SSL支持
x
支持SSL加密,保障数据传输安全,暂不支持。
- 读取能力
配置项
支持情况
说明
增量读取
√
支持通过【find条件】配置,实现增量读取。
分片并发
x
通过并发读取,充分利用资源,提升读取性能,MongoDB链路暂不支持。
Document嵌套解析
√
支持解析嵌套的Document数据结构,能够正确处理包含多层嵌套字段的Document数据,确保数据的完整性和准确性。
自定义字段能力
√
可在任务级追加计算列、常量列或脱敏函数,满足个性化业务需求。
脏数据能力
√
支持异常数据写入脏数据桶,避免因少量异常数据导致作业失败。
- 写入能力
配置项
支持情况
说明
导入前清空
√
支持preSql操作,可在数据导入前进行数据清洗和处理。
冲突解决
√
支持【新增】/【替换】等多种写入方式,可灵活处理数据冲突。
并发写入
√
支持并发写入,提升写入效率。
脏数据能力
√
支持异常数据写入脏数据桶,避免因少量异常数据导致作业失败。
创建数据源
在DataArts Studio管理中心新建相应的数据源,详情请参见创建DataArts Studio数据连接。
创建数据集成离线作业
在DataArts Studio数据开发中新建MongoDB集成作业,详情请参见新建离线处理集成作业。