2011-03-05 104 views
4

我一直在讀一點谷歌的AppEngine,提供應用程序託管。我一直在嘗試,因爲它看起來很有趣,但我對數據庫部分有點擔心。谷歌AppEngine數據庫

說我正在本地開發我的Java應用程序。我不想在每次更改代碼時都部署到Google,因此我在開發計算機上安裝了一個很好的小Servlet容器,以便輕鬆測試。使用AppEngine,您可以使用他們的數據存儲API存儲事物,這基本上可以讓您使用Java對象爲您的數據建模 - 這很好。

但是,好像這些數據嵌入了應用程序代碼本身(在部署到Google的.war中)。我可以簡單地在本地使用他們的數據存儲區API嗎?它將如何存儲在我的本地機器上?這一切都是由他們處理的,所以我只需要擔心使用數據存儲區API,當我將其部署到Google時,數據將以與存儲在本地計算機上的方式不同的方式進行存儲。

我只是有點困惑,因爲我習慣於讓數據部分分層出我的應用程序代碼。

我希望我很清楚。謝謝。

回答

3

發展數據存儲和生產數據存儲是兩個不同的,分離的東西:

開發數據存儲是tipically命名local_db.bin這只是有用的存儲在您的測試環境中的數據的文件數據存儲基礎;在部署應用程序時,數據不會複製到生產環境。
這種類型的數據存儲只能用於相當少量的實體,其性能與基於Big Table的功能強大的Production數據存儲無關。

您只需使用數據存儲API即可在您的代碼和底層數據存儲之間創建抽象級別;在測試中,您的數據將存儲在本地數據存儲區文件中,在生產過程中,創建的數據將被保存到Google App Engine數據存儲區,並具有所暗示的所有功能和限制。

+0

如果我需要導入大量的遺留數據,該怎麼辦?說1千兆字節?這可能與AppEngine的數據存儲設施有關嗎? – 2011-03-05 13:22:59

+0

我認爲這種進口是可能的組織在不同的步驟。查看[批量上傳器](http://code.google.com/intl/it/appengine/docs/python/tools/uploadingdata.html#Downloading_and_Uploading_All_Data)工具。 – systempuntoout 2011-03-05 14:28:33

+0

我有相關的問題:http://stackoverflow.com/questions/30441749/dont-see-updated-datastore-with-entities-even-the-debuging-the-code-passes-succ?noredirect=1 #comment48987732_30441749 – 2015-05-26 12:36:25