根据Google的文档,似乎我有两个使用Python连接到数据存储区的主要选项:App Engine的NDB数据存储库和用于Python的Google Cloud Datastore API。
我目前正在使用App Engine(标准版),但我想构建我的应用程序,以便它可以在需要时增长,可能是通过迁移到Compute 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。我有一些相关的,更具体的问题包括:
感谢。
答案 0 :(得分:6)
继续阅读之后,我会继续回答我自己的问题,希望为了别人的利益。
在完整阅读discussion on google-cloud-python之后,我的许多问题都可以在一定程度上得到回应。
首先,开发人员对项目的看法似乎是Google Cloud Datastore API should work on App Engine,但性能将是worse than NDB。这肯定是在App Engine上使用NDB而非数据存储API的原因。
其次,听起来开发人员认为NDB既复杂又成熟,似乎一致支持its eventual inclusion in the Cloud Datastore python library。因此,NDB似乎不会停止使用。最有可能的是,最终可能需要从更广泛的gcloud库中包含它。
第三,开发人员指示NDB support beyond App Engine is being actively developed,因此如果我的项目超出App Engine,那么NDB可能已经在其他环境中可用,因此不需要切换到Cloud Datastore API。此外,标准App Engine之外的下一步是灵活环境,which seems to already support NDB nicely。
所有这一切都说明我应该明确继续推进NDB,从App Engine上更好的性能和ORM功能中获益,除非Google未来对此事的意见/指示有所改变,我和# 39; ll很可能可以选择在Google Cloud上的其他环境中继续使用NDB。我将使用NDB,并期待最终将其纳入google-cloud-python。
如果有人对此事有任何额外的经验,我很乐意听到你的想法。