用python進行資料庫資料遷移
現要將mysql資料庫上每5秒查詢一次結果並覆蓋寫入到postgresql中去,
實現的方法有很多:
一、用shell,將查詢出來的資料放到中間文字,再load到pg中。這種方法資料要落地,而且這臺伺服器上必須要安裝mysql和pg,才能遠端連線。
二、用kettle實現,在linux上使用較麻煩,殺雞焉用牛刀。
三、使用python,linux基本都自帶,需要安裝MySQLdb和psycopg2模組。
......
這次主要介紹python實現方法
因為涉及到兩種資料庫,先安裝MySQLdb和psycopg2模組。
這次主要介紹python實現方法
因為涉及到兩種資料庫,先安裝MySQLdb和psycopg2模組。
安裝MySQLdb模組請見http://blog.itpub.net/29989552/viewspace-1805409/
安裝psycopg2模組可以用yum安裝
[root@trcloud-gtt-dw python]# yum install python-psycopg2
程式碼:
#匯入MySQLdb和psycopg2模組
import MySQLdb
import psycopg2
#建立mysql連線,透過cursor獲取遊標,用execute獲取查詢結果
conn=MySQLdb.connect(host='192.168.129.15',port=3306,user='root',passwd='123456') cursor1=conn.cursor(cursorclass=MySQLdb.cursors.DictCursor) cursor1.execute("select id,name from test.fader where id=1") rows=cursor1.fetchall()
#如果sql語句很長影響指令碼的排版時,可以將sql寫到檔案中,透過讀取檔案執行。
#file=open("/root/python/root/python/update_home_data.txt") #sql=file.read() #cursor1.execute("%s"%(sql)) #file.close() #rows=cursor1.fetchall()
#建立pg連線,透過cursor獲取遊標,先清空目標表
conn2 = psycopg2.connect(database="edw", user="gpadmin", password="123456", host="172.30.248.10", port="5432")
cursor2 = conn2.cursor()
cursor2.execute("truncate work_test.fader")
#迴圈mysql中獲取的結果,並插入到pg中
for list in rows: id=list['id'] name=list['name'] cursor2.execute("insert into work_test.fader(id,name) values('%s','%s') "%(id,name)) cursor1.close() cursor2.close() conn.commit() conn2.commit() conn.close() conn2.close()
再使用crontab每5秒執行一次注:這種方法只適合小數量的跨庫資料準實時傳輸,因為插入的時候是一條一條的插入,不是批次插入會有大量的commit操作。如果資料量大會對關係型資料庫的效能有影響(這和關係型資料庫操作日誌快取落盤機制有關,在這裡就不過多闡述)
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29989552/viewspace-2130801/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 使用RMAN進行Oracle資料庫遷移Oracle資料庫
- 用rman遷移資料庫資料庫
- 使用RMAN進行資料遷移
- 今天晚上進行資料遷移
- 應用RMAN Transportable Database進行資料庫跨平臺遷移Database資料庫
- 使用資料庫冷備份方式進行資料庫遷移,資料庫檔案遷移到不同的目錄資料庫
- 資料庫遷移資料庫
- 使用dbeaver 用csv 檔案進行資料遷移
- 資料庫-oracle-資料庫遷移資料庫Oracle
- 資料庫上雲實踐:使用Ora2pg進行資料庫遷移資料庫
- 按使用者進行資料庫邏輯遷移資料庫
- 【遷移】使用rman遷移資料庫資料庫
- Oracle資料庫資料遷移流程Oracle資料庫
- 資料庫遷移 :理解資料庫
- laravel資料庫遷移Laravel資料庫
- Odoo遷移資料庫Odoo資料庫
- redis資料庫遷移Redis資料庫
- Cacti 遷移資料庫資料庫
- 資料庫遷移方案資料庫
- ORACLE資料庫遷移Oracle資料庫
- 遷移資料庫成功!資料庫
- 建立資料庫遷移資料庫
- 海量資料處理_使用外部表進行資料遷移
- 模擬利用MV進行資料遷移
- rman進行跨平臺資料遷移
- Oracle資料庫中資料行遷移與行連結Oracle資料庫
- 雲資料庫管理與資料遷移資料庫
- 用begin backup的方式遷移資料庫資料庫
- 【PyTHON】redis資料遷移PythonRedis
- 資料庫遷移神器——Flyway資料庫
- 遷移MySQL 5.7資料庫MySql資料庫
- 資料庫遷移手記資料庫
- django資料庫遷移-15Django資料庫
- SQL Server資料庫遷移SQLServer資料庫
- mysql資料庫遷移 mysqldumpMySql資料庫
- 遷移資料庫到ASM資料庫ASM
- dm資料庫遷移命令資料庫
- Oracle資料庫(資料泵)遷移方案(上)Oracle資料庫