当前位置:   article > 正文

MongoDB:MySQL数据向MongoDB迁移_mysql 迁移mongo

mysql 迁移mongo


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中读取数据,包括数据的字段名称:

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

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

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

将数据转换成json格式:

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

4 将数据存放到mongodb中

  1. if mongo_items:
  2. try:
  3. mongo.order_info1.insert_many(mongo_items)
  4. print('=success insert into mongodb')
  5. except:
  6. print('fail')

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/675587
推荐阅读
相关标签
  

闽ICP备14008679号