相关疑难解决方法(0)

使用GAE数据存储区的复杂查询

我正处于开发体育统计网站(终极飞盘)的早期阶段,如果Google App Engine适合我,我想知道您的意见.

我使用Django在Python中编写它并且已经习惯了标准的RDBMS多年,但是这个站点是一个长期项目,我期待非常大量的数据,所以我希望GAE数据存储提供"无限"的扩展.绝大多数对数据库的查询都会返回非常标准的结果,这会使数据存储看起来像是一个合理的选择.但是,我希望将来能够提出极其复杂的查询来提出新的统计指标,或者只是想出有趣的结果.我计划将来做很多这样的事情,但是在收集数据之前不会知道这些查询是什么.

例如,你经常看到棒球统计分析师提出荒谬的统计数据,例如"这是过去50年来第一次两名左手投手,其姓氏以'Z'开头,连续投出一击天".我希望将来能够灵活地提出任何疑问.:)

但是,我认为像bigtable这样的非关系型数据库需要您预先提供包含冗余数据的模型,并且所有工作都在插入而不是提取上进行.我已经构建了几乎包含我需要查询的所有数据的django模型,但是我不知道从现在开始我想要一年或两年的非规范化模型.因此,我觉得在GAE数据存储区中进行复杂查询将是非常困难的,并且需要我在python中处理它之前从服务器上提取大量信息.

谷歌应用引擎数据存储是否完全错误,我想做什么?或者我只是缺少一些东西.非常感谢提前!

更新: 感谢目前为止的回复.我意识到我还应该提到很多这些复杂的查询是我希望用户能够做的查询,因此使得脱机数据库不是一个真正的选择.例如,用户应该能够看到各种特定玩家在特定游戏或季节期间同时在场上时的比赛的各种统计数据.虽然这些查询不像标准聚合统计数据那样频繁,但它们仍然会定期发生.

拥有关系数据库以及GAE数据存储区会很棒,但django默认情况下不支持多个db,并且一起修补解决方案听起来很困难而且很混乱.Eric Florenzano 为使用django模型的两个数据库提供了一个很好的解决方案,但如果我使用GAE数据存储区,我将不得不使用app引擎的db模型.并且提出了一个很好的解决方案,就像他为这个复杂问题所做的那样,在这一点上有点超出我的技能水平.

现在我最喜欢的两个选项是使用GAE任务队列来执行困难的查询,或者使用像webfaction这样的更标准的webhost,然后在我的数据增长后再对我的表进行非规范化,我需要提高性能.

django google-app-engine database-design non-relational-database google-cloud-datastore

9
推荐指数
2
解决办法
2391
查看次数