в чем разница между google.appengine.ext.ndb и gcloud.datastore?

ndb: (из google.appengine.ext import ndb)

хранилище данных: (из хранилища данных импорта gcloud)

Какая разница? Я видел, как они оба использовались, и намекает, что они оба сохраняют данные в хранилище данных Google. Почему существуют две разные реализации?


comment
Я использую Python, если это вообще имеет значение   -  person invapid    schedule 12.09.2016


Ответы (2)


Клиент Python NDB предназначен только для приложений Python, работающих в Google App Engine. Клиент хранилища данных снимает это ограничение, и вы можете запускать приложение Python где угодно, включая Google App Engine, Google Compute Engine или где угодно.

Форма исключения - https://cloud.google.com/appengine/docs/python/ndb/

Клиентская библиотека NDB Google Datastore позволяет приложениям App Engine Python подключаться к Cloud Datastore.

Кроме того, у клиента NDB есть определенные функции (например, кеширование), в то время как другой клиент не поддерживает.

person Sai Pullabhotla    schedule 12.09.2016

Причина использования двух реализаций заключается в том, что изначально хранилище данных (называемое хранилищем данных App Engine) было доступно только изнутри App Engine (через частный RPC API). В Python единственный способ получить доступ к этому API был через ORM-подобную библиотеку (NDB). Как видно из импорта, это часть API App Engine.

Теперь Google сделал хранилище данных доступным вне App Engine с помощью спокойного API, называемого Cloud Datastore API. Библиотека gcloud - это клиентская библиотека, которая обеспечивает доступ к различным API для отдыха из Google Cloud, включая Cloud Datastore API.

person dyeray    schedule 12.09.2016