App Engine上的Cloud Datastore客户端库-NDB或google-cloud-datastore

问题描述 投票:1回答:1

根据Google的文档,似乎我有两个使用Python连接到Datastore的主要选项:App Engine的NDB Datastore库和适用于Python的Google Cloud Datastore API。

我目前使用的是App Engine(标准),但我想对我的应用进行结构设计,使其可以扩展到需要时扩展的范围(可能是通过迁移到Compute Engine来实现)。 考虑到这一点,我应该使用哪个库? App Engine的文档指出可以使用NDB,但现在似乎还不太活跃。 在撰写本文时,最后一次提交是在6个月前,尽管似乎他们以前可能已经在计划一些扩展 。 最终一切都会改为使用Google Cloud Datastore API吗? 如果要逐步淘汰NDB,我真的不想建立对此的依赖。

我还没有试过,但似乎在App Engine中使用完整的Google Cloud Datastore API 可能会遇到一些问题

如果有人有使用App Engine-Standard上的Google Cloud Datastore API的经验,很高兴听到您的想法。

编辑-2016-11-30-唯一性

这个问题被标记为类似于这一个 。 尽管有一些相似之处,但我特别提到要选择一种解决方案,以使其能够轻松超越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回购协议最近并未进行大量更新这一事实令我感到担忧。 Google确实会不时中断事情。

谢谢。

google-app-engine google-cloud-datastore app-engine-ndb
1个回答
6
投票

经过更多阅读后,我将继续回答自己的问题,希望对其他人有利。

完整阅读有关google-cloud-python讨论后,我的许多问题都可以得到一定程度的回答。

首先,似乎开发人员对该项目的看法是Google Cloud Datastore API应该可以在App Engine上运行 ,但是性能会比NDB差 。 这当然是在App Engine上通过数据存储区API使用NDB的原因。

其次,听起来开发人员认为NDB既复杂又相当成熟,并且似乎一致支持将其最终包含在Cloud Datastore python库中 。 因此,NDB不太可能会停止。 最有可能的是,它最终可能最终需要包含在更广泛的gcloud库集中。

第三,开发人员表示正在积极开发App Engine以外的NDB支持 ,因此,如果我的项目超出了App Engine,那么届时NDB可能已在其他环境中可用,因此无需切换到Cloud Datastore API。 此外,超越标准App Engine的下一步是灵活环境, 它似乎已经很好地支持NDB了

综上所述,我应该清楚地推动NDB的发展,这要得益于其在App Engine上更好的性能和ORM功能,并且除非Google对此事的看法/方向将来有所改变,否则我很可能会选择继续在Google Cloud的其他环境中使用NDB。 我将使用NDB,并期待将其最终包含在google-cloud-python中。

如果有人对此事有其他经验,我很想听听您的想法。

© www.soinside.com 2019 - 2024. All rights reserved.