根据生产须要,同步非实时数据到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 mongodbpython
接下来就是重中之重了,配置datax
进入datax的目录,进入bin文件,编辑json文件,具体配置文件参考:https://github.com/alibaba/DataX/blob/master/userGuid.md
最后执行命令启动datax:
cd {YOUR_DATAX_DIR_BIN}
python datax.py ./stream2stream.json mysql
注:生产环境能够使用shell脚本定时更改json文件以实现天天备份数据,因为个人mysql表和mongodb表都是以时间戳命名的,因此我只须要动态更改json文件里面的时间戳就能够了。
配合定时任务就能够实现天天修改配置文件了git