国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python中MySQL數據遷移到MongoDB腳本的方法

2020-01-04 17:30:37
字體:
來源:轉載
供稿:網友
MongoDB 是一個介于關系數據庫和非關系數據庫之間的產品,是非關系數據庫當中功能最豐富,最像關系數據庫的。本文給大家介紹Python中MySQL數據遷移到MongoDB腳本的方法,需要的朋友參考下
 

MongoDB簡介

MongoDB 是一個基于分布式文件存儲的數據庫。由 C++ 語言編寫。旨在為 WEB 應用提供可擴展的高性能數據存儲解決方案。

MongoDB 是一個介于關系數據庫和非關系數據庫之間的產品,是非關系數據庫當中功能最豐富,最像關系數據庫的。

MongoDB是一個文檔數據庫,在存儲小文件方面存在天然優勢。隨著業務求的變化,需要將線上MySQL數據庫中的行記錄,導入到MongoDB中文檔記錄。

一、場景:線上MySQL數據庫某表遷移到MongoDB,字段無變化。

二、Python模塊:

使用Python的torndb,pymongo和time模塊。

*注釋:首先安裝setup.py,pip,MySQLdb

執行如下命令即可:

pip install torndb
pip install pymongo

三、腳本內容如下:

[root ~]#cat nmytomongo.py

#!/usr/bin/env python#fielName: mytomongo.py#Author:xkops#coding: utf-8import torndb,pymongo,time# connect to mysql databasemysql = torndb.Connection(host='127.0.0.1', database='database', user='username', password='password')#connect to mongodb and obtain total lines in mysqlmongo = pymongo.MongoClient('mongodb://ip').databasemongo.authenticate('username',password='password')countlines = mysql.query('SELECT max(table_field) FROM table_name')count = countlines[0]['max(table_field)']#count = 300print counti = 0 j = 100start_time = time.time()#select from mysql to insert mongodb by 100 lines.for i in range(0,count,100): #print a,b #print i #print 'SELECT * FROM quiz_submission where quiz_submission_id > %d and quiz_submission_id <= %d' %(i,j) submission = mysql.query('SELECT * FROM table_name where table_field > %d and table_field <= %d' %(i,j)) #print submission if submission: #collection_name like mysql table_name mongo.collection_name.insert_many(submission) else: i +=100 j +=100 continue i +=100 j +=100end_time = time.time()deltatime = end_time - start_timetotalhour = int(deltatime / 3600)totalminute = int((deltatime - totalhour * 3600) / 60)totalsecond = int(deltatime - totalhour * 3600 - totalminute * 60)#print migrate data total time consuming.print "Data Migrate Finished,Total Time Consuming: %d Hour %d Minute %d Seconds" %(totalhour,totalminute,totalsecond)

*注釋:按照自己的需求更改上述代碼中的數據庫地址,用戶,密碼,庫名,表名以及字段名等。

四、執行遷移腳本:

[root ~]#python nmytomongo.py &> /tmp/migratelog.txt &

腳本執行完成后查看/tmp/migratelog.txt數據遷移消耗的時間。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 杭锦后旗| 朝阳区| 石景山区| 平昌县| 湖口县| 舞钢市| 措勤县| 黄浦区| 丰都县| 河间市| 靖宇县| 临沂市| 深圳市| 虹口区| 鲁甸县| 郴州市| 尚义县| 长顺县| 瑞安市| 大化| 电白县| 赞皇县| 武陟县| 台中县| 肇东市| 德安县| 滨海县| 会昌县| 宁城县| 保靖县| 平邑县| 澜沧| 达日县| 南乐县| 宣威市| 门头沟区| 卢湾区| 绥棱县| 满城县| 平定县| 庐江县|