在大数据开发套件中是可以实现mongo同步到Maxcompute。
数据集成文档:https://help.aliyun.com/document_detail/47677.html?spm=5176.7750354.6.599.jGn50I
后端是通过华东1区的调度资源进行数据的调度传输。但是如果阿里云mongo不在华东1在其他区域,使用默认资源组就不能正常同步了。那么就需要用户通过自己添加调度机器进行同步。
1,准备一台调度服务器,要求必须和云mongo相同网络类型相同的区域。
官方文档:https://help.aliyun.com/document_detail/52330.html?spm=5176.7849806.6.597.l1cpB0
注意:
*请务必使用内网ip新增注册调度资源
*请务必使用ecs实例的主机名称,要求和机器上 hostname下的主机名称一致,修改后的主机名称会出现异常。
*请注意ecs系统,建议使用 centos6、centos7 或者 aliyunos;
大数据开发套件-项目管理-调度资源管理-新增调度资源
增加主机名和内网ip
然后到ecs服务器上初始化
执行初始化命令会有下图
如果成功初始化,一般会显示下载各种需要的包
最后到控制台看下服务器状态,刷新几次
2,在大数据开发套件-数据集成-数据源-新数据源-选择mongo数据源类型
在这里注意,
*如果是mongo副本集,把副本地址都要添加进去
如果是集群,把mongos的地址也都添加进去
*请务必将新增的调度资源ecs的内网ip加入mongo的白名单
3,在数据集成-新建任务
数据集成中mongo数据源暂时不支持向导模式,选择脚本模式
选择来源是mongo,目标odps(即maxcompute)
然后确认会生成脚本模版
具体配置可以参考
{
"configuration": {
"reader": {
"plugin": "mongodb",
"parameter": {
"datasource": "mongoxxxtest",//数据源名称
"column": [
{
"name": "title",
"type": "description"
}
],
"collectionName": "shangdantest"//集合名称
}
},
"writer": {
"plugin": "odps",
"parameter": {
"partition": "",
"truncate": false,
"datasource": "aliyunxxxodps",
"column": [
"title",
"desc_d"
],
"table": "mongo_test"
}
},
"setting": {
"errorLimit": {
"record": "0"
},
"speed": {
"concurrent": "1",
"mbps": "1"
}
}
},
"type": "job",
"version": "1.0"
}
可以参考官方文档配置
https://help.aliyun.com/knowledge_detail/50354.html?spm=5176.7849806.2.13.l1cpB0
配置完成后,点击保存-提交
然后到运维中心-任务管理-找到任务-测试运行看下
任务运行如果失败
到运维中心-任务运维-查看任务运行的日志
日志中如果出现下方错误
*检查数据源,是否把副本地址都写全了,如果是集群mongos地址写全
*检查账户是否是同步库的账户。
如果问题没有解决,可以提交工单咨询阿里云售后工程师