阿彭金思维

2024-04-19 20:04:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在寻找资源来帮助我将设计技能从传统的RDBMS数据存储迁移到AppEngine数据存储(即:“软模式”风格)。我看过几次演示,都涉及到总体主题和一些特定的技巧。在

我想知道是否有一个地方可以让我们从实践中(从战壕中)收集知识,重新思考数据的结构,特别是移植现有的应用程序。我们在很大程度上是基于Hibernate的,并且可能已经在数据模型上走错了路,产生了一些让我们的数据库头疼的查询。在

请在以下情况下回复:

  1. 您已经将一个非常重要的应用程序移植到AppEngine
  2. 您已经在AppEngine中从头开始创建了一个通用类型的应用程序
  3. 你没有做1或2,但正在考虑,并希望分享你自己的发现到目前为止。在

Tags: 数据应用程序主题技巧风格技能地方模式
3条回答

I'm wondering if there's a place we could pool knowledge from experience

各种各样的Google小组对此都很有帮助,尽管我不知道是否有直接适用于javagae的团队——到目前为止,我的GAE经验都是Python(我有点自豪地说,Guido van Rossum,Python的发明者,现在在Google的App Engine工作,告诉我,我教了他一些关于他的脑力劳动的东西——他的推荐信提到,在我linkedin的个人资料中,这是我最自豪的一个;-)。[我在谷歌工作,但我对AppEngine的影响非常小——我曾参与过“构建云”、集群和网络管理软件,而AppEngine就是要让基础设施对第三方开发者有用]。在

关于如何最好地反规范化和切分数据以获得最佳的GAE伸缩性和性能,确实有很多文章和演示文稿,但是它们的质量各不相同。到目前为止,已经出版的书实在太多了;接下来的几个月还会有更多的,希望是更好的(我有一个项目要写其中的一本,有两个非常熟练的朋友,但是我们都很忙,最后都放弃了它)。总的来说,我会推荐谷歌的I/O视频和谷歌在其app engine网站和博客中祝福的文章,再加上来自appenginefan's blog的每一点内容——Guido称赞我教他关于GAE的内容,反过来我主要是从appenginefan那里学到的(部分是通过Palo Alto的精彩的app engine meetup,但他的博客也很棒;-)。在

我试过Google App Engine for Java,发现它有很多缺点:

这不是一般用途的Java应用程序托管。尤其是,你不能访问一个完整的JRE(例如不能创建线程等),鉴于这个事实,你几乎必须从头开始构建你的应用程序,并牢记谷歌应用程序引擎JRE。移植任何非琐碎的应用程序都是不可能的。在

更适合你的数据存储问题。。。在

数据存储的性能很差。我试图每小时编写5000个天气观测数据——没有太大的数据量——但是我做不到,因为我总是在数据存储和HTTP请求中遇到超时异常。使用“低级”数据存储API有一定帮助,但还不够。在

我想删除那些24小时后的天气观测,以不填补我的配额。同样,无法执行此操作,因为删除操作花费了太长时间。这个问题反过来导致我的数据存储配额被填满。疯狂的是,您无法轻松删除GAE数据存储中的大量数据。在

我确实喜欢一些功能。Eclipse集成非常时髦。appspot应用服务器UI比使用Tomcat要好上百万倍(例如,良好的日志视图)。但对我来说,弊远大于利。在

总之,我经常发现自己必须shave the yak,这样做在任何正常的Java/应用程序托管环境中都是非常微不足道的。在

超时时间很紧,性能还可以,但不是很好,所以我发现自己使用额外的空间来节省时间;例如,我在交易卡和玩家之间有多对多的关系,所以我复制了谁拥有什么的信息:卡片对象有一个玩家列表,而玩家对象有一个卡片列表。在

通常情况下,将所有信息存储两次是愚蠢的(而且容易失去同步),但效果非常好。在

在Python中,他们最近发布了一个远程API,这样你就可以得到一个交互式的shell到数据存储,这样你就可以在没有任何超时或限制的情况下使用数据存储(例如,你可以删除大量的数据,或者重构你的模型);这是非常有用的,因为如果不是这样,就像Julien提到的那样,很难进行批量处理操作。在

相关问题 更多 >