Google Cloud Bigtable против хранилища данных Google Cloud

в чем разница между Google Облако С BigTable и Google Cloud Datastore / App Engine datastore, и каковы основные практические преимущества / недостатки? Хранилище данных AFAIK Cloud построено поверх Bigtable.

6 ответов


на основе опыта работы с хранилищем данных и чтения Bigtable docs, основные отличия:

  • Bigtable, похоже, предназначен для совместимости с HBase, тогда как хранилище данных больше ориентировано на разработчиков веб-приложений Python/Java/Go (первоначально App Engine)
  • Bigtable - это "немного больше IaaS", чем Datastore, поскольку он не "просто есть", но требует, чтобы кластер был настроить.
  • Bigtable поддерживает только один индекс - "ключ строки" (ключ сущности в хранилище данных)
    • это означает, что запросы находятся на ключе, в отличие от индексированных свойств хранилища данных
  • Bigtable поддерживает атомарность только в одной строке-транзакций нет
  • мутации и удаления, по-видимому, не являются атомарными в Bigtable, тогда как хранилище данных обеспечивает возможную и сильную согласованность, в зависимости от метода чтения/запроса
  • модель выставления счетов очень отличающийся:
    • плата за хранение данных для операций чтения / записи, хранения и пропускной способности
    • С BigTable обвинения на 'узлов', хранение и пропускная способность

Bigtable оптимизирован для больших объемов данных и аналитики

  • Облако Bigtable не реплицирует данные по зонам или регионам (данные в пределах одного кластера реплицируются и долговечны), что означает, что Bigtable быстрее и эффективнее, а затраты намного ниже, хотя он менее долговечен и доступен в конфигурации по умолчанию
  • использует HBase API - нет риска блокировки или новых парадигм для учись!--6-->
  • он интегрирован с инструментами больших данных с открытым исходным кодом, то есть вы можете анализировать данные, хранящиеся в Bigtable в большинстве инструментов аналитики, используемых клиентами (Hadoop, Spark и т. д.)
  • Bigtable индексируется одним ключом строки
  • Bigtable находится в одной зоне

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

хранилище данных оптимизировано для обслуживания высокоценные транзакционные данные для приложений

  • Облачное Хранилище Данных имеет чрезвычайно высокую доступность с репликацией и синхронизацией данных
  • Datastore, из-за своей многосторонности и высокого наличия, дороже
  • хранилище данных медленнее записи данных из-за синхронной репликации
  • Datastore имеет гораздо лучшую функциональность вокруг транзакций и запросов (поскольку существуют вторичные индексы)

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

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

основное отличие заключается в том, что хранилище данных предоставляет транзакции SQL-database-like ACID на подмножества данных, известные как группы сущностей (хотя язык запросов GQL намного более ограничительный, чем SQL). Bigtable строго NoSQL и поставляется с гораздо более слабыми гарантиями.


Если Вы читаете газеты, BigTable является этой и хранилища данных MegaStore. Хранилище данных-это BigTable плюс репликация, транзакция и индекс. (и намного дороже).


относительно незначительный момент для рассмотрения, по состоянию на ноябрь 2016, bigtable python client библиотека все еще находится в Alpha, что означает, что будущие изменения могут не быть обратно совместимы. Кроме того, библиотека BigTable python несовместима со стандартной средой App Engine. Вы должны использовать гибкий.


Я только что нашел эту полезную аналогию, похороненную в страница о возможной последовательности в документации хранилища данных (акцент мой):

одна практика заключается в объединении облачного хранилища данных и BigQuery для выполнения различных бизнес-требований. используйте облачное хранилище данных для онлайн-обработки транзакций (OLTP), необходимое для логики основного приложения, и используйте BigQuery для онлайн-аналитической обработки (OLAP) для операций бэкэнда. это может быть необходимо реализовать непрерывный поток экспорта данных из облачного хранилища данных в BigQuery для перемещения данных, необходимых для этих запросов.