Google облако с BigTable против Google в облачном хранилище


в чем разница между Google Cloud Bigtable и Google Cloud Datastore / App Engine datastore, и каковы основные практические преимущества / недостатки? ЕМНИП облачном хранилище построить на вершине с BigTable.

6 82

6 ответов:

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

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

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

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

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

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

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

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

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

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

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

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

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

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