随着google app engine的推广,google的bigtable越来越得到重用。当然使用GAE的时候是感觉不到bigtable的存在的,因为我们直接使用的是封装好的google.appengine.datastore。GAE的datastore使用起来很像大多数的orm,对于现在使用怪了orm的程序员来说非常的friendly(定义model and properties就可以)。datastore是基于bigtable实现的,在这个视频(App Engine Datastore Under the Covers)中有详细的介绍。
由此想到,是否可以做一个object到key-value database的映射框架,这样对于使用orm的程序员来说不用重新适应key-vaule数据库的特性,直接使用映射框架就可以了。当然,key-value数据库是基于key来访问的,不能做复杂的查询。这个问题的话,上面那个视频阐述了一种方案,通过管理一个索引,而data object本身就直接转存到一个bigtable column中,然后通过查询索引来模拟复杂的sql查询(当然还是有限制的)。
主要我觉得现在的关系型数据库的最大弊端是,定义的schema是相对静态的,而现在web开发环境和流程越来越需要这个schema能不断的进化。对于这个问题我们是否也可以通过维护一个schema的历史来实现,就是说每个data object对应到一个数据的定义(schema),老的数据可以通过旧有的schema定义来访问。
参考资料
App Engine Datastore Under the Covers
bigtable介绍
分享到:
相关推荐
gae-java-mini-profiler.zip,google a p p engine java runtime的mini profiler(灵感来自于https://github.com/kamens/gae_mini_profiler上的python gae_mini_profiler和...
【标题】"可以放到GAE上的blog -- micolog"指的是Micolog博客系统,这是一款能够部署在Google App Engine (GAE) 上的开源博客平台。GAE是Google提供的一个云计算平台,允许开发者运行Web应用程序而无需管理服务器...
maven-gae-plugin-0.9.6-sources.jar
maven-gae-plugin-0.9.5-sources.jar
maven-gae-plugin-0.9.4-sources.jar
maven-gae-plugin-0.9.3-sources.jar
maven-gae-plugin-0.9.2-sources.jar
maven-gae-plugin-0.9.1-sources.jar
maven-gae-plugin-0.9.0-sources.jar
maven-gae-plugin-0.8.4-sources.jar
maven-gae-plugin-0.8.3-sources.jar
maven-gae-plugin-0.8.2-sources.jar
maven-gae-plugin-0.8.1-sources.jar
maven-gae-plugin-0.8.0-sources.jar
maven-gae-plugin-0.7.3-sources.jar
maven-gae-plugin-0.7.2-sources.jar
maven-gae-plugin-0.7.1-sources.jar
maven-gae-plugin-0.7.0-sources.jar
maven-gae-plugin-0.5.9-sources.jar
maven-gae-plugin-0.5.3-sources.jar