1

我正在尋找實施一種方法來在Google應用引擎中以編程方式將數據從一個應用轉移到另一個應用。 我知道有一種方法可以通過database_admin控制檯實現此目的,但該過程非常耗時。從谷歌應用引擎備份和恢復實體

我目前正在使用Google Cloud Storage(GCS)來執行此操作,但涉及查詢數據,將其保存到GCS,然後從不同應用程序中讀取GCS並進行恢復。 請讓我知道是否有人知道在兩個應用程序之間以編程方式傳輸數據的簡單方法。

謝謝!

回答

-1

我不知道這是否適合您的具體情況,但Google Cloud Endpoints絕對是通過Google App Engine以編程方式傳輸數據的簡單方法。

這是REST Web服務的Google實現,它允許您使用URL共享資源。這仍然是一項實驗性技術,但只要我與他們合作過,他們就能完美地工作。此外,它們與GAE和Google Plugin for Eclipse很好地結合在一起。

你可以從一個JDO持久類自動生成一個端點,我想你也可以自動生成客戶端庫(儘管我沒有嘗試過)。

+0

作爲@earthtrip說,我不明白爲什麼我的答案已經downvoted,因爲我覺得這是完全考慮到缺少問題的詳細信息... – MikO 2013-03-14 14:57:44

0

您是否試圖在兩個App Engine應用程序之間移動數據或嘗試從App Engine導出所有數據,以便移動到不同的託管系統?你的問題沒有足夠的信息來了解你正在嘗試做什麼。基於模糊的需求,我會說這通常會通過一個Web服務來處理,您可以在一個應用程序中編寫Web服務,該應用程序公開數據和其他應用程序調用服務以使用數據。我不確定爲什麼雲端點投票被拒絕,因爲這提供了一種很好的方式,將您的數據作爲基於JSON的Web服務公開,並且以最少的代碼大驚小怪。

我建議在你的問題中加入一些更多的細節,比如你想要完成什麼,也許是一個模擬數據樣本。

+0

這兩個應用程序都部署在App Engine上(使用Java版本)。我的確在使用WebServices方法,其中一個應用程序將寫入GCS,而其他應用程序將從中讀取,但在這種情況下,對於大型數據集來說性能不夠好。 – user2167372 2013-03-14 16:00:48

1

自己沒有嘗試過這個,但它聽起來應該起作用:使用data_store admin將對象從一個應用程序備份到GCS,然後使用其他應用程序從GCS恢復該文件。如果您只需要一次同步,這應該是一個好方法。

如果你需要不斷地從一個應用程序複製到另一個數據,在一個引入REST端點或兩側可以幫助:

https://code.google.com/p/appengine-rest-server/(這是Python的,我知道,但只是定義一個應用程式版本對於REST端點)

您只需確保您的模型定義在兩側都匹配(幾乎用相同的部署代碼更新兩側的應用程序),並且只有需要同步數據跟蹤時間的一側上次同步並使用REST端點來提取新數據。克龍喬布斯可以做到這一點。

或者,在所有模型上創建一個PostPut回調函數,以便在每次向您的數據存儲區寫入模型到另一個應用程序的正確REST端點時進行POST調用。

您可以使用一種方法進行批量更新,或者使用另一種方法保持不斷更新的版本(以更多的調用爲代價)。