我们可以在不使用数据API的情况下使用Google App Engine吗?

时间:2011-04-24 03:24:43

标签: database django google-app-engine

我计划用Django开发一个Web应用程序。 Google App Engine(GAE)似乎是一个很好的起点。可扩展性是我的强项。

但是从研究来看,似乎使用GAE的API如数据库API会引发比预期更多的问题。

我的问题是,我们可以将GAE用于我们自己的数据库,例如MySQL吗?

2 个答案:

答案 0 :(得分:7)

如果您不使用App Engine数据存储区,您只需告别可扩展性即可。实际上,系统使用像Bigtable这样的NoSQL数据库的原因是MySQL和其他RDBMS 没有扩展。这是权衡。现在,如果您可以告诉我们您遇到了哪些问题,或许我们可以为您“修复”它们,以便您可以利用其可扩展性。

但是,如果你真的宁愿将“可扩展和非关系”交换为“不可扩展和关系”,那么你必须拥有 SQL,然后留意托管的云MySQL兼容的解决方案,即将推出,并在此暗示:

http://googlecode.blogspot.com/2010/05/announcing-google-app-engine-for.html

http://code.google.com/appengine/business/

甚至更好的解决方案来自您的应用程序是Django的事实。你应该强烈考虑使用Django-nonrel。它是Django的一个分支,它允许它运行在NoSQL数据库之上,如MongoDB,App Engine的基于Bigtable的数据存储区,以及(即将推出)Cassandra。您使用Django的ORM界面,甚至不必担心使用App Engine的数据存储区API,因为它们都会被抽象出来。阅读/观看有关Django-nonrel以及如何在App Engine中使用它的更多信息:

http://www.allbuttonspressed.com/projects/django-nonrel

http://code.google.com/appengine/articles/django-nonrel.html

http://us.pycon.org/2011/schedule/presentations/237/

答案 1 :(得分:0)

如果您想使用GAE,则必须按原样使用它。最近我读了很多关于新功能的公告,但它仍然是一个沙箱。

如果您希望自由选择自己的堆栈,请考虑使用Amazon EC2(我知道这些时候没有考虑到它;)或Rackspace。

Django还有一些类似Heroku的服务,但是他们都太年轻了。