当前位置:   article > 正文

MySQL数据导入到mongodb_mysql datetime 插入mongodb

mysql datetime 插入mongodb

MySQL数据导入到mongodb

需求:将MySQL表中的数据以键值对的形式导入到mongodb中去

实现步骤:

  1. MySQL表中的数据导出为键值对形式的json格式文本
  • 通过json文本将数据导入到mongodb中
     
    1. # MySQL数据导出为键值对格式的json文件脚本
    2. vim mysql_to_json.py
    3. #coding=utf8
    4. import sys
    5. reload(sys)
    6. sys.setdefaultencoding("utf-8")
    7. import json
    8. import csv
    9. import sys
    10. import MySQLdb
    11. import datetime
    12. from datetime import date
    13. class CJsonEncoder(json.JSONEncoder):
    14. def default(self, obj):
    15. if isinstance(obj, datetime.datetime):
    16. return obj.strftime('%Y-%m-%d %H:%M:%S')
    17. elif isinstance(obj, date):
    18. return obj.strftime("%Y-%m-%d")
    19. else:
    20. return json.JSONEncoder.default(self, obj)
    21. def dbconnect():
    22. try:
    23. db = MySQLdb.connect(
    24. host = "127.0.0.1",
    25. user = "root",
    26. passwd = "123456",
    27. )
    28. except Exception as e:
    29. sys.exit("Can't connect to Database")
    30. return db
    31. def DB_to_json(output_json):
    32. try:
    33. db = dbconnect()
    34. cursor = db.cursor()
    35. # cursor.execute("select * from devops.auth_user where id >= 11000000 and id < 13000000") # 避免数据量过大超过可用内存
    36. cursor.execute("select * from devops.auth_user;")
    37. headers = [x[0] for x in cursor.description]
    38. data = cursor.fetchall()
    39. json_result=[]
    40. for i in data:
    41. json_result.append(dict(zip(headers,i)))
    42. try:
    43. with open(output_json + '.json', 'w') as json_out:
    44. # 添加 ensure_ascii=False 解决字符集json解析异常问题
    45. json.dump(json_result, json_out,indent=2,ensure_ascii=False,encoding='utf-8',cls=CJsonEncoder)
    46. except Exception as e:
    47. print "Error in generating json file \n", e
    48. except Exception as e:
    49. print e
    50. print "\n-------- Enter Json filename -------------\n"
    51. if __name__ == "__main__":
    52. DB_to_json(output_json="/data/sql/auth_user")
    1. # json文本数据导入mongodb脚本
    2. vim json2mongodb.sh
    3. #!/bin/bash
    4. /usr/local/mongodb/bin/mongoimport --port=27000 --db devops --collection auth_user --jsonArray --file /data/sql/auth_user.json

    实测:

    /usr/local/anaconda/bin/python mysql_to_json.py 
    bash json2mongodb.sh
    检查:此时可以通过连接mongodb进去查看数据是否有导入成功了,这里不再多描述

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

闽ICP备14008679号