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

2014-02-08node

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

爲何要選用nodejs,由於能夠快速開發,快速部署,js代碼寫起很輕快,順便實踐一個小小的nodejs項目。mongodb

要實現的功能:數據庫

sender.jsapache

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

receiver.js (雲主機只有80端口開放,用apache作一個proxy)數據結構

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

processer.jspost

  職責:定時輪詢讀取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比較合適,在接下來的設計和實踐中再作比較和決策。

 

(待續)

相關文章
相關標籤/搜索