配置 MongoDB 数据源
AE 数据开发平台 离线同步方案 支持 MongoDB 数据源的 写入(Writer)。本文将为您介绍 MongoDB 数据同步能力的支持情况。
MongoDB 是一个文档数据库(以 JSON 为数据模型)。
MongoDB 是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据格式是BSON ,一种类似 JSON 的二进制形式的存储格式,简称Binary JSON ,和 JSON 一样支持内嵌的文档对象和数组对象,因此可以存储比较复杂的数据类型。
| SQL 概念 | MongoDB 概念 | 说明 |
|---|---|---|
| 数据库(database) | 数据库(database) | 逻辑上的命名空间,一个数据库包含多个不同名称的集合 |
| 表(table) | 集合(collection) | 相当于 SQL 中的表,一个集合可以存放多个不同字段(类型)的文档 |
| 行(row) | 文档(document) | 一个文档相当于数据表中的一行,由多个不同的字段组成 |
| 列(column) | 字段(field) | 文档中的一个属性,等同于列( column ) |
| 索引 (index) | 索引(index) | 与 SQL 概念一致 |
| 主键 ( primary key) | _id(字段) | 每个文档中都拥有一个唯一的 id 字段 |
| 视图 (view) | 视图(view) | 虚拟的(非真实存在的)集合 |
| 表连接 ( table joins) | 聚合操作($lookup) | “ 类似 ” 表连接( tablejoin )的聚合操作符 |
MongoDB 最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。
游戏场景:使用 MongoDB 存储游戏用户信息,用户的装备、 积分等直接以内嵌文档的形式存储,方便查询、更新。
支持的版本
MongoDB 4.0+
使用限制
目前仅支持以下配置方式:
- 支持 AE 预置仓空间表 向 MongoDB 写入(离线写入)
注:
- 暂不支持读取 MongoDB 数据源(离线读取)
支持的字段类型
| 字段类型 | 离线写(MongoDB Writer) | 说明 |
|---|---|---|
| INT | 支持 | 32 位整型 |
| LONG | 支持 | 64 位整型 |
| STRING | 支持 | |
| OBJECTID | 支持 | |
| DECIMAL | 支持 | Decimal128,最大34位精度 |
| NULL | 支持 | |
| DOUBLE | 支持 | |
| DATE | 支持 | 秒级精度 |
| TIMESTAMP | 支持 | 毫秒级精度 |
| BOOLEAN | 支持 | |
| BINDATA | 不支持 | |
| REGEX | 不支持 | |
| JAVASCRIPT | 不支持 | |
| MINKEY | 不支持 | |
| MAXKEY | 不支持 |
创建 MongoDB 数据源
在 数据开发平台 - 集成 模块,您可以选择 新增 MongoDB 数据源
数据源配置参数信息
填写数据源所需的配置信息并完成连通性测试后,即可成功创建 MongoDB 数据源。
其中参数名称前带 * 的为必填参数,名称前未带 * 的为可选填参数。
| 字段名称 | 说明 |
|---|---|
| 基本信息 | |
| *数据源名称 | 数开平台空间内唯一,必须以字母、数字、下划线组合,且不能以数字和下划线开头 |
| 备注 | 选填 |
| 数据源配置 | |
| 不区分环境 / 独立环境配置 | 二选一:「不区分环境」表示 生产环境 与 开发环境 共用一套配置,「独立环境配置」表示双环境独立配置 |
| *部署模式 | 支持以下部署模式
|
| *服务地址/IP | 数据库所在的服务地址 集群部署时,多个节点信息输入请点击「增加」 |
| *端口 | 用于访问 MongoDB 的端口 |
| *数据库名 | 连接的 MongoDB 数据库名称 |
| *用户名 | 有权限访问数据库的用户名 |
| *密码 | 用户名对应的密码信息 |
| 认证数据库 | 创建用户时使用的数据库名称,例如:admin |
| 副本集名称 | 当部署模式 = 副本模式时,请填入副本集名称 |
| 高级配置 | 连接数据库所需的其他高级参数,可自定义填写 例如:如需 SSL 证书连接,可用 ssl=true 参数控制 |
注:以上参数信息拼接 connection string ,用于建立与 MongoDB 数据库连接的字符串组合
如:mongodb://<username>:<password>@<instance_ip>:<instance_port>/<database_name>?authSource=admin&ssl=true
创建离线同步任务
根据上述步骤成功 创建 MongoDB 数据源 并测试连通性成功后,您可根据实际场景,配置 MongoDB 离线写 的离线同步任务。
MongoDB 作为数据去向
数据去向选择 MongoDB,并完成以下相关参数配置:
| 字段名称 | 说明 |
|---|---|
| *源类型 | 数据去向目标类型选择 MongoDB |
| *数据源名称 | 已在数据源管理界面注册的 MongoDB 数据源,下拉可选。 若还未建立相应数据源,可单击 数据源管理 按钮,前往创建 MongoDB 数据源。 |
| *数据库名 | 读取的数据库名称 |
| *集合名 | 下拉可选集合名称(collection)
|
| *写入模式 |
|
前置语句 | 作用:数据写入 MongoDB 前,对 MongoDB 中已有数据的前置操作 输入的前置语句需确保符合 JSON 语法要求。 前置条件(PreSQL)的配置包含了
|
| 高级配置 | 批量条数:单批次写入 MongoDB 的数据量 |
| 批量写入间隔:控制内存缓冲区数据刷写(Flush)到 MongoDB 的最大时间间隔,单位为毫秒(ms) |
其中参数名称前带 * 的为必填参数,名称前未带 * 的为可选填参数。
字段映射说明
完成数据来源和目标端配置后,需建立字段映射关系,系统将按照映射关系将源端字段中的数据自动创建目标 collection 中的字段。
- 解析成功后,点击「生成同名映射」,根据源表数据类型生成 Mongo Document 结构
- 用户可二次编辑写入的 Document 的 字段名称 和 字段数据类型。
需要注意一个目标字段只能对应一个来源字段
字段类型映射方式(空间表 —— Mongo):
| 来源文件类型 | 空间表 | MongoDB BSON 类型 | 说明 |
|---|---|---|---|
orc、parquet | tinyint | Int | |
| smallint | Int | ||
| integer | Int | 32 位整型 | |
| bigint | Long | 64 位整型 | |
| varchar | String or ObjectID | ||
| boolean | Boolean | ||
| double | Double | ||
| date | Date | ||
| timestamp | Timestamp | 毫秒级精度 | |
| decimal | Decimal(10) | Decimal128 | |
| array | Array | 数组类型 | |
| row | Object | ||
| map | Object | ||
| csv、text | varchar | String or ObjectID |
预览结果
点击 预览结果,会抽样来源数据生成三条样例写入结果。
注意⚠️:如果来源字段是 Null, 写入预览时该字段不展示,实际写入 Mongo 时该字段为 "key" :null。
基本信息设置
最后,您需要设置集成方案的基本信息,包括方案的名称、负责人、集成的同步速率以及备注等。
完成配置后,可以点击 「保存」 按钮完成集成方案的创建。
注:方案名称保存后不允许修改
详情页展示:
离线同步方案挂流
挂载任务流
1.进入挂载流程
- 在集成方案详情页,点击右上角「挂载到任务流」按钮
2.选择任务流
-
从下拉菜单中选择目标任务流
-
若需新建任务流:
- 点击下拉菜单下方的「新建任务流」快捷按钮
- 或前往「开发」模块创建
-
提示:如未显示目标任务流,可点击右侧↻刷新按钮
3.创建同步节点
- 在任务流中新建「离线同步方案」类型节点
- 该节点将关联当前集成方案,节点执行时即触发对应集成方案的运行
4.完成挂载
- 点击「创建节点并挂载」完成配置
- 挂载成功后,可点击「前往任务流」立即查看挂载结果
注:挂载任务流所创建的任务节点处于 尚未发布状态,建议您前往查看任务流,并将该节点发布上线。
解除任务流挂载
如果您希望解除离线同步方案的任务流挂载,
- 若该任务流还未发布上线,您可前往该方案挂载的任务流,在 开发模式 删除该「离线同步方案」任务节点即可。
- 若该任务流已经发布上线,在 开发模式 删除该「离线同步方案」任务节点后,您需要重新发布该任务流,即同步解除了该节点在 生产环境 上的挂载。

