2012-05-03 38 views
3

我們有一個我們正在GAE上部署的應用程序。我一直致力於提出將我們存儲GAE數據存儲的數據複製到在亞馬遜雲中運行的系統的選項。從GAE數據存儲複製數據

理想情況下,我們可以做到這一點,而無需在每次同步時傳輸整個數據存儲。複製並不需要接近實時,所以像一天一次或兩次同步這樣的東西就可以正常工作。

任何有GAE經驗的人都可以幫我解決這個問題嗎?到目前爲止,我想出了:

  1. 使用谷歌提供給bulkloader.py將數據導出爲CSV和莫名其妙的CSV轉移到亞馬遜和過程中存在

  2. 創建一個運行Java應用程序在GAE上,從數據存儲中讀取數據並將數據發送到在亞馬遜上運行的另一個Java應用程序。

這些選項有效嗎?與這些有關的陷阱是什麼?還有什麼其他選擇?

回答

5

您可以使用類似於App Engine的HRD遷移或備份工具的邏輯是這樣做的:

  1. 馬克修改實體與子實體標記
  2. 運行使用App Engine mapreduce library一個MapperPipeline使用這些實體迭代數據存儲輸入讀卡器
  3. 在你的地圖功能獲取父實體和使用文件輸出作家它序列化到谷歌存儲和刪除標記
  4. ping遠程主機,從谷歌的進口那些實體torage網址

作爲替代3和4,你可以讓多個網址抓取(POST)每個序列化的實體直接發送到遠程主機,但它更脆弱作爲一個單一故障可能危及完整性您數據導入。

你可以看看datastore admin source code尋找靈感。