mongodb to mysql数据迁移

需求背景

在mongodb中由于没有像关系型数据库一样有统一的SQL规范,查询数据会比较麻烦(相对关系型数据库而言)。所以有时为了方便使用,需要将mongodb数据迁移到mysql中。


迁移脚本

迁移其实很简单,因为mongo支持将数据导出为csv格式文件,而csv格式文件可以导入至mysql。迁移脚本mongo2mysql.sh如下:

#!/bin/bash

#同步mongodb的deps.ESB_SCHINFO_CACHE文档到mysql的shujuzhongxin.160_B2C_GUAHAO_MONGO_DEP_SSDJ_DETAL表

#记录迁移时间

/usr/bin/date 1>> /app/scripts/mongo2mysql.log 2>> /app/scripts/mongo2mysql.log

#将mongodb数据导出成csv

mongoexport -u admin -p123456 --authenticationDatabase admin -d deps -c ESB_SCHINFO_CACHE -f _id,unit_id,his_dep_id,his_doc_id,sch_date,time_type,dep_id,doc_id,status,amt,level_name,his_sch_id,src_num,src_max,update_time --type=csv -o /app/backup/ESB_SCHINFO_CACHE.csv 1>> /app/scripts/mongo2mysql.log 2>> /app/scripts/mongo2mysql.log

#将csv数据导入mysql

mysql -h 10.8.3.245 -uroot -p123456 -e "LOAD DATA LOCAL INFILE '/app/backup/ESB_SCHINFO_CACHE.csv' REPLACE INTO TABLE shujuzhongxin.160_B2C_GUAHAO_MONGO_DEP_SSDJ_DETAL FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '\"' ESCAPED BY '\"' LINES TERMINATED BY '\n';" 1>> /app/scripts/mongo2mysql.log 2>> /app/scripts/mongo2mysql.log

你可能感兴趣的:(mongodb to mysql数据迁移)