Google Cloud Bigtable против Google Cloud Datastore


124

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


8
Пожалуйста, не закрывайте. в настоящее время по ним нет официальной документации, и Google, скорее всего, прокомментирует здесь.
Зиг Мандель

Ответы:


97

Основываясь на опыте работы с Datastore и чтении документации Bigtable , основные отличия заключаются в следующем:

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

98

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

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

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

Datastore оптимизирован для предоставления приложениям важных транзакционных данных.

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

3
Bigtable теперь реплицируется по зонам, чтобы обеспечить доступность в случае сбоя в работе зоны
Брэндон Дюретт,

Я думал, что транзакция не является сильным аргументом в пользу хранилища данных. Из его [doc | cloud.google.com/datastore/docs/concepts/transactions] «Транзакция - это набор операций Google Cloud Datastore с одной или несколькими сущностями в группах до 25 сущностей». Кроме того, хранилище данных построено поверх Bigtable, верно?
zyxue 09

19

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

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

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


4
У вас все было хорошо до последнего абзаца. Хранилище данных предоставляет транзакции, но они не похожи на SQL и определенно не на ACID.
Дэниел Розман,

4
@DanielRoseman На самом деле, это очень важно. Вот цитата из статьи о Megastore (на которой построено Datastore): «Каждая группа сущностей Megastore функционирует как мини-база данных, которая обеспечивает сериализуемую семантику ACID». «мы разделяем хранилище данных и реплицируем каждый раздел отдельно, обеспечивая полную семантику ACID внутри разделов». (research.google.com/pubs/pub36971.html)
user2771609,

Я думаю, что называть его Sql. Самое большее подмножество. Не имеет эффективного подсчета / группы, все запросы должны использовать индексы и т. Д.
Зиг Мандель,

4
Язык запросов и изоляция транзакций - разные вещи , похоже, вы их смешиваете. Я делаю претензию по поводу последнего ( транзакции ACID ). В своем комментарии вы предполагаете, что я говорю о первом. Может, некоторые дефисы прояснят? Я прямо упомяну проблему языка запросов, чтобы устранить любые сомнения.
user2771609 08

8

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


Неужели дороже? минимум для BigTable - 3 узла, при жестком диске 10 ГБ - $ 1400 / мес. Кажется довольно высоким, нет?
benji

@ben, по моему прошлому опыту это было. Datastore тарифицируется за операцию, а не за час. (Если вы не используете его так часто, то да, вы не платите Datastore много. Но если у вас большой трафик, и тогда я думаю, что bigtable намного дешевле.) Я думаю, Bigtable требует 10 000 операций в секунду? На самом деле я обнаружил, что он ниже, примерно 1-2k, но все же 3 узла составляют> 5k / s. Если вы сохраните эту пропускную способность в течение месяца и сопоставите ее с ценами Datastore, она, вероятно, будет намного выше 1,4 тысячи.
Justin Zhang

Ссылка на
MegaStore не работает

8

Я попытаюсь обобщить все вышеперечисленные ответы, а также то, что дается в Coursea Google Cloud Platform, Основы больших данных и машинного обучения.

+---------------------+------------------------------------------------------------------+------------------------------------------+--+
|      Category       |                             BigTable                             |                Datastore                 |  |
+---------------------+------------------------------------------------------------------+------------------------------------------+--+
| Technology          | Based on HBase(uses HBase API)                                   | Uses BigTable itself                     |  |
| ----------------    |                                                                  |                                          |  |
| Access Mataphor     | Key/Value (column-families) like Hbase                           | Persistent hashmap                       |  |
| ----------------    |                                                                  |                                          |  |
| Read                | Scan Rows                                                        | Filter Objects on property               |  |
| ----------------    |                                                                  |                                          |  |
| Write               | Put Row                                                          | Put Object                               |  |
| ----------------    |                                                                  |                                          |  |
| Update Granularity  | can't update row ( you should write a new row, can't update one) | can update attribute                     |  |
| ----------------    |                                                                  |                                          |  |
| Capacity            | Petabytes                                                        | Terbytes                                 |  |
| ----------------    |                                                                  |                                          |  |
| Index               | Index key only (you should properly design the key)              | You can index any property of the object |  |
| Usage and use cases | High throughput, scalable flatten data                           | Structured data for Google App Engine    |  |
+---------------------+------------------------------------------------------------------+------------------------------------------+--+

Также проверьте это изображение: введите описание изображения здесь

введите описание изображения здесь


2

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


По состоянию на ноябрь 2016 года то же самое для Java
Арам Пароникян

2

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

введите описание изображения здесь

введите описание изображения здесь


1

введите описание изображения здесь

Cloud Datastore is a highly-scalable NoSQL database for your applications.
Like Cloud Bigtable, there is no need for you to provision database instances.
Cloud Datastore uses a distributed architecture to automatically manage
scaling. Your queries scale with the size of your result set, not the size of your
data set.
Cloud Datastore runs in Google data centers, which use redundancy to
minimize impact from points of failure. Your application can still use Cloud
Datastore when the service receives a planned upgrade.

введите описание изображения здесь

 Choose Bigtable if the data is:
Big
● Large quantities (>1 TB) of semi-structured or structured data
Fast
● Data is high throughput or rapidly changing
NoSQL
● Transactions, strong relational semantics not required
And especially if it is:
Time series
● Data is time-series or has natural semantic ordering
Big data
● You run asynchronous batch or real-time processing on the data
Machine learning
● You run machine learning algorithms on the data
Bigtable is designed to handle massive workloads at consistent low latency
and high throughput, so it's a great choice for both operational and analytical
applications, including IoT, user analytics, and financial data analysis.

0

Datastore больше готов к приложениям и подходит для широкого спектра услуг, особенно для микросервисов.

В основе Datastore лежит технология Big Table, так что вы можете себе представить, что Big Table более мощный.

Datastore предлагает 20 000 бесплатных операций в день, вы можете рассчитывать на размещение сервера с надежной БД с НУЛЕВОЙ стоимостью.

Вы также можете ознакомиться с этой библиотекой ORM хранилища данных, она имеет множество замечательных функций https://www.npmjs.com/package/ts-datastore-orm

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.