ndb :(来自google.appengine.ext import ndb)
datastore :(来自gcloud import datastore)
有什么区别?我已经看到它们都使用了,并暗示它们都将数据保存到谷歌数据存储区。为什么有两种不同的实现?
答案 0 :(得分:9)
Python NDB客户端特定于在Google App Engine上运行的Python应用程序。数据存储客户端删除了该限制,您可以在任何地方运行Python应用程序,包括Google App Engine,Google Compute Engine或其他任何地方。
例外形式 - https://cloud.google.com/appengine/docs/python/ndb/
Google Datastore NDB客户端库允许 App Engine Python 要连接到云数据存储区的应用。
此外,NDB客户端具有某些功能(例如缓存),而另一个则不支持。
答案 1 :(得分:1)
这两个实现的原因是,最初,数据存储(称为App Engine数据存储区)仅可从App Engine内部(通过专用RPC API)获得。在Python上,访问此API的唯一方法是通过类似ORM的库(NDB)。正如您在导入中看到的那样,它是App Engine API的一部分。
现在,Google已经通过名为Cloud Datastore API的宁静API在数据存储区之外提供了数据存储区。 gcloud library是一个客户端库,允许从Google Cloud访问不同的其他API,包括Cloud Datastore API。