根据Google的文档,似乎我有两个使用Python连接到数据存储的主要选项:App Engine的NDB数据存储库和Google Cloud Datastore API为Python。App Engine上的云数据存储的客户端库 - NDB或谷歌云数据存储
我目前使用的是App Engine(标准版),但是我想要构建我的应用程序,以便可以通过迁移到计算引擎(如果需要)扩展。考虑到这一点,我应该使用哪个库? App引擎的文档指出可以使用NDB,但它似乎不再被非常积极地开发。在撰写本文时,最后一次提交是在6个月前完成的,尽管看起来它们以前可能是planning some expansion。一切最终都会转而使用Google Cloud Datastore API吗?如果NDB被逐渐淘汰,我真的不想发展对它的依赖。
我还没有给它一个镜头,但似乎在App Engine may come with its own issues中使用了完整的Google Cloud Datastore API。
如果有人在App Engine-Standard上使用Google Cloud Datastore API的经验,我很乐意听到您的想法。
编辑 - 2016年11月30日 - 唯一
这个问题被标记为类似this one。虽然有一些相似之处,但我特别提到想要选择一种解决方案,以允许在App Engine之外轻松增长。在这一点上,我假设NDB库仅适用于App Engine,所以如果我超越App Engine,它将无法正常工作。但是,我认识到在App Engine上使用NDB可能仍然有优势,如果超出范围,则可以交换到Cloud Datastore API。我有一些相关的,更具体的问题包括:
- 是否NDB和云存储API非常相似,从一个移动到其他的以后就不会是问题?也许有人已经这样做了,并可能有意见。
- NDB真的照亮App Engine有什么具体原因吗?性能?
- 由于NDB使用云数据存储,我应该担心它最终会停止使用吗? Google已经将App Engine与最近的其他云计算产品联系起来,并且最近NDB repo还没有看到很多更新的事实让我担忧。 Google会不时停止执行某些操作。
谢谢。
[google.appengine.ext.ndb和gcloud.datastore?有什么区别?](http://stackoverflow.com/questions/39441764/whats-the-difference-between-google-appengine-ext -ndb-and-gcloud-datastore) –
我个人的经验是NDB拥有你需要的所有功能,并且非常成熟。我还使用CGD Api来访问其他应用程序数据存储区,并且我发现该库也是“低级别”的......您将所有的ndb.Model类功能,类中定义的实体“模式”等都丢失了。如果您做一个查询,你将recita存储在数据存储信息的原始数据,你必须手动提取属性,进行转换(即从Pickle到JSON)等。 –