根据生产需要,同步非实时数据到mongodb。经过同事间的不断研究,特弄出了这样一套方案:MySQL(RDS)------> Datax------>mongodb。 我们的mysql用的是阿里云的rds,datax也是阿里用的非常多的,安装部署较为简单。 datax部署: 下载地址:http://datax-opensource.oss-cn-hangzhou.aliyuncs.com/datax.tar.gz 下载后解压至本地某个目录,进入bin目录,即可运行同步作业: cd {YOUR_DATAX_HOME}/bin python datax.py {YOUR_JOB.json} monogdb部署: 添加yum源:cd /etc/yum.repos.d cat > mongodb-org-4.0.repo << EOF [mongodb-org] name=MongoDB Repository baseurl=http://mirrors.aliyun.com/mongodb/yum/redhat/7Server/mongodb-org/4.0/x86_64/ gpgcheck=0 enabled=1 EOF 安装之前先更新所有包 :yum update 接下来开始安装:yum -y install mongodb-org 安装完成后根据自己的需求更改配置文件:/etc/mongod.conf 最后启动:systemctl start mongodb

接下来就是重中之重了,配置datax 进入datax的目录,进入bin文件,编辑json文件,具体配置文件参考:https://github.com/alibaba/DataX/blob/master/userGuid.md 最后执行命令启动datax: cd {YOUR_DATAX_DIR_BIN} python datax.py ./stream2stream.json

注:生产环境可以使用shell脚本定时更改json文件以实现每天备份数据,由于我的mysql表和mongodb表都是以时间戳命名的,所以我只需要动态更改json文件里面的时间戳就可以了。 配合定时任务就可以实现每天修改配置文件了