一次PostgreSql數據遷移,使用nodejs來完成


2014-02-08

XX開放平台不允許使用站外的服務器了,可是我們的app都在站外,數據庫也在站外,全都要求遷移到其雲主機上(坑爹啊)。我們在其雲主機上僅有有限的資源,而且也有在運行中的數據庫,要做數據遷移,正好重新清理一下數據庫吧,把過期的沒用的數據都轉入到歷史庫,將原系統的數據和雲主機上的數據做一次合並,打算用nodejs從站外服務讀取數據,然后發送到雲主機上,雲主機接受數據並合並到現有系統里。站外服務器和雲主機上的數據遷移都用nodejs來實現,想法確立之后,開始做一個簡單設計。

為什么要選用nodejs,因為可以快速開發,快速部署,js代碼寫起很輕快,順便實踐一個小小的nodejs項目。

要實現的功能:

sender.js

  職責:接收命令行參數,讀取需要遷移的源數據,轉換成message格式,發送到雲主機的服務上,並在開始和結束處記錄日志,程序重啟可以按日志斷點續傳。

receiver.js (雲主機只有80端口開放,用apache做一個proxy)

  職責:接受源數據,保存message到數據庫,並返回結果給sender。

processer.js

  職責:定時輪詢讀取message數據,有未處理的數據,則處理數據整合邏輯(合並用戶ID,合並用戶數據等)

 

 

 

2014-02-09

由於我們的數據庫都是Postgresql,服務器都是CentOS,開發環境在Win7,先安裝開發環境和生產環境的nodejs環境

(1)在Linux下安裝nodejs,以及node-postgresql,比較簡單,參見我的另一篇博客。

(2)在Win7下安裝nodejs,以及node-postgresql,稍微麻煩,需要安裝Python 2.7,還需要安裝node-gyp,為了能安裝node-postgresql 還需要安裝VC++,我安裝的是VC++2010 Express,都安裝好了之后,測試一下,node-postgresql能正常工作。

至此工作環境准備完畢,接下來開始進入模塊的簡單設計階段。

傳輸過程中的數據結構Json格式:

 

message.type: 數據名

message.content: 數據內容

至此貌似雲主機上接受數據使用mongodb比較合適,在接下來的設計和實踐中再做比較和決策。

 

(待續)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM