日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

python脚本迁移数据库_Python迁移MySQL数据到MongoDB脚本

發布時間:2024/10/14 数据库 64 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python脚本迁移数据库_Python迁移MySQL数据到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-8

import torndb,pymongo,time

# connect to mysql database

mysql = torndb.Connection(host='127.0.0.1', database='database', user='username', password='password')

#connect to mongodb and obtain total lines in mysql

mongo = pymongo.MongoClient('mongodb://ip').database

mongo.authenticate('username',password='password')

countlines = mysql.query('SELECT max(table_field) FROM table_name')

count = countlines[0]['max(table_field)']

#count = 300

print count

i = 0

j = 100

start_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 +=100

end_time = time.time()

deltatime = end_time - start_time

totalhour = 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數據遷移消耗的時間。

Linux Centos 遷移Mysql 數據位置

Linux Centos 遷移Mysql 數據位置 由于業務量增加導致安裝在系統盤(20G)磁盤空間被占滿了, 現在進行數據庫的遷移.?Mysql?是通過?yum?安裝的. Centos6.5Mysq ...

遷移mysql數據到oracle上

轉自:http://www.cnblogs.com/Warmsunshine/p/4651283.html 我是生成的文件里面的master.sql里面的sql,一個一個拷出來的. 遷移mysql數據 ...

python查詢mysql數據&lpar;3&rpar;

python查詢mysql數據(3) """數據查詢""" import pymysql import datetime from pymy ...

python插入mysql數據&lpar;2&rpar;

python插入mysql數據(2) """插入操作""" import pymysql import datetime from pymy ...

【初學python】使用python連接mysql數據查詢結果并顯示

因為測試工作經常需要與后臺數據庫進行數據比較和統計,所以采用python編寫連接數據庫腳本方便測試,提高工作效率,腳本如下(python連接mysql需要引入第三方庫MySQLdb,百度下載安裝) # ...

HBase——使用Put遷移MySql數據到Hbase

先上code: /** * 功能:遷移mysql上電池歷史數據到hbase * Created by liuhuichao on 2016/12/6. */ public class MySqlToH ...

python連接mysql數據表查詢表獲取數據導入到txt中

import pymysql'''連接mysql數據表查詢表獲取數據導入到txt中'''#查詢結果寫入數據到txtdef get_loan_number(file_txt): connect = py ...

python取mysql數據寫入excel

環境:MySQLdb openpyxl模塊 python去zabbix的mysql數據庫中取交換機不同時間段的進出口流量,然后寫入excel中,每天cron執行,每周四郵件發送.(代碼中第一行必須加上 ...

python導出zabbix數據并發郵件腳本

Zabbix沒有報表導出的功能,于是通過編寫腳本導出zabbix數據并發郵件.效果如下: 下面是腳本,可根據自己的具體情況修改: #!/usr/bin/python #coding:utf-8 imp ...

隨機推薦

&lbrack;麥先生&rsqb;SEO--相關優化【基礎】

收錄的一個重要原則:離首頁的遠近.離首頁太遠,不容易被收錄.內頁必須距離首頁3-4次點擊之內. 原因:1.對于一個網站來說,搜索引擎經常來的地方是首頁,因為很多外部鏈接鏈向的是首頁如友情鏈接.做的外鏈 ...

pod install出現&lbrack;&excl;&rsqb; &sol;bin&sol;bash -c錯誤&comma;Installing Realm報錯

pod install出現錯誤,具體錯誤信息如下: Installing Realm () [!] /bin/bash -c set -e sh build.sh cocoapods-setup co ...

Oracle創建,刪除用戶與表空間

1.創建表空間與用戶 a:創建數據表空間 create tablespace user_data logging datafile 'D:\oracle\product\10.2.0\oradata\ ...

如何利用VS2010安裝和部署應用程序

轉自:http://jingyan.baidu.com/article/4b52d70255d7f0fc5d774b4d.html 1.假設你當前的winform已經okay了 2.解決方案中新建&q ...

hdu 2025

水題 AC代碼: #include using namespace std; int main() { char a[100],*p; int max,i; whil ...

理解 backbone&period;js 中的 bind 和 bindAll 方法,關于如何在方法中指定其中的 this,包含apply方法的說明&lbrack;轉載&rsqb;

轉載自:http://gxxsite.com/content/view/id/132.html 在backbone.js的學習過程中,被bind和bindAll弄得有點暈,這里包括underscore ...

IAM

IAM 與 權限訪問控制機制 IAM , Identity and Access Management 基本概念 ARN, Amazon Resource Name : 在 AWS 里, 創建的任何資 ...

ASP&period;NET重寫Render 加載CSS樣式文件和JS文件&lpar;切換CSS換皮膚&rpar;

網頁換皮膚的方式有很多種,最簡單的通常就是切換頁面CSS,而CSS通常寫在外部CSS文件里.那么切換CSS其實就是更換html里的link href路徑.我在網上搜索了下. 一般有兩種方式: 1.頁面 ...

js中怎么為同級元素添加點擊事件

事件件是javascript腳本語言的重要組成部分,因為有事件才使用戶頁面的體驗更加的美好.元素添加事件是js語言中最基礎的.我們可以為元素本身添加事件,也可以通過事件綁定和事件監聽為元素的父元素和子 ...

linux 安裝 zookeeper 集群

關閉防火墻 systemctl stop firewalld.service systemctl disable firewalld.servicesystemctl status firewalld ...

總結

以上是生活随笔為你收集整理的python脚本迁移数据库_Python迁移MySQL数据到MongoDB脚本的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。