mongodb数据迁移到哪里(MongoDB系列9MongoDB数据迁移到MySQL)
mongodb数据迁移到哪里(MongoDB系列9MongoDB数据迁移到MySQL)MongoDB系列8:MongoDB集合的增量更新MongoDB存储引擎MongoDB安全实战之SSL协议加密MongoDB安全实战之网络安全加固MongoDB索引的介绍
前面系列文章:
mongodb安全实战之Kerberos认证
MongoDB Compass--MongoDB DBA必备的管理工具
MongoDB安全实战之审计
MongoDB安全实战之SSL协议加密
MongoDB安全实战之网络安全加固
MongoDB索引的介绍
MongoDB存储引擎
MongoDB系列8:MongoDB集合的增量更新
在实际应用中,经常会遇到各种数据库之间的数据迁移,其中有关系型数据库之间的迁移,也有非关系型数据库与关系型数据库之间的迁移。以下介绍MongoDB数据迁移到MySQL的一种方案:使用Python将MongoDB数据迁移到MySQL。
案例使用是Python 3.6版本,需要分别安装MongoDB数据库连接模块pymongo和MySQL数据库连接模块pymysql。
现有MongoDB的mongo_stream库下集合stream_table,文档数据如下:
同样,在MySQL的mongotomysql库下也有stream_table表,字段为id、name、age。需要将MongoDB的stream_table集合数据迁移到mysql的stream_table表。
Python代码如下:
代码说明:
#创建一个MongoDB数据库连接mongo_con;
mongo_con = pymongo.MongoClient(host=’192.168.195.131’ port=27017)
#创建一个MySQL数据库连接mysql_con,并指定连接用户root,连接密码qweasd,连接数据库mongotomysql;
mysql_con = pymysql.connect(“192.168.195.140” ”root” ”qweasd” ”mongotomysql”)
#指定MongoDB连接的库名;
mongo_db = mongo_con.mongo_stream
#指定MongoDB连接的集合stream_table;
mongo_collection = mongo_db.stream_table
#将stream_table集合文档数据,赋于rols。
rols = mongo_collection.find()
#使用for循环遍历rols结果集
for i in rols:
#声明一个mysql游标
mysql_cursor = mysql_con.cursor()
#由于MongoDB集合的文档相当于Python的字典,需要再使用一个for循环遍历每个文档的键,方便将数据插入MySQL表的对应的字段。
for key i in i.keys():
#判断筛选MongoDB的stream_table集合文档的键,并将相应的键值赋予相应的变量。
if key == '_id':
id = i[key]
elif key == 'name':
name = i[key]
elif key == 'age':
age = i[age]
#将数据插入到MySQL表并提交
mysql_cursor.execute('insert into stream_table values ("%s" "%s" "%s")' % (id name age))
mysql_con.commit()
执行以上代码:[root@master ~]# ./mongodb.py
以上结果显示,MongoDB的stream_table集合文档数据成功迁移到MySQL的stream_table表中。
小结:
有时候,为了数据处理的方便,需要将MongoDB数据迁移到关系型数据库上进行处理,本文介绍的借助Python程序实现MongoDB到MySQL数据库的数据迁移的方案,能够满足MongoDB简单的数据迁移需求。