暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

MongoDB系列9:MongoDB数据迁移到MySQL

Hadoop技术学习 2018-04-10
1310

前面系列文章:

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简单的数据迁移需求。

猜你喜欢




#大数据和云计算机技术社区#博客精选(2017)

NoSQL 还是 SQL ?这一篇讲清楚

阿里的OceanBase解密

#大数据和云计算技术#: "四有"社区介绍

大数据和云计算技术周报(第33期)

新数仓系列:Hbase周边生态梳理(1)

《大数据架构详解》第2次修订说明

云观察系列:漫谈运营商公有云发展史

云观察系列:百度云的一波三折

云观察系列:阿里云战略观察

超融合方案分析系列(7)思科超融合方案分析

加入技术讨论群




《大数据和云计算技术》社区群人数已经3000+,欢迎大家加下面助手微信,拉大家进群,自由交流。

喜欢钉钉扫码下面的群:喜欢QQ群的,可以扫描下面二维码:

欢迎大家通过二维码打赏支持技术社区(英雄请留名,社区感谢您,打赏次数超过108+):


文章转载自Hadoop技术学习,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论