Google Firestore - подмножество или надмножество Google Cloud Datastore?

Google анонсировала Firestore, новый документ-хранилище на блоке.

Я разрабатываю приложение с использованием Google Cloud Datastore более шести месяцев и после чтения blog, я чувствую, что Firestore кажется быть лучшим выбором.

Концепция альтернативного сборника-подколлекции выглядит превосходно для меня, потому что при разработке схемы для хранилища данных мне было известно, что я не смогу запросить вложенные поля. Теперь с подколлекциями firestore я получаю полные возможности запросов, которые меняют для меня (я могу получить максимальные данные с минимальными запросами).

Как аргумент счетчика, блок предлагает мне использовать хранилище данных, потому что у меня нет мобильных клиентов.

Будет ли неплохо использовать Firestore так же, как Datastore? (Я буду легко игнорировать возможности мобильного клиента/обновления/синхронизации в реальном времени!)

Ответ 1

Обновление 2 (31.01.19)

На сегодняшний день Cloud Firestore больше не находится в бета-версии и общедоступен: https://cloud.google.com/blog/products/databases/announcing-cloud-firestore-general-availability-and-updates

Это означает, что Cloud Datastore больше не является опцией для новых проектов (вы можете продолжать использовать его в существующих проектах). Новые проекты, которые хотят использовать API хранилища данных, могут использовать Cloud Firestore в режиме хранилища данных.

Обновление 1

Как вы заметили, мы расширили Cloud Firestore, так как этот вопрос был опубликован.

Это означает, что Cloud Firestore теперь имеет 2 режима:

  1. Первоначальный запуск был "Родной режим"
  2. Новый запуск добавляет "Режим хранилища данных"

"Режим хранилища данных" - это третье поколение Cloud Datastore. Первый назывался Master/Slave Datastore, второй был High-Replication Datastore (HRD), который был переименован в Cloud Datastore в 2013 году.

Приведенный ниже ответ по-прежнему в значительной степени актуален, поскольку оба режима в настоящее время являются взаимоисключающими, поэтому вам нужно выбрать один или другой.

Основными отличиями являются улучшения Cloud Firestore в режиме Datastore по сравнению с Cloud Datastore. Самые большие из них:

  • Пропускная способность записи для каждой группы сущностей теперь не ограничена (было 1 запись/секунда)
  • Транзакции больше не ограничены 25 группами лиц
  • Все запросы сейчас строго согласованы.

Также обратите внимание, что Cloud Firestore независимо от режима является бета-версией, поэтому новое Соглашение об уровне обслуживания (SLA) не вступает в силу, пока продукт не достигнет Общей доступности (GA).

Оригинальный ответ

Cloud Datastore (CD) и Cloud Firestore (CF) похожи, но существенно различаются.

CF ориентирован на мобильную связь с функциями мобильного клиента с функциональностью Firebase SDK и правил. Компакт-диск ориентирован на сервер с более широким диапазоном серверных клиентских библиотек, а также с некоторыми зрелыми средами на App Engine Standard, которые объединяют функциональность memcache.

CF имеет более новый уровень хранения данных, который строго согласован так же, как Cloud Spanner, однако он все еще находится в бета-версии без SLA. Уровень хранения CD строго согласован внутри групп объектов и в конечном итоге согласован по группам объектов, однако это GA с 99,95% SLA для мультирегиональных местоположений.

В настоящее время CF доступен только в мультирегионе США. CD доступен в облаке в десятке мест, включая места в Америке, Европе, Азии и Австралии.

CF во время бета-тестирования имеет ограничение в 2500 записей в секунду, в то время как мы собираем опыт мониторинга и настройки системы до GA, в то время как CD будет успешно обрабатывать> 1 млн записей в секунду (хотя сначала обратитесь к своему представителю учетной записи).

Набор запросов CF и CD перекрываются, но не совпадают. В целом CD имеет более широкий набор возможностей запросов, которые мы еще не встроили в CF, так что у вас будет больше гибкости в CD.

В целом, я бы рассмотрел этот список, чтобы увидеть, изменит ли то или иное различие то, что вы пытаетесь построить, а затем выбрать ту БД, которая наиболее соответствует вашим потребностям.

Ответ 3

Я бы сказал, что Datastore теперь является подмножеством Firestore:

Cloud Firestore является следующей основной версией Cloud Datastore и ребрендингом продукта. См. Выбор между Cloud Firestore и Cloud Datastore.

Cloud Firestore может работать в "режиме хранилища данных", что делает его backwards- совместимым с Cloud Datastore. Через некоторое время после того, как Cloud Firestore будет выпущен для общего доступа, Google начнет связываться с владельцами существующих баз данных Cloud Datastore, чтобы запланировать автоматическое обновление до Cloud Firestore в режиме Datastore. Смотрите автоматическое обновление

Ответ 4

Я думаю, что облачный firestore также имеет клиент nodejs и не ориентирован на мобильные устройства. На самом деле в этом и заключается разница между базой данных Firebase реального времени, которая была ориентирована на мобильные устройства, и облачным хранилищем пожаров.