Цена в стороне, почему вы выбираете Google Cloud Bigtable вместо Google Cloud Datastore? - PullRequest
0 голосов
/ 27 ноября 2018

Если у меня есть сценарий использования для поиска с огромным объемом данных и , зачем мне выбирать Google Cloud Bigtable вместо Google Cloud Datastore?

Я видел несколько вопросов наТАК и другие стороны "сравнивают" Bigtable и Datastore, но, похоже, сводятся к тем же неспецифическим ответам.

Вот мои текущие знания и мои мысли:

Datastore isдороже.

В контексте этого вопроса давайте полностью забудем о ценах.

Bigtable хорош для огромных наборов данных.

Похоже, Datastore тоже есть?Я не вижу, что именно делает Bigtable здесь объективно превосходящим.

Bigtable лучше, чем Datastore для аналитики.

Как?Зачем?Похоже, я тоже могу делать аналитику в Datastore, нет проблем.Почему Bigtable, по-видимому, является единодушным решением для аналитики в отрасли?Какое значение имеют GMail, eBay и т. Д. От Bigtable, которые Datastore не может предоставить?

Bigtable интегрирован с Hadoop, Spark и т. Д.

Является ли Datastore нетКроме того, учитывая, что он построен на Bigtable?

С на этот вопрос это утверждение было сделано в ответе:

Bigtable и Datastore чрезвычайно различны.Да, хранилище данных построено поверх Bigtable, но это не делает его чем-то вроде этого.Это все равно, что сказать, что автомобиль построен на колесах [автомобиля], и поэтому автомобиль не сильно отличается от колес.

Однако эта аналогия кажется бессмысленной, поскольку автомобиль (включая колеса) по сути обеспечивает большую ценность, чем сами колеса автомобиля.

На первый взгляд кажется, что Bigtable строго хуже, чем Datastore, обеспечивает только один индекс и ограничивает быстрый поиск.Чего мне не хватает?

1 Ответ

0 голосов
/ 27 ноября 2018

Bigtable и Datastore оптимизированы для немного разных вариантов использования и предлагают различные компромиссы.Основные из них:

Модель данных:

  • Bigtable - это база данных с широкими столбцами - думаю, HBase и Cassandra
  • Datastore isбаза данных документов - подумайте MongoDB
  • Обратите внимание, что оба они могут быть использованы для вариантов использования значения ключа

Модель затрат:

  • Сборы Bigtable на выделенные узлы
  • Хранилище данных без сервера и сборы за операцию

В общем, Bigtable - хороший выбор, если вам нужно:

  • Быстрое считывание точек и сканирование диапазона (особенно в масштабе).Bigtable обеспечит более низкую задержку для поиска по значению ключа, а также быстрое сканирование смежных строк - мощный инструмент, поскольку строки хранятся в лексикографическом порядке.Если у вас есть простые, предсказуемые шаблоны запросов и хорошо спроектированы схемы, чтение из Bigtable может быть невероятно эффективным.
  • Высокая производительность записи (опять же, особенно в масштабе).Это возможно отчасти потому, что Bigtable в конечном итоге остается согласованным - взамен вы можете увидеть большие выигрыши в соотношении цена / производительность.

Примеры примеров использования, которые отлично подходят для Bigtable, включают данные временных рядов (для IoT - мониторинги даже больше - подумайте о том, чтобы писать исключительно тяжелые рабочие нагрузки и большие объемы данных, сгенерированные за x единиц времени), аналитике (обнаружение мошенничества, персонализация, рекомендации) и обслуживании рекламы (каждая микросекунда считается).

Datastore (или Firestore) - хороший выбор, если вам нужно:

  • Гибкость запросов: Datastore предлагает поддержку документов и вторичные индексы.
  • Высокая согласованность и / или транзакцииBigtable имеет в конечном итоге согласованную репликацию и не поддерживает многострочные транзакции.
  • Мобильные SDK: Datastore и Firestore невероятно хорошо интегрированы с экосистемой Firebase.

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

Чтобы ответить на несколько ваших вопросов в явном виде:

  • Почему Bigtable используется для аналитики? В основном речь идет о производительности: варианты использования аналитики болеевероятно, имеют большие наборы данных и требуют высокой пропускной способности записи.Гораздо проще работать в пределах базы данных, если вы храните данные о потоках кликов, а не что-то вроде информации учетной записи пользователя.Быстрое сканирование также важно для случаев использования аналитики: Bigtable позволяет вам получать всю необходимую вам информацию о пользователе или устройстве очень быстро, которую вы можете обрабатывать в пакетном задании или использовать для создания рекомендаций и анализа на лету.
  • Действительно ли Bigtable хуже, чем Datastore? Datastore определенно предоставляет больше встроенных функций, таких как вторичные индексы и поддержка документов, и если вам нужны эти функции, Datastore - фантастический выбор.Но эта функциональность идет с компромиссами.Bigtable предоставляет, возможно, низкоуровневые, но невероятно производительные API-интерфейсы, которые позволяют пользователям самим делать эти компромиссы: если пользователь оценивает, скажем, производительность записи по вторичным индексам, Bigtable - отличный вариант.Вы можете думать об этом как о чрезвычайно универсальном и мощном инфраструктурном строительном блоке.Мне на самом деле нравится аналогия колес / автомобилей: иногда вы не хотите автомобиль - если вам действительно нужен грунтовый велосипед, то набор сплошных колес гораздо полезнее:)
...