MongoDB:MySQL数据向MongoDB迁移



MongoDB:MySQL数据向MongoDB迁移

背景

MySQL作为一个普遍使用的关系型数据库,其性能毋庸置疑,但是当MySQL中的数据太过于庞大时,对查询效率会产生较大的影响,所有我们将过期不常使用的数据迁移到MongoDB中。而MongoDB作为nosql数据库的一种,可以十分方便的存储大规模数据,且它的操作方式和MySQL十分相似,可以说MySQL能够做到的都可以使用MongoDB实现。

迁移

1 将MySQL数据提取处理,包括字段名称
2 将提取到的数据转变成json格式
3 存储到MongoDB中


具体如下
1 使用python中的mysql.connector库MySQL数据库:import mysql.connector,使用pymongo连接mongodb数据库:import pymongo
2 从MySQL中读取数据,包括数据的字段名称:

sql = 'select * from %s where id = %s'%(table_names[1],order_id)
cursor.execute(sql)
rows = cursor.fetchall()
column_names = [d[0] for d in cursor.description]
  • 1
  • 2
  • 3
  • 4

3 使用继承子dict的类将读取到的数据转换成字典的数组,以便于存入mongodb中

#定义一个继承自dict的类
class Row(dict):
    """A dict that allows for object-like property access syntax."""
    def __getattr__(self, name):
        try:
            return self[name]
        except KeyError:
            raise AttributeError(name)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

将数据转换成json格式:

item = [Row(zip(column_names, row)) for row in rows]
item = item[0]
if item:
    '''merge_set_by_set是我定义的把多个表相关联的数据表的数据存放到一起组合成一个json的函数'''
    merge_set_by_set(mongo_item, item,table_names[0])
  • 1
  • 2
  • 3
  • 4
  • 5

4 将数据存放到mongodb中

if mongo_items:
    try:
        mongo.order_info1.insert_many(mongo_items)
        print('=success insert into mongodb')
    except:
        print('fail')

至此,就可以完成从MySQL向mongodb迁移数据的脚本了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值