根据生产需要,同步非实时数据到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文件里面的时间戳就可以了。
datax同步MySQL数据到mongodb_第1张图片
配合定时任务就可以实现每天修改配置文件了