有些用户业务系统的数据库是 MongoDB,需要通过定时任务将数仓或其他业务系统的数据输出到 MongoDB 。
定时任务支持写入 MongoDB。如下图所示:
1)使用该功能前,需要确保数据平台已经注册了「NoSQL」功能点,注册事项详情参见:注册简介
2)需要先创建 MongoDB数据连接
3)可使用 to_json 函数,构建 MongoDB 集合中的 json 字段。
本文示例:将本地表 jihe 中的数据同步到包含 array 字段类型的 MongoDB 集合中。
示例数据(源数据):jihe.xlsx
如下图所示:
MongoDB 集合数据(info 字段为 array 类型):
需要使用「Spark SQL」算子,将二维表的多个字段拼成一个 json 对象数组。
1)新建定时任务,拖入「数据转换」节点,进入「数据转换」节点。
2)拖入「DB表输入」算子,读取本地数据。如下图所示:
1)拖入「Spark SQL」算子,将本地数据的 date、time 字段拼成一个 json 对象数组,便于后续同步到包含 array 字段类型的 MongoDB 集合中。如下图所示:
注:语句中表名和表字段需要点击生成;to_json、struct 函数具体介绍请参见:to_json、struct 函数
SELECT username, concat("[",concat_ws(",",collect_list(to_json(struct(date,time)))),"]")as kaoqinFROM DB表输入 GROUP BY username
点击「数据预览」,如下图所示:
1)拖入「MongoDB输出」算子,将处理后的数据输出到 MongoDB 集合中,写入方式选择「直接将数据写入目标集合」即可。如下图所示:
注:数据同步到 MongoDB 集合的数组字段时,源表字段值中需要带中括号[]
各设置项介绍如下表所示:
已存在集合:
选择数据库后,备选项为对应数据库下所有集合
自动建集合:
1)支持配置目标集合字段名称、字段类型
2)4.1.6.1 之前版本集合名称支持包含英文、数字、下划线,4.1.6.1 及之后版本,集合名称支持包含英文、中文、数字、下划线
3)支持配置字段的非空属性
4)不支持配置主键字段:因为 MongoDB 集合的主键,默认为「_id」字段,不支持自定义
5)不支持「手动建表」功能
2)支持给已存在集合的「_id」字段配置映射。如下图所示:
1)写入方式支持清空目标集合,再写入数据
2)写入方式支持直接将数据写入目标集合
支持设置主键冲突策略:
支持设置主键映射:当字段映射中有 MongoDB「_id」字段的映射,则主键默认设置「_id」的字段映射;当字段映射中没有MongoDB「_id」字段的映射,则用户可以设置其他字段为逻辑主键
3)写入方式支持:基于标识字段,追加/更新/删除数据
逻辑删除:只对标识值为null的数据行进行逻辑删除
支持设置标识字段、标识值
支持设置主键映射:当字段映射中有MongoDB「_id」字段的映射,则主键默认设置「_id」的字段映射;当字段映射中没有MongoDB「_id」字段的映射,则用户可以设置其他字段为逻辑主键
2)点击右上角「保存」按钮。
运行后,MongoDB 集合数据如下图所示:
滑鼠選中內容,快速回饋問題
滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。
不再提示
10s後關閉
反馈已提交
网络繁忙