App Engine上的云数据存储客户端库 - NDB或google-cloud-datastore

时间:2016-11-29 17:47:58

标签: google-app-engine google-cloud-datastore app-engine-ndb

根据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。我有一些相关的,更具体的问题包括:

  • NDB和Cloud Datastore API是否足够相似,以后可以从一个移动到另一个不会有问题?也许有人这样做了,可能有意见。
  • 有没有具体的理由让NDB真正发挥App Engine的作用?性能
  • 由于NDB使用Cloud Datastore,我是否应该担心它最终会停止使用? Google最近使App Engine与其他云计算产品阵容越来越接近,而NDB回购最近没有看到大量更新的事实让我感到担忧。谷歌不时会停止发布。

感谢。

1 个答案:

答案 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。

如果有人对此事有任何额外的经验,我很乐意听到你的想法。